From 4762aecc32338b57e6eaf5878ca52377b908007b Mon Sep 17 00:00:00 2001 From: Tim Deschryver <28659384+timdeschryver@users.noreply.github.com> Date: Tue, 17 Mar 2026 12:42:29 +0100 Subject: [PATCH] fix: disable whenStable by default --- .../src/tests/zoneless.spec.ts | 4 ++-- .../zoneless/src/public_api.ts | 24 ++++++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/projects/testing-library/src/tests/zoneless.spec.ts b/projects/testing-library/src/tests/zoneless.spec.ts index 15e3782..e87924a 100644 --- a/projects/testing-library/src/tests/zoneless.spec.ts +++ b/projects/testing-library/src/tests/zoneless.spec.ts @@ -85,9 +85,9 @@ test('renders and interacts with the component', async () => { expect(valueControl).toHaveTextContent('6'); }); -test('renders and interacts with the component with skipWaitForStableOnRender set to true', async () => { +test('renders and interacts with the component with skipDetectChanges set to true', async () => { const user = userEvent.setup(); - await render(FixtureComponent, { skipWaitForStableOnRender: true }); + await render(FixtureComponent, { skipDetectChanges: true }); const incrementControl = screen.getByRole('button', { name: '+' }); const decrementControl = screen.getByRole('button', { name: '-' }); diff --git a/projects/testing-library/zoneless/src/public_api.ts b/projects/testing-library/zoneless/src/public_api.ts index 10e95f4..b4885ad 100644 --- a/projects/testing-library/zoneless/src/public_api.ts +++ b/projects/testing-library/zoneless/src/public_api.ts @@ -75,6 +75,20 @@ export interface RenderOptions { */ configureTestBed?: (testbed: TestBed) => void; + /** + * @description + * Determines whether `fixture.detectChanges()` is called after the component is rendered. + * + * @default + * true + * + * @example + * await render(AppComponent, { + * skipDetectChanges: false + * }) + */ + skipDetectChanges?: boolean; + /** * @description * Determines whether `fixture.whenStable()` is called after the component is rendered. @@ -84,10 +98,10 @@ export interface RenderOptions { * * @example * await render(AppComponent, { - * skipWaitForStableOnRender: false + * waitForStableOnRender: false * }) */ - skipWaitForStableOnRender?: boolean; + waitForStableOnRender?: boolean; /** * @description @@ -188,7 +202,11 @@ export async function render( ? await createWrapperFixture(componentOrTemplate, (renderOptions ?? {}) as RenderTemplateOptions) : await createComponentFixture(componentOrTemplate, (renderOptions ?? {}) as RenderComponentOptions); - if (renderOptions.skipWaitForStableOnRender !== true) { + if (renderOptions.skipDetectChanges !== true) { + fixture.detectChanges(); + } + + if (renderOptions.waitForStableOnRender === true) { await fixture.whenStable(); }