ladybird/Tests/LibWeb/Text/input/Streams/ReadableStream-pipeThrough.html
Timothy Flynn f3f7f77dbc LibWeb: Wait for the correct condition in Stream tests
We were signaling that the test is complete too early in some Stream
tests.
2024-10-03 07:07:28 -04:00

55 lines
1.5 KiB
HTML

<script src="../include.js"></script>
<script>
const CHUNK1 = "well,";
const CHUNK2 = "hello";
const CHUNK3 = "friends!";
asyncTest((done) => {
const transformStream = new TransformStream({
transform(chunk, controller) {
controller.enqueue(
new TextDecoder("utf-8")
.decode(chunk)
.toUpperCase()
);
}
});
const stream = new ReadableStream({
start(controller) {
pullCount = 0;
},
pull(controller) {
const textEncoder = new TextEncoder();
++pullCount;
if (pullCount == 1) {
controller.enqueue(textEncoder.encode(CHUNK1));
} else if (pullCount == 2) {
controller.enqueue(textEncoder.encode(CHUNK2));
} else if (pullCount == 3) {
controller.enqueue(textEncoder.encode(CHUNK3));
} else {
controller.close();
}
},
cancel() {},
});
const reader = transformStream.readable.getReader();
reader.read().then(function processText(result) {
if (result.done) {
done();
return;
}
println(result.value);
reader.read().then(processText);
});
stream.pipeThrough(transformStream);
});
</script>