aboutsummaryrefslogtreecommitdiff
path: root/src/testing.zig
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-04-19 19:02:17 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2026-04-19 19:02:17 +0200
commit6aafc90f32d014390b29b77c6d53575793255847 (patch)
treef72a3ed256e1b92757e3af53c9b5e9c639cb4c4c /src/testing.zig
parentc46957f44e8b5ba0639b7092a1c5abd9516b1b22 (diff)
refactor(tests): generalize doTest and doTestError
Diffstat (limited to 'src/testing.zig')
-rw-r--r--src/testing.zig23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/testing.zig b/src/testing.zig
new file mode 100644
index 0000000..ecf6eb3
--- /dev/null
+++ b/src/testing.zig
@@ -0,0 +1,23 @@
+const std = @import("std");
+const Allocator = std.mem.Allocator;
+const Lexer = @import("lexer/Lexer.zig");
+const Element = @import("dom/Element.zig");
+const parser = @import("parser.zig");
+
+pub fn do(comptime parse: fn(Allocator, *Lexer) parser.Error!Element, alloc: Allocator, t: []const u8, v: []const u8) !void {
+ var l = try Lexer.init(t);
+ var p = try parse(alloc, &l);
+ defer p.deinit();
+ const g = try p.render(alloc);
+ defer alloc.free(g);
+ std.testing.expect(std.mem.eql(u8, g, v)) catch |err| {
+ std.debug.print("{s}\n", .{g});
+ return err;
+ };
+}
+
+pub fn doError(comptime parse: fn(Allocator, *Lexer) parser.Error!Element, alloc: Allocator, t: []const u8, err: parser.Error) !void {
+ var l = try Lexer.init(t);
+ _ = parse(alloc, &l) catch |e| return std.testing.expect(err == e);
+ return std.testing.expect(false);
+}