( e2eRoot: string, relativeDirectory: string, )
| 78 | }; |
| 79 | |
| 80 | const discoverTestFilesInDirectory = async ( |
| 81 | e2eRoot: string, |
| 82 | relativeDirectory: string, |
| 83 | ): Promise<readonly string[]> => { |
| 84 | const entries = await readdir(resolve(e2eRoot, relativeDirectory), { |
| 85 | withFileTypes: true, |
| 86 | }); |
| 87 | const discovered = await Promise.all( |
| 88 | entries.map(async (entry): Promise<readonly string[]> => { |
| 89 | const relativePath = `${relativeDirectory}/${entry.name}`; |
| 90 | if (entry.isDirectory()) { |
| 91 | return discoverTestFilesInDirectory(e2eRoot, relativePath); |
| 92 | } |
| 93 | return entry.isFile() && entry.name.endsWith(".test.ts") ? [relativePath] : []; |
| 94 | }), |
| 95 | ); |
| 96 | return discovered.flat(); |
| 97 | }; |
| 98 | |
| 99 | /** |
| 100 | * Parses `[target, oneBasedIndex]`, deriving the target's fixed shard count. |
no test coverage detected