From 5b722c179fb43932cf6109a389dc8d6a57e209dd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 15:48:34 +0200 Subject: [PATCH] e2e-test: include local deps from plugin template --- packages/e2e-test/src/e2e-test.ts | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/e2e-test/src/e2e-test.ts b/packages/e2e-test/src/e2e-test.ts index 46992ab966..7377655497 100644 --- a/packages/e2e-test/src/e2e-test.ts +++ b/packages/e2e-test/src/e2e-test.ts @@ -35,6 +35,12 @@ import { findPaths } from '@backstage/cli-common'; const paths = findPaths(__dirname); +const templatePackagePaths = [ + 'packages/cli/templates/default-plugin/package.json.hbs', + 'packages/create-app/templates/default-app/packages/app/package.json.hbs', + 'packages/create-app/templates/default-app/packages/backend/package.json.hbs', +]; + async function main() { const rootDir = await fs.mkdtemp(resolvePath(os.tmpdir(), 'backstage-e2e-')); print(`CLI E2E test root: ${rootDir}\n`); @@ -67,20 +73,18 @@ async function buildDistWorkspace(workspaceName: string, rootDir: string) { await fs.ensureDir(workspaceDir); // We grab the needed dependencies from the create app template - const createAppDeps: string[] = []; - for (const pkgPath of ['packages/app', 'packages/backend']) { - const path = paths.resolveOwnRoot( - 'packages/create-app/templates/default-app', - pkgPath, - 'package.json.hbs', - ); - const appPkgTemplate = await fs.readFile(path, 'utf8'); - const { dependencies: allDeps } = JSON.parse( - handlebars.compile(appPkgTemplate)({ version: '0.0.0' }), - ); - createAppDeps.push( - ...Object.keys(allDeps).filter(name => name.startsWith('@backstage/')), + const createAppDeps = new Set(); + for (const pkgJsonPath of templatePackagePaths) { + const path = paths.resolveOwnRoot(pkgJsonPath); + const pkgTemplate = await fs.readFile(path, 'utf8'); + const { dependencies = {}, devDependencies = {} } = JSON.parse( + handlebars.compile(pkgTemplate)({ version: '0.0.0' }), ); + + Array() + .concat(Object.keys(dependencies), Object.keys(devDependencies)) + .filter(name => name.startsWith('@backstage/')) + .forEach(dep => createAppDeps.add(dep)); } print(`Preparing workspace`);