11import { expect , test , describe } from 'vitest'
2+ import { readFile } from 'node:fs/promises'
23import { parseJUnitXml } from '../utils/result-upload/junitXmlParser'
3- import { readFile } from 'fs/promises'
44
55const xmlBasePath = './src/tests/fixtures/junit-xml'
66
@@ -43,6 +43,7 @@ describe('Junit XML parsing', () => {
4343 expect ( tc ) . toHaveProperty ( 'status' )
4444 expect ( tc ) . toHaveProperty ( 'message' )
4545 expect ( tc ) . toHaveProperty ( 'attachments' )
46+ expect ( tc ) . toHaveProperty ( 'timeTaken' )
4647 expect ( Array . isArray ( tc . attachments ) ) . toBe ( true )
4748 } )
4849 } )
@@ -64,9 +65,7 @@ describe('Junit XML parsing', () => {
6465 // Verify we have the expected failure scenarios
6566 expect ( failureTests . some ( ( tc ) => tc . name . includes ( 'only type' ) ) ) . toBe ( true )
6667 expect ( failureTests . some ( ( tc ) => tc . name . includes ( 'type and message' ) ) ) . toBe ( true )
67- expect ( failureTests . some ( ( tc ) => tc . name . includes ( 'type, message and text content' ) ) ) . toBe (
68- true
69- )
68+ expect ( failureTests . some ( ( tc ) => tc . name . includes ( 'type, message and text content' ) ) ) . toBe ( true )
7069
7170 // Verify we have the expected error scenarios
7271 expect ( errorTests . some ( ( tc ) => tc . name . includes ( 'only type' ) ) ) . toBe ( true )
@@ -180,7 +179,7 @@ describe('Junit XML parsing', () => {
180179 const xml = `<?xml version="1.0" encoding="UTF-8"?>
181180<testsuites name="Test Suite">
182181 <testsuite name="Sample Suite">
183- <testcase name="Test with stderr">
182+ <testcase name="Test with stderr" time="10.5" >
184183 <system-out>stdout content</system-out>
185184 <system-err>stderr content</system-err>
186185 </testcase>
@@ -194,6 +193,7 @@ describe('Junit XML parsing', () => {
194193
195194 expect ( testcases ) . toHaveLength ( 1 )
196195 expect ( testcases [ 0 ] . status ) . toBe ( 'passed' )
196+ expect ( testcases [ 0 ] . timeTaken ) . toBe ( 10500 )
197197 // Should include stdout but not stderr for passed tests
198198 expect ( testcases [ 0 ] . message ) . toContain ( 'stdout content' )
199199 expect ( testcases [ 0 ] . message ) . not . toContain ( 'stderr content' )
@@ -203,7 +203,7 @@ describe('Junit XML parsing', () => {
203203 const xml = `<?xml version="1.0" encoding="UTF-8"?>
204204<testsuites name="Test Suite">
205205 <testsuite name="Sample Suite">
206- <testcase name="Failed test with output">
206+ <testcase name="Failed test with output" time="0" >
207207 <failure message="Test failed">Failure details</failure>
208208 <system-out>stdout from failed test</system-out>
209209 <system-err>stderr from failed test</system-err>
@@ -218,6 +218,7 @@ describe('Junit XML parsing', () => {
218218
219219 expect ( testcases ) . toHaveLength ( 1 )
220220 expect ( testcases [ 0 ] . status ) . toBe ( 'failed' )
221+ expect ( testcases [ 0 ] . timeTaken ) . toBe ( null )
221222 // Should include both stdout and stderr for failed tests
222223 expect ( testcases [ 0 ] . message ) . toContain ( 'Failure details' )
223224 expect ( testcases [ 0 ] . message ) . toContain ( 'stdout from failed test' )
@@ -228,7 +229,7 @@ describe('Junit XML parsing', () => {
228229 const xml = `<?xml version="1.0" encoding="UTF-8"?>
229230<testsuites name="Test Suite">
230231 <testsuite name="Sample Suite">
231- <testcase name="Passed test with output">
232+ <testcase name="Passed test with output" time="1" >
232233 <system-out>stdout content</system-out>
233234 <system-err>stderr content</system-err>
234235 </testcase>
@@ -242,6 +243,7 @@ describe('Junit XML parsing', () => {
242243
243244 expect ( testcases ) . toHaveLength ( 1 )
244245 expect ( testcases [ 0 ] . status ) . toBe ( 'passed' )
246+ expect ( testcases [ 0 ] . timeTaken ) . toBe ( 1000 )
245247 // Should not include stdout or stderr for passed tests
246248 expect ( testcases [ 0 ] . message ) . toBe ( '' )
247249 } )
0 commit comments