Files
sousa-gecko/testing/web-platform/tests/ai/summarizer/summarizer-summarize-streaming.tentative.https.window.js
T
Mike Wasserman 2b1a123436 Bug 2049632 [wpt PR 60813] - Built-In AI APIs: Add WPTs for session use after request cancellation, a=testonly
Automatic update from web-platform-tests
Built-In AI APIs: Add WPTs for session use after request cancellation

Add tests for each API and LanguageModel multimodal tests.
Expect translator flakes for now; cleanup expectations.

Bug: 523417395, 452743283, 525227294
Change-Id: I4e61aa3e8b8f16d1b0a643b8d555bc3b4e573073
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7959899
Reviewed-by: Isaac Ahouma <iahouma@google.com>
Commit-Queue: Mike Wasserman <msw@chromium.org>
Auto-Submit: Mike Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1650482}

--

wpt-commits: 41a24745b05e369e3925ff9c8f59302e85dad218
wpt-pr: 60813
2026-06-25 17:03:16 +00:00

55 lines
2.0 KiB
JavaScript

// META: title=Summarizer Summarize Streaming
// META: script=/common/gc.js
// META: script=/resources/testdriver.js
// META: script=../resources/util.js
// META: timeout=long
'use strict';
promise_test(async t => {
const summarizer = await createSummarizer();
const streamingResponse = summarizer.summarizeStreaming(kTestPrompt);
assert_true(streamingResponse instanceof ReadableStream);
const result = (await Array.fromAsync(streamingResponse)).join('');
assert_greater_than(result.length, 0, 'The result should not be empty.');
}, 'Simple Summarizer.summarizeStreaming() call');
promise_test(async (t) => {
const summarizer = await createSummarizer();
const stream = summarizer.summarizeStreaming(kTestPrompt);
summarizer.destroy();
await promise_rejects_dom(
t, 'AbortError', stream.pipeTo(new WritableStream()));
}, 'Summarizer.summarizeStreaming() fails after destroyed');
promise_test(async t => {
const summarizer = await createSummarizer();
const streamingResponse = summarizer.summarizeStreaming('');
assert_true(streamingResponse instanceof ReadableStream);
const { result, done } = await streamingResponse.getReader().read();
assert_true(done);
}, 'Summarizer.summarizeStreaming() returns a ReadableStream without any chunk on an empty input');
promise_test(async () => {
const summarizer = await createSummarizer();
await Promise.all([
summarizer.summarizeStreaming(kTestPrompt),
summarizer.summarizeStreaming(kTestPrompt)
]);
}, 'Multiple Summarizer.summarizeStreaming() calls are resolved successfully');
promise_test(async t => {
const summarizer = await createSummarizer();
const streamingResponse = summarizer.summarizeStreaming(kTestPrompt);
garbageCollect();
assert_true(streamingResponse instanceof ReadableStream);
let result = '';
for await (const value of streamingResponse) {
result += value;
garbageCollect();
}
assert_greater_than(result.length, 0, 'The result should not be empty.');
}, 'Summarize Streaming API must continue even after GC has been performed.');