Tests: check shrinkwrap is deduped

Change-type: patch
This commit is contained in:
Pagan Gazzard 2020-08-06 12:20:25 +01:00
parent 3691ae148e
commit 648a73fd91
5 changed files with 31 additions and 2 deletions

View File

@ -409,3 +409,12 @@ export async function catchUncommitted(): Promise<void> {
]);
}
}
export async function testShrinkwrap(): Promise<void> {
if (process.env.DEBUG) {
console.error(`[debug] platform=${process.platform}`);
}
if (process.platform !== 'win32') {
await whichSpawn(path.resolve(__dirname, 'test-lock-deduplicated.sh'));
}
}

View File

@ -21,6 +21,7 @@ import {
buildOclifInstaller,
buildStandaloneZip,
catchUncommitted,
testShrinkwrap,
} from './build-bin';
import {
release,
@ -63,6 +64,7 @@ export async function run(args?: string[]) {
'build:installer': buildOclifInstaller,
'build:standalone': buildStandaloneZip,
'catch-uncommitted': catchUncommitted,
'test-shrinkwrap': testShrinkwrap,
fix1359: updateDescriptionOfReleasesAffectedByIssue1359,
release,
};

View File

@ -0,0 +1,17 @@
#!/bin/bash
set -e
cp npm-shrinkwrap.json npm-shrinkwrap.json.old
npm i
npm dedupe
npm i
if ! diff -q npm-shrinkwrap.json npm-shrinkwrap.json.old > /dev/null; then
rm npm-shrinkwrap.json.old
echo "** npm-shrinkwrap.json was not deduplicated or not fully committed - FAIL **";
echo "** Please run 'npm ci', followed by 'npm dedupe' **";
exit 1;
fi
rm npm-shrinkwrap.json.old

View File

@ -206,7 +206,7 @@ export async function which(program: string): Promise<string> {
*/
export async function whichSpawn(
programName: string,
args: string[],
args?: string[],
): Promise<void> {
const program = await which(programName);
let error: Error | undefined;

View File

@ -58,7 +58,8 @@
"package": "npm run build:fast && npm run build:standalone && npm run build:installer",
"release": "ts-node --transpile-only automation/run.ts release",
"pretest": "npm run build",
"test": "npm run test:source && npm run test:standalone",
"test": "npm run test:shrinkwrap && npm run test:source && npm run test:standalone",
"test:shrinkwrap": "ts-node --transpile-only automation/run.ts test-shrinkwrap",
"test:source": "cross-env BALENA_CLI_TEST_TYPE=source mocha",
"test:standalone": "npm run build:standalone && npm run test:standalone:fast",
"test:standalone:fast": "cross-env BALENA_CLI_TEST_TYPE=standalone mocha",