Spaces:
Running
Running
File size: 2,204 Bytes
704e84f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import {
collectInstallScriptIdentities,
validateInstallScriptPolicy
} from './check-install-script-policy.mjs';
import assert from 'node:assert/strict';
import { describe, it } from 'node:test';
describe('install script policy', () => {
it('collects install-script identities from direct, nested, and scoped lockfile packages', () => {
const identities = collectInstallScriptIdentities({
packages: {
'': { name: 'fixture' },
'node_modules/esbuild': { version: '0.28.1', hasInstallScript: true },
'node_modules/next/node_modules/sharp': { version: '0.34.5', hasInstallScript: true },
'node_modules/example/node_modules/@scope/native-addon': {
version: '1.2.3',
hasInstallScript: true
},
'node_modules/ignored': { version: '1.0.0' },
'packages/workspace/node_modules/workspace-native-addon': { version: '2.0.0', hasInstallScript: true }
}
});
assert.deepEqual(identities, [
'@scope/native-addon@1.2.3',
'esbuild@0.28.1',
'sharp@0.34.5',
'workspace-native-addon@2.0.0'
]);
});
it('reports missing, stale, and invalid policy entries', () => {
const result = validateInstallScriptPolicy(
{
packages: {
'node_modules/esbuild': { version: '0.28.1', hasInstallScript: true },
'node_modules/sharp': { version: '0.34.5', hasInstallScript: true }
}
},
{
allowScripts: {
'esbuild@0.28.1': true,
'left-pad@1.3.0': false,
'sharp@0.34.5': 'approved'
}
}
);
assert.deepEqual(result, {
ok: false,
installScriptIdentities: ['esbuild@0.28.1', 'sharp@0.34.5'],
approved: ['esbuild@0.28.1'],
denied: ['left-pad@1.3.0'],
missing: ['sharp@0.34.5'],
stale: ['left-pad@1.3.0'],
invalid: ['sharp@0.34.5']
});
});
});
|