diff options
author | 2024-02-01 07:02:40 +0000 | |
---|---|---|
committer | 2024-02-01 07:02:40 +0000 | |
commit | 2f6d1faa6f2d6de2d4ccd2a48adf5adadc82e593 (patch) | |
tree | 1301971a34f7e5fca25a85784ae08b146e104614 /packages/integrations/node/test/errors.test.js | |
parent | 440bdff8cca7df7bb4e123539c77f3631293c6e8 (diff) | |
download | astro-2f6d1faa6f2d6de2d4ccd2a48adf5adadc82e593.tar.gz astro-2f6d1faa6f2d6de2d4ccd2a48adf5adadc82e593.tar.zst astro-2f6d1faa6f2d6de2d4ccd2a48adf5adadc82e593.zip |
fix(NodeApp): end with "Internal server error" on mid-stream error (#9908)
* fix(NodeApp): end with "Internal server error" on mid-stream error
* add changeset
* add test
* Apply suggestions from code review
---------
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Diffstat (limited to 'packages/integrations/node/test/errors.test.js')
-rw-r--r-- | packages/integrations/node/test/errors.test.js | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/packages/integrations/node/test/errors.test.js b/packages/integrations/node/test/errors.test.js index 983187475..23deba02c 100644 --- a/packages/integrations/node/test/errors.test.js +++ b/packages/integrations/node/test/errors.test.js @@ -1,4 +1,4 @@ -import * as assert from 'node:assert/strict'; +import assert from 'node:assert/strict'; import { describe, it, before, after } from 'node:test'; import nodejs from '../dist/index.js'; import { loadFixture } from './test-utils.js'; @@ -22,11 +22,26 @@ describe('Errors', () => { after(async () => { await devPreview.stop(); }); - it('when mode is standalone', async () => { + + it('rejected promise in template', async () => { const res = await fixture.fetch('/in-stream'); const html = await res.text(); const $ = cheerio.load(html); assert.equal($('p').text().trim(), 'Internal server error'); }); + + it('generator that throws called in template', async () => { + /** @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 }); + }); }); |