Files
qinglong/test/back/ql3CleanPackageArtifacts.test.cjs
T

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);
});