36 lines
1.0 KiB
JavaScript
36 lines
1.0 KiB
JavaScript
'use strict'
|
|
|
|
const { test } = require('node:test')
|
|
const assert = require('node:assert')
|
|
const { readFile } = require('fs/promises')
|
|
const { join } = require('path')
|
|
const { file } = require('./helper')
|
|
const ThreadStream = require('..')
|
|
|
|
// This test verifies that TypeScript files can be loaded via ts-node
|
|
// when native type stripping is not enabled in the worker thread.
|
|
// Unlike ts.test.ts which passes --experimental-strip-types via execArgv,
|
|
// this test does NOT pass that flag, so the worker will fall back to ts-node.
|
|
test('typescript module with ts-node fallback', async function (t) {
|
|
const dest = file()
|
|
const stream = new ThreadStream({
|
|
filename: join(__dirname, 'ts', 'to-file.ts'),
|
|
workerData: { dest },
|
|
sync: false
|
|
})
|
|
|
|
t.after(() => stream.end())
|
|
|
|
assert.ok(stream.write('hello world\n'))
|
|
assert.ok(stream.write('something else\n'))
|
|
|
|
stream.end()
|
|
|
|
await new Promise((resolve) => {
|
|
stream.on('close', resolve)
|
|
})
|
|
|
|
const data = await readFile(dest, 'utf8')
|
|
assert.strictEqual(data, 'hello world\nsomething else\n')
|
|
})
|