2024-08-13 04:53:07 +03:00
|
|
|
import * as fs from 'node:fs'
|
2024-12-03 09:55:37 +03:00
|
|
|
import { join, resolve } from 'node:path'
|
2024-08-13 04:53:07 +03:00
|
|
|
|
2024-04-25 04:47:33 +03:00
|
|
|
import { globSync } from 'glob'
|
|
|
|
|
2024-08-13 04:53:07 +03:00
|
|
|
export function collectTestEntrypoints(params: { skipPackages: string[], skipTests: string[] }) {
|
2024-04-25 04:47:33 +03:00
|
|
|
const files: string[] = []
|
|
|
|
|
|
|
|
const packages = resolve(__dirname, '../../packages')
|
|
|
|
|
2024-08-13 04:53:07 +03:00
|
|
|
const skipTests = params.skipTests.map(path => resolve(packages, path))
|
2024-04-25 04:47:33 +03:00
|
|
|
|
|
|
|
for (const dir of fs.readdirSync(packages)) {
|
|
|
|
if (dir.startsWith('.') || params.skipPackages.includes(dir)) continue
|
|
|
|
if (!fs.statSync(resolve(packages, dir)).isDirectory()) continue
|
|
|
|
|
|
|
|
const fullDir = resolve(packages, dir)
|
|
|
|
|
|
|
|
for (const file of globSync(join(fullDir, '**/*.test.ts'))) {
|
|
|
|
if (skipTests.includes(file)) continue
|
|
|
|
if (file.match(/\/(node_modules|dist)\//)) continue
|
|
|
|
files.push(file)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return files
|
|
|
|
}
|