( summary: CollectorInfo, time: number, )
| 302 | } |
| 303 | |
| 304 | function collectData( |
| 305 | summary: CollectorInfo, |
| 306 | time: number, |
| 307 | ) { |
| 308 | const idMap = client.state.idMap |
| 309 | const filesMap = new Map(explorerTree.root.tasks.filter(f => idMap.has(f.id)).map(f => [f.id, f])) |
| 310 | const useFiles = Array.from(filesMap.values(), file => [file.id, findById(file.id)] as const) |
| 311 | const data = { |
| 312 | files: filesMap.size, |
| 313 | time: time > 1000 ? `${(time / 1000).toFixed(2)}s` : `${Math.round(time)}ms`, |
| 314 | filesFailed: 0, |
| 315 | filesSuccess: 0, |
| 316 | filesIgnore: 0, |
| 317 | filesRunning: 0, |
| 318 | filesSkipped: 0, |
| 319 | filesTodo: 0, |
| 320 | filesSnapshotFailed: 0, |
| 321 | testsFailed: 0, |
| 322 | testsSuccess: 0, |
| 323 | testsIgnore: 0, |
| 324 | testsSkipped: 0, |
| 325 | testsTodo: 0, |
| 326 | testsExpectedFail: 0, |
| 327 | testsSlow: 0, |
| 328 | totalTests: 0, |
| 329 | failedSnapshot: false, |
| 330 | failedSnapshotEnabled: false, |
| 331 | } satisfies CollectorInfo |
| 332 | |
| 333 | for (const [_, f] of useFiles) { |
| 334 | if (!f) { |
| 335 | continue |
| 336 | } |
| 337 | if (f.result?.state === 'fail') { |
| 338 | data.filesFailed++ |
| 339 | } |
| 340 | else if (f.result?.state === 'pass') { |
| 341 | data.filesSuccess++ |
| 342 | } |
| 343 | else if (f.mode === 'skip') { |
| 344 | data.filesIgnore++ |
| 345 | data.filesSkipped++ |
| 346 | } |
| 347 | else if (f.mode === 'todo') { |
| 348 | data.filesIgnore++ |
| 349 | data.filesTodo++ |
| 350 | } |
| 351 | else { |
| 352 | data.filesRunning++ |
| 353 | } |
| 354 | |
| 355 | const { |
| 356 | failed, |
| 357 | success, |
| 358 | skipped, |
| 359 | total, |
| 360 | ignored, |
| 361 | todo, |
no test coverage detected