Files
orca/config/scripts/test-runtime/node-worker/vitest-node-runtime-worker.mjs
T
Neil 9bd6272fdf refactor(tooling): organize build, CI, and test owners (#38130)
* refactor(tooling): organize test runtime and maintenance owners

* test(tooling): preserve relocated runtime fixture dependency edges

* refactor(tooling): preserve xterm routing owner checks

* ci(tooling): include routing owner in sparse checkout

* test(tooling): preserve copied workflow dependency closures

* fix(tooling): normalize hashed JSON assets in release parity

* fix(tooling): distinguish asset aliases from literal references

* fix(tooling): frame normalized asset reference payloads

* fix(tooling): normalize decoded JSON asset references

* refactor(tooling): organize build, CI and release owners

* fix(tooling): align moved generator and workflow path contracts

* fix(tooling): update generated plugin bundle owner banners

* test(tooling): create relocated mobile verifier fixture directories

* test(tooling): copy headless detector dependency closure

* test(tooling): align native batch policy fixtures with owner path

* fix(tooling): link moved reliability command to historical evidence

* fix(tooling): preserve nested sandbox owners and canonical guide source

* fix(tooling): target release version owners in checkout fixture
2026-11-04 21:08:19 -08:00

27 lines
1.0 KiB
JavaScript

import { init, runBaseTests, setupEnvironment } from 'vitest/worker'
import {
decodeNodeRuntimeMessage,
encodeNodeRuntimeMessage
} from './vitest-node-runtime-ipc-codec.mjs'
if (!process.send) {
throw new Error('Node Vitest worker requires an IPC channel')
}
const send = process.send.bind(process)
// Vitest replaces process.exit with a throwing guard once a file runs, and the error then spins on the dead channel.
const exit = process.exit.bind(process)
// The pool stops workers by signal, so a closed channel means Vitest died; don't outlive it mid-file.
process.once('disconnect', () => exit(1))
init({
post: (response) => send(response),
on: (callback) => process.on('message', callback),
off: (callback) => process.off('message', callback),
serialize: encodeNodeRuntimeMessage,
deserialize: decodeNodeRuntimeMessage,
teardown: () => process.removeAllListeners('message'),
runTests: (state, traces) => runBaseTests('run', state, traces),
collectTests: (state, traces) => runBaseTests('collect', state, traces),
setup: setupEnvironment
})