Files
ChatLab/scripts/dev-server-command.test.mjs
T

53 lines
1.3 KiB
JavaScript

import assert from 'node:assert/strict'
import test from 'node:test'
import { createChatlabStartCommand, terminateChatlabStartProcess } from './dev-server-command.mjs'
test('web dev backend runs through the current Node executable with the tsx loader', () => {
const command = createChatlabStartCommand({
rootDir: '/repo',
serverDir: '/repo/apps/cli',
coreDir: '/repo/packages/core/src',
runtimeDir: '/repo/packages/node-runtime/src',
backendPort: 3110,
nodeExecutable: '/custom/node',
})
assert.equal(command.command, '/custom/node')
assert.deepEqual(command.args, [
'--watch',
'--import',
'tsx',
'src/cli.ts',
'start',
'--headless',
'--no-open',
'--port',
'3110',
])
assert.equal(command.options.detached, true)
})
test('web dev backend cleanup terminates the whole POSIX process group', () => {
const killed = []
const proc = {
pid: 12345,
exitCode: null,
signalCode: null,
kill(signal) {
killed.push(['child', signal])
return true
},
}
terminateChatlabStartProcess(proc, {
platform: 'darwin',
killProcess: (pid, signal) => {
killed.push(['process', pid, signal])
return true
},
})
assert.deepEqual(killed, [['process', -12345, 'SIGTERM']])
})