21 lines
860 B
JavaScript
21 lines
860 B
JavaScript
import { cp, mkdtemp, rm } from 'node:fs/promises';
|
|
import { tmpdir } from 'node:os';
|
|
import { dirname, join, resolve } from 'node:path';
|
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
|
|
const root = resolve(dirname(fileURLToPath(import.meta.url)), '..');
|
|
const sourceDist = join(root, 'dist');
|
|
const sandbox = await mkdtemp(join(tmpdir(), 'maestro-worker-contract-'));
|
|
const stagedDist = join(sandbox, 'dist');
|
|
|
|
try {
|
|
await cp(sourceDist, stagedDist, { recursive: true });
|
|
const selector = await import(pathToFileURL(join(stagedDist, 'answer-workers', 'select-answer-worker.js')).href);
|
|
if (typeof selector.selectAnswerWorker !== 'function') {
|
|
throw new Error('dist selector did not resolve selectAnswerWorker');
|
|
}
|
|
console.log('answer-worker dist runtime smoke OK');
|
|
} finally {
|
|
await rm(sandbox, { recursive: true, force: true });
|
|
}
|