From 344ef772e7b5eb698e36fbf029f27d04a6fc1d3a Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Wed, 3 Aug 2022 20:32:25 -0700 Subject: [PATCH] test: use common mockHome method (cherry picked from commit d614a7e04f7e591aebd1bbce8f481a7cca328f09) --- .../commands/completion/completion-prompt.ts | 12 +-------- .../tests/commands/completion/completion.ts | 26 +------------------ .../e2e/tests/misc/ask-analytics-command.ts | 21 +++------------ tests/legacy-cli/e2e/utils/utils.ts | 17 +++++++++++- 4 files changed, 22 insertions(+), 54 deletions(-) diff --git a/tests/legacy-cli/e2e/tests/commands/completion/completion-prompt.ts b/tests/legacy-cli/e2e/tests/commands/completion/completion-prompt.ts index 7efb5795aa19..1e233d891e32 100644 --- a/tests/legacy-cli/e2e/tests/commands/completion/completion-prompt.ts +++ b/tests/legacy-cli/e2e/tests/commands/completion/completion-prompt.ts @@ -2,7 +2,7 @@ import { promises as fs } from 'fs'; import * as path from 'path'; import { env } from 'process'; import { getGlobalVariable } from '../../../utils/env'; -import { mktempd } from '../../../utils/utils'; +import { mockHome } from '../../../utils/utils'; import { execAndCaptureError, @@ -447,13 +447,3 @@ async function windowsTests(): Promise { } }); } - -async function mockHome(cb: (home: string) => Promise): Promise { - const tempHome = await mktempd('angular-cli-e2e-home-'); - - try { - await cb(tempHome); - } finally { - await fs.rm(tempHome, { recursive: true, force: true }); - } -} diff --git a/tests/legacy-cli/e2e/tests/commands/completion/completion.ts b/tests/legacy-cli/e2e/tests/commands/completion/completion.ts index 2e8875c19193..496620b5cf52 100644 --- a/tests/legacy-cli/e2e/tests/commands/completion/completion.ts +++ b/tests/legacy-cli/e2e/tests/commands/completion/completion.ts @@ -1,7 +1,7 @@ import { promises as fs } from 'fs'; import * as path from 'path'; import { getGlobalVariable } from '../../../utils/env'; -import { mktempd } from '../../../utils/utils'; +import { mockHome } from '../../../utils/utils'; import { execAndCaptureError, execAndWaitForOutputToMatch, @@ -29,7 +29,6 @@ export default async function () { { ...process.env, 'SHELL': '/bin/bash', - 'HOME': home, }, ); @@ -52,7 +51,6 @@ source <(ng completion script) { ...process.env, 'SHELL': '/usr/bin/zsh', - 'HOME': home, }, ); @@ -77,7 +75,6 @@ source <(ng completion script) { ...process.env, 'SHELL': '/bin/bash', - 'HOME': home, }, ); @@ -103,7 +100,6 @@ source <(ng completion script) { ...process.env, 'SHELL': '/bin/bash', - 'HOME': home, }, ); @@ -129,7 +125,6 @@ source <(ng completion script) { ...process.env, 'SHELL': '/bin/bash', - 'HOME': home, }, ); @@ -160,7 +155,6 @@ source <(ng completion script) { ...process.env, 'SHELL': '/bin/bash', - 'HOME': home, }, ); @@ -196,7 +190,6 @@ source <(ng completion script) { ...process.env, 'SHELL': '/usr/bin/zsh', - 'HOME': home, }, ); @@ -222,7 +215,6 @@ source <(ng completion script) { ...process.env, 'SHELL': '/usr/bin/zsh', - 'HOME': home, }, ); @@ -248,7 +240,6 @@ source <(ng completion script) { ...process.env, 'SHELL': '/usr/bin/zsh', - 'HOME': home, }, ); @@ -279,7 +270,6 @@ source <(ng completion script) { ...process.env, 'SHELL': '/usr/bin/zsh', - 'HOME': home, }, ); @@ -322,7 +312,6 @@ source <(ng completion script) const err = await execAndCaptureError('ng', ['completion'], { ...process.env, SHELL: undefined, - HOME: home, }); if (!err.message.includes('`$SHELL` environment variable not set.')) { throw new Error(`Expected unset \`$SHELL\` error message, but got:\n\n${err.message}`); @@ -334,7 +323,6 @@ source <(ng completion script) const err = await execAndCaptureError('ng', ['completion'], { ...process.env, SHELL: '/usr/bin/unknown', - HOME: home, }); if (!err.message.includes('Unknown `$SHELL` environment variable')) { throw new Error(`Expected unknown \`$SHELL\` error message, but got:\n\n${err.message}`); @@ -346,7 +334,6 @@ source <(ng completion script) const { stdout } = await execWithEnv('ng', ['completion'], { ...process.env, 'SHELL': '/usr/bin/zsh', - 'HOME': home, }); if (stdout.includes('there does not seem to be a global install of the Angular CLI')) { @@ -373,7 +360,6 @@ source <(ng completion script) const { stdout } = await execWithEnv(localCliBinary, ['completion'], { ...process.env, 'SHELL': '/usr/bin/zsh', - 'HOME': home, }); if (stdout.includes('there does not seem to be a global install of the Angular CLI')) { @@ -395,13 +381,3 @@ async function windowsTests(): Promise { ); } } - -async function mockHome(cb: (home: string) => Promise): Promise { - const tempHome = await mktempd('angular-cli-e2e-home-'); - - try { - await cb(tempHome); - } finally { - await fs.rm(tempHome, { recursive: true, force: true }); - } -} diff --git a/tests/legacy-cli/e2e/tests/misc/ask-analytics-command.ts b/tests/legacy-cli/e2e/tests/misc/ask-analytics-command.ts index 1cde8a8f0b71..831909817e81 100644 --- a/tests/legacy-cli/e2e/tests/misc/ask-analytics-command.ts +++ b/tests/legacy-cli/e2e/tests/misc/ask-analytics-command.ts @@ -1,17 +1,16 @@ -import { promises as fs } from 'fs'; import { execWithEnv } from '../../utils/process'; +import { mockHome } from '../../utils/utils'; const ANALYTICS_PROMPT = /Would you like to share anonymous usage data/; export default async function () { // CLI should prompt for analytics permissions. - await mockHome(async (home) => { + await mockHome(async () => { const { stdout } = await execWithEnv( 'ng', ['version'], { ...process.env, - HOME: home, NG_FORCE_TTY: '1', NG_FORCE_AUTOCOMPLETE: 'false', }, @@ -24,10 +23,9 @@ export default async function () { }); // CLI should skip analytics prompt with `NG_CLI_ANALYTICS=false`. - await mockHome(async (home) => { + await mockHome(async () => { const { stdout } = await execWithEnv('ng', ['version'], { ...process.env, - HOME: home, NG_FORCE_TTY: '1', NG_CLI_ANALYTICS: 'false', NG_FORCE_AUTOCOMPLETE: 'false', @@ -39,10 +37,9 @@ export default async function () { }); // CLI should skip analytics prompt during `ng update`. - await mockHome(async (home) => { + await mockHome(async () => { const { stdout } = await execWithEnv('ng', ['update', '--help'], { ...process.env, - HOME: home, NG_FORCE_TTY: '1', NG_FORCE_AUTOCOMPLETE: 'false', }); @@ -54,13 +51,3 @@ export default async function () { } }); } - -async function mockHome(cb: (home: string) => Promise): Promise { - const tempHome = await fs.mkdtemp('angular-cli-e2e-home-'); - - try { - await cb(tempHome); - } finally { - await fs.rm(tempHome, { recursive: true, force: true }); - } -} diff --git a/tests/legacy-cli/e2e/utils/utils.ts b/tests/legacy-cli/e2e/utils/utils.ts index da7b8b5921bc..b6e8374c464c 100644 --- a/tests/legacy-cli/e2e/utils/utils.ts +++ b/tests/legacy-cli/e2e/utils/utils.ts @@ -1,4 +1,4 @@ -import { mkdtemp, realpath } from 'fs/promises'; +import { mkdtemp, realpath, rm } from 'fs/promises'; import { tmpdir } from 'os'; import path from 'path'; @@ -26,3 +26,18 @@ export function wait(msecs: number): Promise { export async function mktempd(prefix: string): Promise { return realpath(await mkdtemp(path.join(tmpdir(), prefix))); } + +export async function mockHome(cb: (home: string) => Promise): Promise { + const tempHome = await mktempd('angular-cli-e2e-home-'); + + const oldHome = process.env.HOME; + process.env.HOME = tempHome; + + try { + await cb(tempHome); + } finally { + process.env.HOME = oldHome; + + await rm(tempHome, { recursive: true, force: true }); + } +}