MotorSignal-App/website/tests/deployment-revision.test.cjs

24 lines
1.1 KiB
JavaScript

const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');
const root = path.resolve(__dirname, '..', '..');
const route = fs.readFileSync(path.join(root, 'website/app/api/version/route.ts'), 'utf8');
const config = fs.readFileSync(path.join(root, 'website/next.config.ts'), 'utf8');
const deploy = fs.readFileSync(path.join(root, 'scripts/deploy-website.ps1'), 'utf8');
assert.match(config, /MOTORSIGNAL_GIT_SHA/);
assert.match(config, /MOTORSIGNAL_DEPLOY_REVISION/);
assert.match(route, /service: 'motorsignal-website'/);
assert.match(route, /revision/);
assert.match(route, /Cache-Control/);
assert.match(route, /no-store/);
assert.match(deploy, /git -C \$RepositoryRoot rev-parse HEAD/);
assert.match(deploy, /MOTORSIGNAL_GIT_SHA/);
assert.match(deploy, /https:\/\/motorsignal\.app\/api\/version/);
assert.match(deploy, /Deployment revision mismatch/);
assert.match(deploy, /status --porcelain -- website/);
assert.match(deploy, /working tree contains uncommitted changes/);
console.log('PASS: website deployment revision contract verified.');