27 lines
958 B
JavaScript
27 lines
958 B
JavaScript
import { readFile } from 'node:fs/promises';
|
|
import { test } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
|
|
const workflows = [
|
|
'.github/workflows/refresh-lockfile.yml',
|
|
'.github/workflows/pr-trusted.yml',
|
|
'.github/workflows/docker.yml',
|
|
'.github/workflows/docker-cloud.yml',
|
|
];
|
|
|
|
test('lockfile repair workflows resolve dependencies instead of updating metadata only', async () => {
|
|
for (const workflow of workflows) {
|
|
const contents = await readFile(workflow, 'utf8');
|
|
const repairCommands = contents
|
|
.split('\n')
|
|
.filter((line) => line.includes('pnpm install') && line.includes('--no-frozen-lockfile'));
|
|
|
|
assert.ok(repairCommands.length > 0, `${workflow} must contain a lockfile repair command`);
|
|
for (const command of repairCommands) {
|
|
assert.match(command, /--resolution-only/);
|
|
assert.match(command, /--ignore-scripts/);
|
|
assert.doesNotMatch(command, /--lockfile-only/);
|
|
}
|
|
}
|
|
});
|