mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-10-26 02:04:37 +08:00
53 lines
1.3 KiB
JavaScript
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']])
|
|
})
|