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
55 lines
1.9 KiB
JavaScript
55 lines
1.9 KiB
JavaScript
// META: title=Writer Write Streaming
|
|
// META: script=/common/gc.js
|
|
// META: script=/resources/testdriver.js
|
|
// META: script=../resources/util.js
|
|
// META: timeout=long
|
|
|
|
'use strict';
|
|
|
|
promise_test(async () => {
|
|
const writer = await createWriter();
|
|
const streamingResponse = writer.writeStreaming(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 Writer.writeStreaming() call');
|
|
|
|
promise_test(async (t) => {
|
|
const writer = await createWriter();
|
|
const stream = writer.writeStreaming(kTestPrompt);
|
|
|
|
writer.destroy();
|
|
|
|
await promise_rejects_dom(
|
|
t, 'AbortError', stream.pipeTo(new WritableStream()));
|
|
}, 'Writer.writeStreaming() fails after destroyed');
|
|
|
|
promise_test(async t => {
|
|
const writer = await createWriter();
|
|
const streamingResponse = writer.writeStreaming('');
|
|
assert_true(streamingResponse instanceof ReadableStream);
|
|
const { result, done } = await streamingResponse.getReader().read();
|
|
assert_true(done);
|
|
}, 'Writer.writeStreaming() returns a ReadableStream without any chunk on an empty input');
|
|
|
|
promise_test(async () => {
|
|
const writer = await createWriter();
|
|
await Promise.all([
|
|
writer.writeStreaming(kTestPrompt),
|
|
writer.writeStreaming(kTestPrompt)
|
|
]);
|
|
}, 'Multiple Writer.writeStreaming() calls are resolved successfully');
|
|
|
|
promise_test(async () => {
|
|
const writer = await createWriter();
|
|
const streamingResponse = writer.writeStreaming(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.');
|
|
}, 'Write Streaming API must continue even after GC has been performed.');
|