Files
ai-drama-platform/scripts/smoke-all.mjs
T

69 lines
1.7 KiB
JavaScript

import { spawn } from "node:child_process";
const scripts = [
"smoke:tenant",
"smoke:mfa",
"smoke:security-events",
"smoke:device-risk",
"smoke:audit",
"smoke:identity",
"smoke:system-users",
"smoke:commercial-governance",
"smoke:invitations",
"smoke:commercial-ops",
"smoke:commercial-approvals",
"smoke:entitlements",
"smoke:plan-templates",
"smoke:billing-ledger",
"smoke:release-workflow",
"smoke:delivery-portal",
"smoke:delivery-clearance",
"smoke:oidc",
"smoke:creator-suite",
"smoke:knowledge-rag",
"smoke:knowledge-governance",
"smoke:asset-governance",
"smoke:model-connectors",
"smoke:model-approvals",
"smoke:model-routing",
"smoke:api-clients",
"smoke:api-rate-limit",
"smoke:ops",
"smoke:production-catalog",
"smoke:production-controls",
"smoke:worker",
"smoke:readiness",
"smoke:media-evidence",
"smoke:api-media",
"smoke:workflow-platform",
"smoke:compose-evidence",
"smoke:work-items",
"smoke:tasks",
"smoke:notifications",
"smoke:search",
"smoke:project-isolation",
"smoke:project-lifecycle"
];
function run(script) {
return new Promise((resolve, reject) => {
const child = spawn(process.platform === "win32" ? "npm.cmd" : "npm", ["run", script], {
cwd: process.cwd(),
env: process.env,
stdio: "inherit"
});
child.once("error", reject);
child.once("exit", (code, signal) => {
if (code === 0) resolve();
else reject(new Error(`${script} failed${signal ? ` with ${signal}` : ` with exit code ${code}`}`));
});
});
}
for (const script of scripts) {
console.log(`\n[smoke ${scripts.indexOf(script) + 1}/${scripts.length}] ${script}`);
await run(script);
}
console.log(`\nall smoke tests passed: ${scripts.length}`);