ReviewOS

also looking at this

zig-utils/zig-test-framework

test: make CI exercise maintained integrations

#18
Merged glennmichael123 wants to merge codex/issue-3-test-coverage into main
16 files +390 -139
tests/reporter_test.zigmodified+60-8
Changes to tests/reporter_test.zig
@@ -1,19 +1,71 @@
11const std = ;
2const ztf = ;
23
3// Placeholder tests for reporter module
4// TODO: Implement comprehensive tests for all reporter types
4fn passingTest(_: std.mem.Allocator) !void {}
55
66test "reporter spec output" {
7 // Test SpecReporter formatting
8 try std.testing.expect(true);
7 var buffer: [2048]u8 = undefined;
8 const writer: std.Io.Writer = .fixed(&buffer);
9 var reporter = ztf.SpecReporter.init(std.testing.allocator, writer);
10 reporter.reporter.use_colors = false;
11 var results = ztf.TestResults.init(std.testing.allocator);
12 defer results.deinit();
13 results.total = 1;
14 results.passed = 1;
15 var test_case = ztf.TestCase.init("passes", passingTest);
16 test_case.status = .passed;
17
18 try reporter.reporter.onRunStart(1);
19 try reporter.reporter.onSuiteStart("suite");
20 try reporter.reporter.onTestEnd(&test_case);
21 try reporter.reporter.onSuiteEnd("suite");
22 try reporter.reporter.onRunEnd(&results);
23
24 const output = buffer[0..reporter.writer.end];
25 try std.testing.expect(std.mem.indexOf(u8, output, "Running 1 test(s)") != null);
26 try std.testing.expect(std.mem.indexOf(u8, output, "Passed: 1") != null);
927}
1028
1129test "reporter dot output" {
12 // Test DotReporter formatting
13 try std.testing.expect(true);
30 var buffer: [1024]u8 = undefined;
31 const writer: std.Io.Writer = .fixed(&buffer);
32 var reporter = ztf.DotReporter.init(std.testing.allocator, writer);
33 reporter.reporter.use_colors = false;
34 var results = ztf.TestResults.init(std.testing.allocator);
35 defer results.deinit();
36 results.total = 1;
37 results.passed = 1;
38 var test_case = ztf.TestCase.init("passes", passingTest);
39 test_case.status = .passed;
40
41 try reporter.reporter.onRunStart(1);
42 try reporter.reporter.onTestEnd(&test_case);
43 try reporter.reporter.onRunEnd(&results);
44
45 const output = buffer[0..reporter.writer.end];
46 try std.testing.expect(std.mem.indexOf(u8, output, ".") != null);
47 try std.testing.expect(std.mem.indexOf(u8, output, "Passed: 1") != null);
1448}
1549
1650test "reporter json output" {
17 // Test JsonReporter formatting
18 try std.testing.expect(true);
51 var buffer: [2048]u8 = undefined;
52 const writer: std.Io.Writer = .fixed(&buffer);
53 var reporter = ztf.JsonReporter.init(std.testing.allocator, writer);
54 defer reporter.deinit();
55 var results = ztf.TestResults.init(std.testing.allocator);
56 defer results.deinit();
57 results.total = 1;
58 results.passed = 1;
59 var test_case = ztf.TestCase.init("passes", passingTest);
60 test_case.status = .passed;
61
62 try reporter.reporter.onRunStart(1);
63 try reporter.reporter.onSuiteStart("suite");
64 try reporter.reporter.onTestEnd(&test_case);
65 try reporter.reporter.onSuiteEnd("suite");
66 try reporter.reporter.onRunEnd(&results);
67
68 const output = buffer[0..reporter.writer.end];
69 try std.testing.expect(std.mem.indexOf(u8, output, "\"name\":\"passes\"") != null);
70 try std.testing.expect(std.mem.indexOf(u8, output, "\"passed\":1") != null);
1971}