diff options
Diffstat (limited to 'packages/astro/test/astro-preview-headers.test.js')
-rw-r--r-- | packages/astro/test/astro-preview-headers.test.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/astro/test/astro-preview-headers.test.js b/packages/astro/test/astro-preview-headers.test.js new file mode 100644 index 000000000..d33f46376 --- /dev/null +++ b/packages/astro/test/astro-preview-headers.test.js @@ -0,0 +1,41 @@ +import assert from 'node:assert/strict'; +import { after, before, describe, it } from 'node:test'; +import { loadFixture } from './test-utils.js'; + +describe('Astro preview headers', () => { + let fixture; + let previewServer; + const headers = { + astro: 'test', + }; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/astro-preview-headers/', + server: { + headers, + }, + }); + await fixture.build(); + previewServer = await fixture.preview(); + }); + + // important: close preview server (free up port and connection) + after(async () => { + await previewServer.stop(); + }); + + describe('preview', () => { + it('returns custom headers for valid URLs', async () => { + const result = await fixture.fetch('/'); + assert.equal(result.status, 200); + assert.equal(Object.fromEntries(result.headers).astro, headers.astro); + }); + + it('does not return custom headers for invalid URLs', async () => { + const result = await fixture.fetch('/bad-url'); + assert.equal(result.status, 404); + assert.equal(Object.fromEntries(result.headers).hasOwnProperty('astro'), false); + }); + }); +}); |