import nodejs from '../dist/index.js'; import { loadFixture, createRequestAndResponse } from './test-utils.js'; import { expect } from 'chai'; describe('Node Adapter Headers', () => { /** @type {import('./test-utils').Fixture} */ let fixture; before(async () => { fixture = await loadFixture({ root: './fixtures/headers/', output: 'server', adapter: nodejs({ mode: 'middleware' }), }); await fixture.build(); }); it('Endpoint Simple Headers', async () => { await runTest('/endpoints/simple', { 'content-type': 'text/plain;charset=utf-8', 'x-hello': 'world', }); }); it('Endpoint Astro Single Cookie Header', async () => { await runTest('/endpoints/astro-cookies-single', { 'content-type': 'text/plain;charset=utf-8', 'set-cookie': 'from1=astro1', }); }); it('Endpoint Astro Multi Cookie Header', async () => { await runTest('/endpoints/astro-cookies-multi', { 'content-type': 'text/plain;charset=utf-8', 'set-cookie': ['from1=astro1', 'from2=astro2'], }); }); it('Endpoint Response Single Cookie Header', async () => { await runTest('/endpoints/response-cookies-single', { 'content-type': 'text/plain;charset=utf-8', 'set-cookie': 'hello1=world1', }); }); it('Endpoint Response Multi Cookie Header', async () => { await runTest('/endpoints/response-cookies-multi', { 'content-type': 'text/plain;charset=utf-8', 'set-cookie': ['hello1=world1', 'hello2=world2'], }); }); it('Endpoint Complex Headers Kitchen Sink', async () => { await runTest('/endpoints/kitchen-sink', { 'content-type': 'text/plain;charset=utf-8', 'x-single': 'single', 'x-triple': 'one, two, three', 'set-cookie': ['hello1=world1', 'hello2=world2'], }); }); it('Endpoint Astro and Response Single Cookie Header', async () => { await runTest('/endpoints/astro-response-cookie-single', { 'content-type': 'text/plain;charset=utf-8', 'set-cookie': ['from1=response1', 'from1=astro1'], }); }); it('Endpoint Astro and Response Multi Cookie Header', async () => { await runTest('/endpoints/astro-response-cookie-multi', { 'content-type': 'text/plain;charset=utf-8', 'set-cookie': ['from1=response1', 'from2=response2', 'from3=astro1', 'from4=astro2'], }); }); it('Endpoint Response Empty Headers Object', async () => { await runTest('/endpoints/response-empty-headers-object', { 'content-type': 'text/plain;charset=UTF-8', }); }); it('Endpoint Response undefined Headers Object', async () => { await runTest('/endpoints/response-undefined-headers-object', { 'content-type': 'text/plain;charset=UTF-8', }); }); it('Component Astro Single Cookie Header', async () => { await runTest('/astro/component-astro-cookies-single', { 'content-type': 'text/html', 'set-cookie': 'from1=astro1', }); }); it('Component Astro Multi Cookie Header', async () => { await runTest('/astro/component-astro-cookies-multi', { 'content-type': 'text/html', 'set-cookie': ['from1=astro1', 'from2=astro2'], }); }); it('Component Response Single Cookie Header', async () => { await runTest('/astro/component-response-cookies-single', { 'content-type': 'text/html', 'set-cookie': 'from1=value1', }); }); it('Component Response Multi Cookie Header', async () => { await runTest('/astro/component-response-cookies-multi', { 'content-type': 'text/html', 'set-cookie': ['from1=value1', 'from2=value2'], }); }); it('Component Astro and Response Single Cookie Header', async () => { await runTest('/astro/component-astro-response-cookie-single', { 'content-type': 'text/html', 'set-cookie': ['from1=response1', 'from1=astro1'], }); }); it('Component Astro and Response Multi Cookie Header', async () => { await runTest('/astro/component-astro-response-cookie-multi', { 'content-type': 'text/html', 'set-cookie': ['from1=response1', 'from2=response2', 'from3=astro1', 'from4=astro2'], }); }); }); async function runTest(url, expectedHeaders) { const { handler } = await import('./fixtures/headers/dist/server/entry.mjs'); let { req, res, done } = createRequestAndResponse({ method: 'GET', url, }); handler(req, res); req.send(); await done; const headers = res.getHeaders(); expect(headers).to.deep.equal(expectedHeaders); } te Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/packages/astro/e2e/fixtures/prefetch (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2024-11-13fix(routing): middleware in dev (#12420)Gravatar Emanuele Stoppa 6-9/+52
2024-11-12[ci] release (#12403)astro@4.16.11Gravatar Houston (Bot) 30-73/+68
2024-11-11fix(routing): emit error for forbidden rewrite (#12339)Gravatar Emanuele Stoppa 7-0/+88
2024-11-11[ci] formatGravatar Sarah Rainsberger 1-38/+38
2024-11-11update markdown config docs (#12382)Gravatar Sarah Rainsberger 1-4/+45
2024-11-08Actions middleware (#12373)Gravatar Ben Holmes 26-311/+483
2024-11-08Fix incorrect status code in dev server for action errors (#12401)Gravatar Ben Holmes 2-13/+21
2024-11-08fix(actions): better runtime check for invalid usages (#12402)Gravatar Emanuele Stoppa 8-5/+47
2024-11-08fix: error overlay message escape (#12305)Gravatar Florian Lefebvre 3-0/+28
2024-11-06[ci] release (beta) (#12370)create-astro@4.11.0-beta.0astro@5.0.0-beta.7@astrojs/svelte@6.0.0-beta.2Gravatar Houston (Bot) 31-55/+84
2024-11-06Add svelte changesetGravatar bluwy 5-39/+51
2024-11-06[ci] release (#12369)astro@4.16.10@astrojs/svelte@5.7.3Gravatar Houston (Bot) 34-81/+74
2024-11-06Update to Vite 6.0.0-beta.6 (#12323)Gravatar Bjorn Lu 15-100/+123
2024-11-06[ci] formatGravatar Bjorn Lu 2-18/+17
2024-11-06Add support for Svelte 5 @render syntax (#12390)Gravatar Bjorn Lu 3-0/+30
2024-11-06fix(deps): update all non-major dependencies (#12366)Gravatar renovate[bot] 29-533/+552