diff options
author | 2023-10-12 14:36:34 +0000 | |
---|---|---|
committer | 2023-10-12 09:36:34 -0500 | |
commit | 391729686bcc8404a7dd48c5987ee380daf3200f (patch) | |
tree | 8cf8caf8dfa39f533228887ef70730735f88290f /packages/integrations/node/test/locals.test.js | |
parent | 3bef32f81c56bc600ca307f1bd40787e23e625a5 (diff) | |
download | astro-391729686bcc8404a7dd48c5987ee380daf3200f.tar.gz astro-391729686bcc8404a7dd48c5987ee380daf3200f.tar.zst astro-391729686bcc8404a7dd48c5987ee380daf3200f.zip |
fix(middleware): instantiate locals if the adapter does not (#8800)
Diffstat (limited to '')
-rw-r--r-- | packages/integrations/node/test/locals.test.js | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/packages/integrations/node/test/locals.test.js b/packages/integrations/node/test/locals.test.js index f7fc6b73f..b593f3eb9 100644 --- a/packages/integrations/node/test/locals.test.js +++ b/packages/integrations/node/test/locals.test.js @@ -15,11 +15,10 @@ describe('API routes', () => { await fixture.build(); }); - it('Can render locals in page', async () => { + it('Can use locals added by node middleware', async () => { const { handler } = await import('./fixtures/locals/dist/server/entry.mjs'); let { req, res, text } = createRequestAndResponse({ - method: 'POST', - url: '/foo', + url: '/from-node-middleware', }); let locals = { foo: 'bar' }; @@ -32,6 +31,34 @@ describe('API routes', () => { expect(html).to.contain('<h1>bar</h1>'); }); + it('Throws an error when provided non-objects as locals', async () => { + const { handler } = await import('./fixtures/locals/dist/server/entry.mjs'); + let { req, res, done } = createRequestAndResponse({ + url: '/from-node-middleware', + }); + + handler(req, res, undefined, "locals"); + req.send(); + + await done; + expect(res).to.deep.include({ statusCode: 500 }); + }); + + it('Can use locals added by astro middleware', async () => { + const { handler } = await import('./fixtures/locals/dist/server/entry.mjs'); + + const { req, res, text } = createRequestAndResponse({ + url: '/from-astro-middleware', + }); + + handler(req, res, () => {}); + req.send(); + + const html = await text(); + + expect(html).to.contain('<h1>baz</h1>'); + }); + it('Can access locals in API', async () => { const { handler } = await import('./fixtures/locals/dist/server/entry.mjs'); let { req, res, done } = createRequestAndResponse({ |