mirror of
https://github.com/whyour/qinglong.git
synced 2026-09-21 01:32:44 +08:00
65 lines
2.4 KiB
JavaScript
65 lines
2.4 KiB
JavaScript
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
const os = require('node:os');
|
|
const path = require('node:path');
|
|
const { test } = require('node:test');
|
|
const {
|
|
cleanQingLong3PackageArtifacts,
|
|
} = require('../../scripts/ql3-clean-package-artifacts.cjs');
|
|
|
|
test('removes dist and paired emitted source files only from QL3 importers', (t) => {
|
|
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'ql3-clean-artifacts-'));
|
|
t.after(() => fs.rmSync(root, { force: true, recursive: true }));
|
|
|
|
const registeredPackage = path.join(root, 'packages/ql3-runtime-core');
|
|
const unregisteredPackage = path.join(root, 'packages/ql3-stale-package');
|
|
const legacyPackage = path.join(root, 'packages/legacy-package');
|
|
for (const packageDirectory of [
|
|
registeredPackage,
|
|
unregisteredPackage,
|
|
legacyPackage,
|
|
]) {
|
|
fs.mkdirSync(path.join(packageDirectory, 'dist'), { recursive: true });
|
|
fs.writeFileSync(path.join(packageDirectory, 'dist/stale.js'), 'stale');
|
|
fs.writeFileSync(path.join(packageDirectory, 'source.ts'), 'source');
|
|
}
|
|
fs.writeFileSync(path.join(registeredPackage, 'package.json'), '{}');
|
|
fs.writeFileSync(path.join(legacyPackage, 'package.json'), '{}');
|
|
fs.mkdirSync(path.join(registeredPackage, 'src/nested'), { recursive: true });
|
|
fs.writeFileSync(path.join(registeredPackage, 'src/nested/example.ts'), '');
|
|
for (const suffix of ['js', 'js.map', 'd.ts', 'd.ts.map']) {
|
|
fs.writeFileSync(
|
|
path.join(registeredPackage, `src/nested/example.${suffix}`),
|
|
'emitted',
|
|
);
|
|
}
|
|
fs.writeFileSync(
|
|
path.join(registeredPackage, 'src/nested/intentional.js'),
|
|
'module.exports = {};',
|
|
);
|
|
|
|
assert.deepEqual(cleanQingLong3PackageArtifacts(root), [
|
|
'packages/ql3-runtime-core/dist',
|
|
]);
|
|
assert.equal(fs.existsSync(path.join(registeredPackage, 'dist')), false);
|
|
assert.equal(fs.existsSync(path.join(registeredPackage, 'source.ts')), true);
|
|
assert.equal(
|
|
fs.existsSync(path.join(registeredPackage, 'src/nested/example.ts')),
|
|
true,
|
|
);
|
|
for (const suffix of ['js', 'js.map', 'd.ts', 'd.ts.map']) {
|
|
assert.equal(
|
|
fs.existsSync(
|
|
path.join(registeredPackage, `src/nested/example.${suffix}`),
|
|
),
|
|
false,
|
|
);
|
|
}
|
|
assert.equal(
|
|
fs.existsSync(path.join(registeredPackage, 'src/nested/intentional.js')),
|
|
true,
|
|
);
|
|
assert.equal(fs.existsSync(path.join(unregisteredPackage, 'dist')), true);
|
|
assert.equal(fs.existsSync(path.join(legacyPackage, 'dist')), true);
|
|
});
|