also looking at this
feat: load strict JSON configuration files
#19
10 files
+249
-286
| @@ -23,3 +23,20 @@ test "CLI rejects missing and invalid values" { | ||
| 23 | 23 | var invalid = ztf.CLI.init(std.testing.allocator); |
| 24 | 24 | try std.testing.expectError(ztf.cli.CLIError.InvalidArgument, invalid.parse(&.{ "zig-test", "--jobs", "0" })); |
| 25 | 25 | } |
| 26 | ||
| 27 | test "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 | } | |