mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-20 03:16:46 -07:00
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
import test from 'node:test';
|
|
import { spawnSync } from 'node:child_process';
|
|
|
|
function createWorkspace(name: string): string {
|
|
const baseDir = path.join(process.cwd(), '.tmp', 'get-frequency-typecheck-test');
|
|
fs.mkdirSync(baseDir, { recursive: true });
|
|
return fs.mkdtempSync(path.join(baseDir, `${name}-`));
|
|
}
|
|
|
|
test('scripts/get_frequency.ts typechecks in isolation', () => {
|
|
const workspace = createWorkspace('isolated-script');
|
|
const tsconfigPath = path.join(workspace, 'tsconfig.json');
|
|
|
|
fs.writeFileSync(
|
|
tsconfigPath,
|
|
JSON.stringify(
|
|
{
|
|
extends: '../../../tsconfig.typecheck.json',
|
|
include: ['../../../scripts/get_frequency.ts'],
|
|
exclude: [],
|
|
},
|
|
null,
|
|
2,
|
|
),
|
|
'utf8',
|
|
);
|
|
|
|
try {
|
|
const result = spawnSync('bunx', ['tsc', '--noEmit', '-p', tsconfigPath], {
|
|
cwd: process.cwd(),
|
|
encoding: 'utf8',
|
|
});
|
|
|
|
assert.equal(
|
|
result.status,
|
|
0,
|
|
`expected scripts/get_frequency.ts to typecheck\nstdout:\n${result.stdout}\nstderr:\n${result.stderr}`,
|
|
);
|
|
} finally {
|
|
fs.rmSync(workspace, { recursive: true, force: true });
|
|
}
|
|
});
|