From 5faaf3dc15c766411d221c13619ff408216f9e7b Mon Sep 17 00:00:00 2001 From: Halil Durak Date: Mon, 11 May 2026 15:24:28 +0300 Subject: [PATCH] `--inject-script`: testable injected scripts --- src/browser/tests/inject_script.html | 12 ++++++++++++ src/testing.zig | 12 ++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/browser/tests/inject_script.html diff --git a/src/browser/tests/inject_script.html b/src/browser/tests/inject_script.html new file mode 100644 index 00000000..f7917a54 --- /dev/null +++ b/src/browser/tests/inject_script.html @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/src/testing.zig b/src/testing.zig index 549d1349..ef8693b9 100644 --- a/src/testing.zig +++ b/src/testing.zig @@ -338,12 +338,20 @@ pub var test_notification: *Notification = undefined; pub var test_session: *Session = undefined; const WEB_API_TEST_ROOT = "src/browser/tests/"; -const HtmlRunnerOpts = struct {}; +const HtmlRunnerOpts = struct { + inject_script: ?[]const u8 = null, +}; pub fn htmlRunner(comptime path: []const u8, opts: HtmlRunnerOpts) !void { - _ = opts; defer reset(); + var inject_scripts: [1][]const u8 = undefined; + if (opts.inject_script) |script| { + inject_scripts[0] = script; + test_session.inject_scripts = inject_scripts[0..1]; + } + defer test_session.inject_scripts = &.{}; + const root = try std.fs.path.joinZ(arena_allocator, &.{ WEB_API_TEST_ROOT, path }); const stat = std.fs.cwd().statFile(root) catch |err| { std.debug.print("Failed to stat file: '{s}'", .{root});