aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/node/test/errors.test.js
diff options
context:
space:
mode:
authorGravatar Arsh <69170106+lilnasy@users.noreply.github.com> 2024-02-01 21:24:21 +0000
committerGravatar GitHub <noreply@github.com> 2024-02-01 16:24:21 -0500
commit4d23caed76081742ddffe99841f5a1cb672f8d99 (patch)
tree92fdc68ef001f2d86c977cbf760c5bb6c06c2a2d /packages/integrations/node/test/errors.test.js
parent879c712c0327d4603b17339218014077244c0f5f (diff)
downloadastro-4d23caed76081742ddffe99841f5a1cb672f8d99.tar.gz
astro-4d23caed76081742ddffe99841f5a1cb672f8d99.tar.zst
astro-4d23caed76081742ddffe99841f5a1cb672f8d99.zip
fix(NodeApp): fix responses with null bodies never completing (#9931)
* fix(NodeApp): fix responses with null bodies never completing * add changeset * add test * chore(tests): restore correct assertions * adjust incorrect test * added Astro.redirect and Response.redirect test cases * updated incorrect HTTP status * adjust api-routes.test.js after cherry-pick * bup markdoc test timeout --------- Co-authored-by: Emanuele Stoppa <my.burning@gmail.com> Co-authored-by: Friedemann Sommer <friedemannsommer@users.noreply.github.com>
Diffstat (limited to 'packages/integrations/node/test/errors.test.js')
-rw-r--r--packages/integrations/node/test/errors.test.js23
1 files changed, 16 insertions, 7 deletions
diff --git a/packages/integrations/node/test/errors.test.js b/packages/integrations/node/test/errors.test.js
index 76bff1326..8d54bcd4e 100644
--- a/packages/integrations/node/test/errors.test.js
+++ b/packages/integrations/node/test/errors.test.js
@@ -32,16 +32,25 @@ describe('Errors', () => {
});
it('generator that throws called in template', async () => {
+ const result = ['<!DOCTYPE html><h1>Astro</h1> 1', 'Internal server error'];
+
/** @type {Response} */
const res = await fixture.fetch('/generator');
const reader = res.body.getReader();
const decoder = new TextDecoder();
- const expect = async ({ done, value }) => {
- const result = await reader.read();
- assert.equal(result.done, done);
- if (!done) assert.equal(decoder.decode(result.value), value);
- };
- await expect({ done: false, value: '<!DOCTYPE html><h1>Astro</h1> 1Internal server error' });
- await expect({ done: true });
+ const chunk1 = await reader.read();
+ const chunk2 = await reader.read();
+ const chunk3 = await reader.read();
+ assert.equal(chunk1.done, false);
+ if (chunk2.done) {
+ assert.equal(decoder.decode(chunk1.value), result.join(""));
+ }
+ else if (chunk3.done) {
+ assert.equal(decoder.decode(chunk1.value), result[0]);
+ assert.equal(decoder.decode(chunk2.value), result[1]);
+ }
+ else {
+ throw new Error('The response should take at most 2 chunks.');
+ }
});
});