From 7e35e2918b7e86876e7deadb1341cc4a288e8fc6 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Fri, 26 Aug 2022 09:25:22 +0000 Subject: [PATCH] test: account for module resolution differences In some cases due to module resolution '@ngtools' might already been under `@angular-devkit/build-angular`. --- .../e2e/tests/misc/loaders-resolution.ts | 43 +++++++++++++++---- tests/legacy-cli/e2e/utils/utils.ts | 9 ++++ 2 files changed, 44 insertions(+), 8 deletions(-) diff --git a/tests/legacy-cli/e2e/tests/misc/loaders-resolution.ts b/tests/legacy-cli/e2e/tests/misc/loaders-resolution.ts index 0bf3fd5194..b411ab6051 100644 --- a/tests/legacy-cli/e2e/tests/misc/loaders-resolution.ts +++ b/tests/legacy-cli/e2e/tests/misc/loaders-resolution.ts @@ -1,18 +1,45 @@ import { createDir, moveFile } from '../../utils/fs'; import { ng } from '../../utils/process'; +import { assertIsError } from '../../utils/utils'; export default async function () { await createDir('node_modules/@angular-devkit/build-angular/node_modules'); - await moveFile( - 'node_modules/@ngtools', - 'node_modules/@angular-devkit/build-angular/node_modules/@ngtools', - ); + let originalInRootNodeModules = true; + + try { + await moveFile( + 'node_modules/@ngtools', + 'node_modules/@angular-devkit/build-angular/node_modules/@ngtools', + ); + } catch (e) { + assertIsError(e); + + if (e.code !== 'ENOENT') { + throw e; + } + + // In some cases due to module resolution '@ngtools' might already been under `@angular-devkit/build-angular`. + originalInRootNodeModules = false; + await moveFile( + 'node_modules/@angular-devkit/build-angular/node_modules/@ngtools', + 'node_modules/@ngtools', + ); + } await ng('build', '--configuration=development'); // Move it back. - await moveFile( - 'node_modules/@angular-devkit/build-angular/node_modules/@ngtools', - 'node_modules/@ngtools', - ); + await moveBack(originalInRootNodeModules); +} + +function moveBack(originalInRootNodeModules: Boolean): Promise { + return originalInRootNodeModules + ? moveFile( + 'node_modules/@angular-devkit/build-angular/node_modules/@ngtools', + 'node_modules/@ngtools', + ) + : moveFile( + 'node_modules/@ngtools', + 'node_modules/@angular-devkit/build-angular/node_modules/@ngtools', + ); } diff --git a/tests/legacy-cli/e2e/utils/utils.ts b/tests/legacy-cli/e2e/utils/utils.ts index b6e8374c46..f157b77ec2 100644 --- a/tests/legacy-cli/e2e/utils/utils.ts +++ b/tests/legacy-cli/e2e/utils/utils.ts @@ -1,3 +1,4 @@ +import assert from 'assert'; import { mkdtemp, realpath, rm } from 'fs/promises'; import { tmpdir } from 'os'; import path from 'path'; @@ -41,3 +42,11 @@ export async function mockHome(cb: (home: string) => Promise): Promise