test
Version:
Node.js 18's node:test, as an npm package
36 lines (31 loc) • 1.19 kB
JavaScript
// https://github.com/nodejs/node/blob/2e682f10b6104373fded64b0e364984b85ae2243/test/parallel/test-runner-misc.js
const common = require('../common')
const assert = require('assert')
const { spawnSync } = require('child_process')
const { setTimeout } = require('#timers/promises')
if (process.argv[2] === 'child') {
const test = require('#node:test')
if (process.argv[3] === 'abortSignal') {
assert.throws(() => test({ signal: {} }), {
code: 'ERR_INVALID_ARG_TYPE',
name: 'TypeError'
})
let testSignal
test({ timeout: 10 }, common.mustCall(async ({ signal }) => {
assert.strictEqual(signal.aborted, false)
testSignal = signal
await setTimeout(50)
})).finally(common.mustCall(() => {
test(() => assert.strictEqual(testSignal.aborted, true))
}))
} else assert.fail('unreachable')
} else {
const child = spawnSync(process.execPath, [__filename, 'child', 'abortSignal'])
const stdout = child.stdout.toString()
assert.match(stdout, /^# pass 1$/m)
assert.match(stdout, /^# fail 0$/m)
assert.match(stdout, /^# cancelled 1$/m)
assert.strictEqual(child.status, 1)
assert.strictEqual(child.signal, null)
}