diff --git a/novalon-manage-web/e2e/customReporter.ts b/novalon-manage-web/e2e/customReporter.ts index 4cb7bd2..c57a971 100644 --- a/novalon-manage-web/e2e/customReporter.ts +++ b/novalon-manage-web/e2e/customReporter.ts @@ -36,17 +36,32 @@ class CustomReporter implements Reporter { } private calculateStats(result: FullResult): TestStats { - const suites = result.suites || []; - const allTests = suites.flatMap(suite => - suite.specs.flatMap(spec => spec.tests) - ); + const allTests = this.testResults; + + if (allTests.length === 0) { + return { + total: 0, + passed: 0, + failed: 0, + skipped: 0, + flaky: 0, + passRate: 0, + failRate: 0, + skipRate: 0, + flakyRate: 0, + totalDuration: 0, + avgDuration: 0, + slowestTests: [], + failedTests: [], + }; + } const passed = allTests.filter(t => t.status === 'passed'); const failed = allTests.filter(t => t.status === 'failed'); const skipped = allTests.filter(t => t.status === 'skipped'); const flaky = allTests.filter(t => t.status === 'passed' && t.retry >= 1); - const totalDuration = allTests.reduce((sum, t) => sum + (t.duration || 0), 0); + const totalDuration = allTests.reduce((sum, t) => sum + t.duration, 0); const avgDuration = totalDuration / allTests.length; const passRate = (passed.length / allTests.length) * 100; @@ -67,8 +82,8 @@ class CustomReporter implements Reporter { totalDuration, avgDuration, slowestTests: allTests - .filter(t => t.duration) - .sort((a, b) => (b.duration || 0) - (a.duration || 0)) + .filter(t => t.duration > 0) + .sort((a, b) => b.duration - a.duration) .slice(0, 10), failedTests: failed, }; diff --git a/novalon-manage-web/playwright/.auth/user.json b/novalon-manage-web/playwright/.auth/user.json index 3886289..37ad976 100644 --- a/novalon-manage-web/playwright/.auth/user.json +++ b/novalon-manage-web/playwright/.auth/user.json @@ -14,7 +14,7 @@ }, { "name": "token", - "value": "eyJhbGciOiJIUzM4NCJ9.eyJyb2xlcyI6W10sInVzZXJJZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInN1YiI6ImFkbWluIiwiaWF0IjoxNzc1NTM4MjAxLCJleHAiOjE3NzU2MjQ2MDF9.2Nnu8oTldNpyqZ-6CsgxAFrK5KpVfv0m97Zbe1uxXnShxRQkQwdSxnY3lY9xk0A4" + "value": "eyJhbGciOiJIUzM4NCJ9.eyJyb2xlcyI6W10sInVzZXJJZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInN1YiI6ImFkbWluIiwiaWF0IjoxNzc1NTM4NzgxLCJleHAiOjE3NzU2MjUxODF9.-YWMX8Fdyt8-W0rppNP5QT6t2KI2HMj95LTijW209EBAav4u1lNuZZvBLUp0mbhT" } ] }