UNPKG

@gullerya/just-test

Version:

JavaScript multiplatform tests runner

36 lines (30 loc) 1.12 kB
import { EVENT } from '../../../common/constants.js'; import { EXECUTION_MODES, setExecutionContext } from '../../environment-config.js'; let parentPort; let externalizedTestName; globalThis.addEventListener('message', async m => { if (m.ports?.length) { parentPort = m.ports[0]; const { testName, testSource } = m.data; externalizedTestName = testName; setExecutionContext(EXECUTION_MODES.TEST, testName, runStartHandler, runEndHandler); import(`/static/${testSource}`); } else { console.warn(`unexpected message from parent: ${JSON.stringify(m.data)}`); } }); // // internal methods // function runStartHandler(tName) { if (tName !== externalizedTestName) { throw new Error(`expected to get result of test '${externalizedTestName}', but received of '${tName}'`); } parentPort.postMessage({ type: EVENT.RUN_START, testName: tName }); } function runEndHandler(tName, run) { if (tName !== externalizedTestName) { throw new Error(`expected to get result of test '${externalizedTestName}', but received of '${tName}'`); } parentPort.postMessage({ type: EVENT.RUN_END, testName: tName, run }); }