ReviewOS

also looking at this

zig-utils/zig-test-framework

feat: load strict JSON configuration files

#19
Merged glennmichael123 wants to merge codex/issue-12-config into main
10 files +249 -286
tests/cli_test.zigmodified+17-0
Changes to tests/cli_test.zig
@@ -23,3 +23,20 @@ test "CLI rejects missing and invalid values" {
2323 var invalid = ztf.CLI.init(std.testing.allocator);
2424 try std.testing.expectError(ztf.cli.CLIError.InvalidArgument, invalid.parse(&.{ "zig-test", "--jobs", "0" }));
2525}
26
27test "CLI flags override configuration defaults" {
28 var cli = ztf.CLI.init(std.testing.allocator);
29 var config = ztf.TestConfig{};
30 config.test_options.test_dir = "configured-tests";
31 config.test_options.filter = "configured-filter";
32 config.test_options.recursive = false;
33 config.reporter.verbose = true;
34
35 try cli.applyConfig(config);
36 try cli.parse(&.{ "zig-test", "--test-dir", "cli-tests", "--filter", "cli-filter" });
37
38 try std.testing.expectEqualStrings("cli-tests", cli.options.test_dir.?);
39 try std.testing.expectEqualStrings("cli-filter", cli.options.filter.?);
40 try std.testing.expect(cli.options.no_recursive);
41 try std.testing.expect(cli.options.verbose);
42}