From 2ce463d2b4d4bc088c23aa159688b1f08c544e83 Mon Sep 17 00:00:00 2001 From: Brian Love Date: Wed, 27 May 2026 10:36:14 -0700 Subject: [PATCH] test(examples-chat): delete fully-skipped stop-streaming spec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added in PR #433 with `test.skip(...)` and no condition or comment explaining the skip. Two years later it's still skipped and adds nothing to CI signal. The test's intent — assert the "Stop generating" button is visible mid-stream, click it, observe abort — is fundamentally flaky against aimock-replayed streams: the streaming chunks arrive in <100ms and signal-batched updates can collapse the visible-then-hidden state below Playwright's polling resolution. This is already documented in test-helpers.ts:95-100 as the reason `submitAndWaitForResponse` asserts on the rendered `chat-message` element's `data-streaming` attribute (not on input/button affordances). The same constraint makes this test unimplementable as-written against aimock. If/when we add a slow-streaming fixture path (or run e2e against a non-aimock backend), reintroduce the test alongside that. Until then it's dead code. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../chat/angular/e2e/stop-streaming.spec.ts | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 examples/chat/angular/e2e/stop-streaming.spec.ts diff --git a/examples/chat/angular/e2e/stop-streaming.spec.ts b/examples/chat/angular/e2e/stop-streaming.spec.ts deleted file mode 100644 index f3e0d9d8f..000000000 --- a/examples/chat/angular/e2e/stop-streaming.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: MIT -import { test, expect } from '@playwright/test'; -import { attachBrowserHygiene, messageInput, openDemo, sendButton } from './test-helpers'; - -test.skip('stop mid-stream: stop button aborts the run and leaves the partial response', async ({ - page, -}) => { - await openDemo(page, '/embed'); - const hygiene = attachBrowserHygiene(page); - - await messageInput(page).fill('stream a long deterministic answer'); - await sendButton(page).click(); - - const stop = page.getByRole('button', { name: 'Stop generating' }); - await expect(stop).toBeVisible({ timeout: 10_000 }); - await stop.click(); - - await expect(stop).toBeHidden({ timeout: 15_000 }); - await expect(page.locator('chat-message[data-role="assistant"]').last()).toBeAttached(); - await expect(messageInput(page)).toBeVisible(); - - expect(hygiene.consoleErrors).toEqual([]); -});