[tests] Pass in builder to runBuildLambda() (#9262)

Removes the need for `next`/`static-build` to be present in the root `package.json` file.
This commit is contained in:
Nathan Rajlich
2023-01-19 15:10:06 -08:00
committed by GitHub
parent cc687b3880
commit a7a5bf1a12
7 changed files with 64 additions and 85 deletions

View File

@@ -13,8 +13,6 @@
"@typescript-eslint/parser": "5.21.0", "@typescript-eslint/parser": "5.21.0",
"@vercel/build-utils": "*", "@vercel/build-utils": "*",
"@vercel/ncc": "0.24.0", "@vercel/ncc": "0.24.0",
"@vercel/next": "*",
"@vercel/static-build": "*",
"async-retry": "1.2.3", "async-retry": "1.2.3",
"buffer-replace": "1.0.0", "buffer-replace": "1.0.0",
"create-svelte": "2.0.1", "create-svelte": "2.0.1",

View File

@@ -2,8 +2,12 @@ process.env.NEXT_TELEMETRY_DISABLED = '1';
const path = require('path'); const path = require('path');
const fs = require('fs-extra'); const fs = require('fs-extra');
const builder = require('../../');
const {
createRunBuildLambda,
} = require('../../../../test/lib/run-build-lambda');
const runBuildLambda = require('../../../../test/lib/run-build-lambda'); const runBuildLambda = createRunBuildLambda(builder);
jest.setTimeout(360000); jest.setTimeout(360000);

View File

@@ -6,10 +6,13 @@ import type { Context } from '../types';
import { duplicateWithConfig } from '../utils'; import { duplicateWithConfig } from '../utils';
import fs from 'fs-extra'; import fs from 'fs-extra';
import path from 'path'; import path from 'path';
import runBuildLambda from '../../../../test/lib/run-build-lambda'; import * as builder from '../../';
import { createRunBuildLambda } from '../../../../test/lib/run-build-lambda';
import { EdgeFunction, Files, streamToBuffer } from '@vercel/build-utils'; import { EdgeFunction, Files, streamToBuffer } from '@vercel/build-utils';
import { createHash } from 'crypto'; import { createHash } from 'crypto';
const runBuildLambda = createRunBuildLambda(builder);
const SIMPLE_PROJECT = path.resolve( const SIMPLE_PROJECT = path.resolve(
__dirname, __dirname,
'..', '..',

View File

@@ -1,6 +0,0 @@
describe('export', () => {
it('should require by path main', async () => {
const main = require('@vercel/next');
expect(main).toBeDefined();
});
});

View File

@@ -1,6 +1,9 @@
const path = require('path'); const path = require('path');
const fs = require('fs-extra'); const fs = require('fs-extra');
const runBuildLambda = require('../../../test/lib/run-build-lambda'); const builder = require('../');
const { createRunBuildLambda } = require('../../../test/lib/run-build-lambda');
const runBuildLambda = createRunBuildLambda(builder);
const FOUR_MINUTES = 240000; const FOUR_MINUTES = 240000;

12
pnpm-lock.yaml generated
View File

@@ -9,8 +9,6 @@ importers:
'@typescript-eslint/parser': 5.21.0 '@typescript-eslint/parser': 5.21.0
'@vercel/build-utils': '*' '@vercel/build-utils': '*'
'@vercel/ncc': 0.24.0 '@vercel/ncc': 0.24.0
'@vercel/next': '*'
'@vercel/static-build': '*'
async-retry: 1.2.3 async-retry: 1.2.3
buffer-replace: 1.0.0 buffer-replace: 1.0.0
create-svelte: 2.0.1 create-svelte: 2.0.1
@@ -40,8 +38,6 @@ importers:
'@typescript-eslint/parser': 5.21.0_eslint@8.14.0 '@typescript-eslint/parser': 5.21.0_eslint@8.14.0
'@vercel/build-utils': link:packages/build-utils '@vercel/build-utils': link:packages/build-utils
'@vercel/ncc': 0.24.0 '@vercel/ncc': 0.24.0
'@vercel/next': link:packages/next
'@vercel/static-build': link:packages/static-build
async-retry: 1.2.3 async-retry: 1.2.3
buffer-replace: 1.0.0 buffer-replace: 1.0.0
create-svelte: 2.0.1 create-svelte: 2.0.1
@@ -1214,7 +1210,7 @@ packages:
'@babel/core': ^7.0.0 '@babel/core': ^7.0.0
dependencies: dependencies:
'@babel/compat-data': 7.20.10 '@babel/compat-data': 7.20.10
'@babel/core': 7.20.12 '@babel/core': 7.20.12_supports-color@7.2.0
'@babel/helper-validator-option': 7.18.6 '@babel/helper-validator-option': 7.18.6
browserslist: 4.21.4 browserslist: 4.21.4
lru-cache: 5.1.1 lru-cache: 5.1.1
@@ -1719,7 +1715,7 @@ packages:
peerDependencies: peerDependencies:
'@babel/core': ^7.0.0-0 '@babel/core': ^7.0.0-0
dependencies: dependencies:
'@babel/core': 7.20.12 '@babel/core': 7.20.12_supports-color@7.2.0
'@babel/helper-plugin-utils': 7.20.2 '@babel/helper-plugin-utils': 7.20.2
dev: true dev: true
@@ -1849,7 +1845,7 @@ packages:
peerDependencies: peerDependencies:
'@babel/core': ^7.0.0-0 '@babel/core': ^7.0.0-0
dependencies: dependencies:
'@babel/core': 7.20.12 '@babel/core': 7.20.12_supports-color@7.2.0
'@babel/helper-plugin-utils': 7.20.2 '@babel/helper-plugin-utils': 7.20.2
dev: true dev: true
@@ -1858,7 +1854,7 @@ packages:
peerDependencies: peerDependencies:
'@babel/core': ^7.0.0-0 '@babel/core': ^7.0.0-0
dependencies: dependencies:
'@babel/core': 7.20.12 '@babel/core': 7.20.12_supports-color@7.2.0
'@babel/helper-plugin-utils': 7.20.2 '@babel/helper-plugin-utils': 7.20.2
dev: true dev: true

View File

@@ -4,15 +4,8 @@ const fs = require('fs-extra');
const json5 = require('json5'); const json5 = require('json5');
const { glob } = require('@vercel/build-utils'); const { glob } = require('@vercel/build-utils');
function runAnalyze(wrapper, context) { exports.createRunBuildLambda = function (builder) {
if (wrapper.analyze) { return async inputPath => {
return wrapper.analyze(context);
}
return 'this-is-a-fake-analyze-result-from-default-analyze';
}
async function runBuildLambda(inputPath) {
const inputFiles = await glob('**', inputPath); const inputFiles = await glob('**', inputPath);
const nowJsonRef = inputFiles['vercel.json'] || inputFiles['now.json']; const nowJsonRef = inputFiles['vercel.json'] || inputFiles['now.json'];
@@ -30,16 +23,6 @@ async function runBuildLambda(inputPath) {
if (typeof expect !== 'undefined') { if (typeof expect !== 'undefined') {
expect(inputFiles[entrypoint]).toBeDefined(); expect(inputFiles[entrypoint]).toBeDefined();
} }
inputFiles[entrypoint].digest =
'this-is-a-fake-digest-for-non-default-analyze';
const wrapper = require(build.use);
const analyzeResult = runAnalyze(wrapper, {
files: inputFiles,
entrypoint,
config: build.config,
});
let workPath = path.join( let workPath = path.join(
os.tmpdir(), os.tmpdir(),
`vercel-${Date.now()}-${Math.floor(Math.random() * 100)}` `vercel-${Date.now()}-${Math.floor(Math.random() * 100)}`
@@ -49,7 +32,7 @@ async function runBuildLambda(inputPath) {
workPath = await fs.realpath(workPath); workPath = await fs.realpath(workPath);
console.log('building in', workPath); console.log('building in', workPath);
const buildResult = await wrapper.build({ const buildResult = await builder.build({
files: inputFiles, files: inputFiles,
entrypoint, entrypoint,
config: build.config, config: build.config,
@@ -69,10 +52,8 @@ async function runBuildLambda(inputPath) {
} }
return { return {
analyzeResult,
buildResult, buildResult,
workPath, workPath,
}; };
} };
};
module.exports = runBuildLambda;