Files
vercel/packages/static-build/test/integration-setup.js
Nathan Rajlich f11c7024c4 [static-build] Fix running of e2e tests (#11518)
We accidentally committed a change which prevented the static-build e2e
tests, so fixing that.

Also reverting a change from https://github.com/vercel/vercel/pull/11497
which was causing issues with Ruby-based static site generators when
using the AL2 build image.
2024-04-30 12:57:25 -07:00

70 lines
2.1 KiB
JavaScript
Vendored

const fs = require('fs');
const path = require('path');
const { intoChunks } = require('../../../utils/chunk-tests');
const {
testDeployment,
} = require('../../../test/lib/deployment/test-deployment.js');
jest.setTimeout(12 * 60 * 1000);
module.exports = function setupTests(groupIndex) {
const fixturesPath = path.resolve(__dirname, 'fixtures');
const testsThatFailToBuild = new Map([
[
'04-wrong-dist-dir',
'No Output Directory named "out" found after the Build completed. You can configure the Output Directory in your Project Settings.',
],
['05-empty-dist-dir', 'The Output Directory "dist" is empty.'],
[
'06-missing-script',
'Missing required "vercel-build" script in "package.json"',
],
['07-nonzero-sh', 'Command "./build.sh" exited with 1'],
[
'22-docusaurus-2-build-fail',
'No Output Directory named "build" found after the Build completed. You can configure the Output Directory in your Project Settings.',
],
[
'36-hugo-version-not-found',
'Version 0.0.0 of Hugo does not exist. Please specify a different one.',
],
]);
let fixtures = fs.readdirSync(fixturesPath);
if (typeof groupIndex !== 'undefined') {
fixtures = intoChunks(1, 5, fixtures)[groupIndex - 1];
console.log('testing group', groupIndex, fixtures);
}
const fixturesToSkip = [];
// eslint-disable-next-line no-restricted-syntax
for (const fixture of fixtures) {
if (fixturesToSkip.includes(fixture)) {
continue;
}
const errMsg = testsThatFailToBuild.get(fixture);
if (errMsg) {
// eslint-disable-next-line no-loop-func
it(`should fail to build ${fixture}`, async () => {
try {
await testDeployment(path.join(fixturesPath, fixture));
} catch (err) {
expect(err).toBeTruthy();
expect(err.deployment).toBeTruthy();
expect(err.deployment.errorMessage).toBe(errMsg);
}
});
continue; //eslint-disable-line
}
it(`should build ${fixture}`, async () => {
await expect(
testDeployment(path.join(fixturesPath, fixture))
).resolves.toBeDefined();
});
}
};