From 533fd21c9314dab0cee268f10f10cad2f63baca7 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Wed, 4 Dec 2024 17:41:06 +0000 Subject: [PATCH 1/2] test: Introduce delay for file write to minimize flakiness MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With recent updates to Vite, rebuild times have become significantly faster. To ensure reliable testing, we’ve added a deliberate delay to slow down the process during file writes. --- .../tests/vite/reuse-dep-optimization-cache.ts | 2 +- .../e2e/tests/vite/ssr-new-dep-optimization.ts | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/legacy-cli/e2e/tests/vite/reuse-dep-optimization-cache.ts b/tests/legacy-cli/e2e/tests/vite/reuse-dep-optimization-cache.ts index 9ffc9aa67c6a..1aae0a01dc31 100644 --- a/tests/legacy-cli/e2e/tests/vite/reuse-dep-optimization-cache.ts +++ b/tests/legacy-cli/e2e/tests/vite/reuse-dep-optimization-cache.ts @@ -39,6 +39,6 @@ export default async function () { ['serve', '--port=0'], /Hash is consistent\. Skipping/, // Use CI:0 to force caching - { DEBUG: 'vite:deps', CI: '0' }, + { DEBUG: 'vite:deps', CI: '0', NO_COLOR: 'true' }, ); } diff --git a/tests/legacy-cli/e2e/tests/vite/ssr-new-dep-optimization.ts b/tests/legacy-cli/e2e/tests/vite/ssr-new-dep-optimization.ts index d330cbf8f75d..1da72d441161 100644 --- a/tests/legacy-cli/e2e/tests/vite/ssr-new-dep-optimization.ts +++ b/tests/legacy-cli/e2e/tests/vite/ssr-new-dep-optimization.ts @@ -1,10 +1,15 @@ import assert from 'node:assert'; import { setTimeout } from 'node:timers/promises'; -import { ng, waitForAnyProcessOutputToMatch } from '../../utils/process'; +import { + execAndWaitForOutputToMatch, + ng, + waitForAnyProcessOutputToMatch, +} from '../../utils/process'; import { installWorkspacePackages, uninstallPackage } from '../../utils/packages'; -import { ngServe, useSha } from '../../utils/project'; +import { useSha } from '../../utils/project'; import { getGlobalVariable } from '../../utils/env'; import { readFile, writeFile } from '../../utils/fs'; +import { findFreePort } from '../../utils/network'; export default async function () { assert( @@ -22,7 +27,14 @@ export default async function () { await useSha(); await installWorkspacePackages(); - const port = await ngServe(); + // The Node.js specific module should not be found + const port = await findFreePort(); + await execAndWaitForOutputToMatch( + 'ng', + ['serve', '--port', port.toString()], + /Application bundle generation complete/, + { CI: '0', NO_COLOR: 'true' }, + ); await validateResponse('/', /Hello,/); const appConfigContentsUpdated = ` From 9b9ae1ae659dbdcd4c340e7b8d4fb5088fdbedd6 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Wed, 4 Dec 2024 18:11:19 +0000 Subject: [PATCH 2/2] Revert "test: Introduce delay for file write to minimize flakiness" This reverts commit 533fd21c9314dab0cee268f10f10cad2f63baca7. --- .../vite/reuse-dep-optimization-cache.ts | 2 +- .../tests/vite/ssr-new-dep-optimization.ts | 32 ++++++------------- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/tests/legacy-cli/e2e/tests/vite/reuse-dep-optimization-cache.ts b/tests/legacy-cli/e2e/tests/vite/reuse-dep-optimization-cache.ts index 1aae0a01dc31..9ffc9aa67c6a 100644 --- a/tests/legacy-cli/e2e/tests/vite/reuse-dep-optimization-cache.ts +++ b/tests/legacy-cli/e2e/tests/vite/reuse-dep-optimization-cache.ts @@ -39,6 +39,6 @@ export default async function () { ['serve', '--port=0'], /Hash is consistent\. Skipping/, // Use CI:0 to force caching - { DEBUG: 'vite:deps', CI: '0', NO_COLOR: 'true' }, + { DEBUG: 'vite:deps', CI: '0' }, ); } diff --git a/tests/legacy-cli/e2e/tests/vite/ssr-new-dep-optimization.ts b/tests/legacy-cli/e2e/tests/vite/ssr-new-dep-optimization.ts index 1da72d441161..d8e9d61f79e2 100644 --- a/tests/legacy-cli/e2e/tests/vite/ssr-new-dep-optimization.ts +++ b/tests/legacy-cli/e2e/tests/vite/ssr-new-dep-optimization.ts @@ -1,15 +1,9 @@ import assert from 'node:assert'; -import { setTimeout } from 'node:timers/promises'; -import { - execAndWaitForOutputToMatch, - ng, - waitForAnyProcessOutputToMatch, -} from '../../utils/process'; +import { ng, waitForAnyProcessOutputToMatch } from '../../utils/process'; import { installWorkspacePackages, uninstallPackage } from '../../utils/packages'; -import { useSha } from '../../utils/project'; +import { ngServe, useSha } from '../../utils/project'; import { getGlobalVariable } from '../../utils/env'; import { readFile, writeFile } from '../../utils/fs'; -import { findFreePort } from '../../utils/network'; export default async function () { assert( @@ -27,27 +21,21 @@ export default async function () { await useSha(); await installWorkspacePackages(); - // The Node.js specific module should not be found - const port = await findFreePort(); - await execAndWaitForOutputToMatch( - 'ng', - ['serve', '--port', port.toString()], - /Application bundle generation complete/, - { CI: '0', NO_COLOR: 'true' }, - ); + const port = await ngServe(); await validateResponse('/', /Hello,/); - const appConfigContentsUpdated = ` - import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; - ${(await readFile('src/app/app.config.ts')).replace('provideRouter(routes),', 'provideAnimationsAsync(), provideRouter(routes),')} - `; - await Promise.all([ waitForAnyProcessOutputToMatch( /new dependencies optimized: @angular\/platform-browser\/animations\/async/, 6000, ), - setTimeout(200).then(() => writeFile('src/app/app.config.ts', appConfigContentsUpdated)), + writeFile( + 'src/app/app.config.ts', + ` + import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; + ${(await readFile('src/app/app.config.ts')).replace('provideRouter(routes),', 'provideAnimationsAsync(), provideRouter(routes),')} + `, + ), ]); // Verify the app still works.