@@ -32,3 +32,96 @@ func Test_Enrich_Reporter(t *testing.T) {
3232 assert .Nil (t , err )
3333 assert .Equal (t , expected .Results .Tests , actual .Results .Tests )
3434}
35+
36+ func Test_Enrich_ReporterWithUnorderedMessages (t * testing.T ) {
37+ expected := & ctrf.Report {Results : & ctrf.Results {Tests : []* ctrf.TestResult {
38+ {
39+ Name : "Test_Enrich_Reporter/Test1" ,
40+ Status : "passed" ,
41+ Suite : "github.com/ctrf-io/go-ctrf-json-reporter/reporter" ,
42+ Filepath : "reporter_test.go" ,
43+ },
44+ {
45+ Name : "Test_Enrich_Reporter/Test2" ,
46+ Status : "passed" ,
47+ Suite : "github.com/ctrf-io/go-ctrf-json-reporter/reporter" ,
48+ Filepath : "reporter_test.go" ,
49+ },
50+ {
51+ Name : "Test_Enrich_Reporter/Test3" ,
52+ Status : "passed" ,
53+ Suite : "github.com/ctrf-io/go-ctrf-json-reporter/reporter" ,
54+ Filepath : "reporter_test.go" ,
55+ },
56+ {
57+ Name : "Test_Enrich_Reporter/Test4" ,
58+ Status : "passed" ,
59+ Suite : "github.com/ctrf-io/go-ctrf-json-reporter/reporter" ,
60+ Filepath : "reporter_test.go" ,
61+ },
62+ {
63+ Name : "Test_Enrich_Reporter/Test5" ,
64+ Status : "failed" ,
65+ Suite : "github.com/ctrf-io/go-ctrf-json-reporter/reporter" ,
66+ Filepath : "reporter_test.go" ,
67+ Message : "=== RUN Test_Enrich_Reporter/Test5\n reporter:59: Something.Skip() = false, want true\n --- FAIL: Test_Enrich_Reporter/Test5 (0.00s)\n " ,
68+ },
69+ {
70+ Name : "Test_Enrich_Reporter/Test6" ,
71+ Status : "passed" ,
72+ Suite : "github.com/ctrf-io/go-ctrf-json-reporter/reporter" ,
73+ Filepath : "reporter_test.go" ,
74+ },
75+ {
76+ Name : "Test_Enrich_Reporter/Test7" ,
77+ Status : "passed" ,
78+ Suite : "github.com/ctrf-io/go-ctrf-json-reporter/reporter" ,
79+ Filepath : "reporter_test.go" ,
80+ },
81+ {
82+ Name : "Test_Enrich_Reporter" ,
83+ Status : "failed" ,
84+ Suite : "github.com/ctrf-io/go-ctrf-json-reporter/reporter" ,
85+ Filepath : "reporter_test.go" ,
86+ Message : "=== RUN Test_Enrich_Reporter\n --- FAIL: Test_Enrich_Reporter (0.00s)\n " ,
87+ },
88+ }}}
89+ input := `{"Time":"2025-10-17T12:27:57.126761-04:00","Action":"run","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter"}
90+ {"Time":"2025-10-17T12:27:57.126764-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter","Output":"=== RUN Test_Enrich_Reporter\n"}
91+ {"Time":"2025-10-17T12:27:57.126769-04:00","Action":"run","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test1"}
92+ {"Time":"2025-10-17T12:27:57.126771-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test1","Output":"=== RUN Test_Enrich_Reporter/Test1\n"}
93+ {"Time":"2025-10-17T12:27:57.126779-04:00","Action":"run","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test2"}
94+ {"Time":"2025-10-17T12:27:57.126782-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test2","Output":"=== RUN Test_Enrich_Reporter/Test2\n"}
95+ {"Time":"2025-10-17T12:27:57.126785-04:00","Action":"run","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test3"}
96+ {"Time":"2025-10-17T12:27:57.126788-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test3","Output":"=== RUN Test_Enrich_Reporter/Test3\n"}
97+ {"Time":"2025-10-17T12:27:57.1268-04:00","Action":"run","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test4"}
98+ {"Time":"2025-10-17T12:27:57.126803-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test4","Output":"=== RUN Test_Enrich_Reporter/Test4\n"}
99+ {"Time":"2025-10-17T12:27:57.126809-04:00","Action":"run","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test5"}
100+ {"Time":"2025-10-17T12:27:57.126815-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test5","Output":"=== RUN Test_Enrich_Reporter/Test5\n"}
101+ {"Time":"2025-10-17T12:27:57.126818-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test5","Output":" reporter:59: Something.Skip() = false, want true\n"}
102+ {"Time":"2025-10-17T12:27:57.126821-04:00","Action":"run","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test6"}
103+ {"Time":"2025-10-17T12:27:57.126824-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test6","Output":"=== RUN Test_Enrich_Reporter/Test6\n"}
104+ {"Time":"2025-10-17T12:27:57.126827-04:00","Action":"run","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test7"}
105+ {"Time":"2025-10-17T12:27:57.12683-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test7","Output":"=== RUN Test_Enrich_Reporter/Test7\n"}
106+ {"Time":"2025-10-17T12:27:57.126839-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter","Output":"--- FAIL: Test_Enrich_Reporter (0.00s)\n"}
107+ {"Time":"2025-10-17T12:27:57.126842-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test1","Output":" --- PASS: Test_Enrich_Reporter/Test1 (0.00s)\n"}
108+ {"Time":"2025-10-17T12:27:57.126845-04:00","Action":"pass","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test1","Elapsed":0}
109+ {"Time":"2025-10-17T12:27:57.126848-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test2","Output":" --- PASS: Test_Enrich_Reporter/Test2 (0.00s)\n"}
110+ {"Time":"2025-10-17T12:27:57.126851-04:00","Action":"pass","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test2","Elapsed":0}
111+ {"Time":"2025-10-17T12:27:57.126854-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test3","Output":" --- PASS: Test_Enrich_Reporter/Test3 (0.00s)\n"}
112+ {"Time":"2025-10-17T12:27:57.126858-04:00","Action":"pass","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test3","Elapsed":0}
113+ {"Time":"2025-10-17T12:27:57.126861-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test4","Output":" --- PASS: Test_Enrich_Reporter/Test4 (0.00s)\n"}
114+ {"Time":"2025-10-17T12:27:57.126864-04:00","Action":"pass","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test4","Elapsed":0}
115+ {"Time":"2025-10-17T12:27:57.126867-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test5","Output":" --- FAIL: Test_Enrich_Reporter/Test5 (0.00s)\n"}
116+ {"Time":"2025-10-17T12:27:57.12687-04:00","Action":"fail","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test5","Elapsed":0}
117+ {"Time":"2025-10-17T12:27:57.126873-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test6","Output":" --- PASS: Test_Enrich_Reporter/Test6 (0.00s)\n"}
118+ {"Time":"2025-10-17T12:27:57.126876-04:00","Action":"pass","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test6","Elapsed":0}
119+ {"Time":"2025-10-17T12:27:57.126879-04:00","Action":"output","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test7","Output":" --- PASS: Test_Enrich_Reporter/Test7 (0.00s)\n"}
120+ {"Time":"2025-10-17T12:27:57.126881-04:00","Action":"pass","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter/Test7","Elapsed":0}
121+ {"Time":"2025-10-17T12:27:57.126884-04:00","Action":"fail","Package":"github.com/ctrf-io/go-ctrf-json-reporter/reporter","Test":"Test_Enrich_Reporter","Elapsed":0}`
122+
123+ actual , err := reporter .ParseTestResults (bytes .NewBufferString (input ), false , & ctrf.Environment {})
124+
125+ assert .Nil (t , err )
126+ assert .Equal (t , expected .Results .Tests , actual .Results .Tests )
127+ }
0 commit comments