Files
svg-sprites/integration/scripts/run-workspaces.mjs
S.Gromov 632b450c8b test: добавить площадку интеграционного тестирования
- добавлены consumer fixtures для React и Next.js
- добавлены typecheck, production build и браузерные smoke-тесты
- добавлена интеграционная проверка в CI
2026-07-13 20:08:31 +03:00

32 lines
871 B
JavaScript

import { spawn } from 'node:child_process'
import process from 'node:process'
import { apps } from './apps.mjs'
const script = process.argv[2]
const requestedApps = new Set(process.argv.slice(3))
if (!script) {
throw new Error('Usage: node scripts/run-workspaces.mjs <script> [app ...]')
}
const selectedApps = requestedApps.size === 0
? apps
: apps.filter(({ id }) => requestedApps.has(id))
for (const { id } of selectedApps) {
console.log(`\n[${id}] npm run ${script}`)
const exitCode = await new Promise((resolve, reject) => {
const child = spawn('npm', ['run', script, '--workspace', `@svg-sprites-fixtures/${id}`, '--if-present'], {
stdio: 'inherit',
shell: process.platform === 'win32',
})
child.once('error', reject)
child.once('exit', (code) => resolve(code ?? 1))
})
if (exitCode !== 0) process.exit(exitCode)
}