summaryrefslogtreecommitdiff
path: root/packages/integrations/node/test/locals.test.js
diff options
context:
space:
mode:
authorGravatar Arsh <69170106+lilnasy@users.noreply.github.com> 2023-10-12 14:36:34 +0000
committerGravatar GitHub <noreply@github.com> 2023-10-12 09:36:34 -0500
commit391729686bcc8404a7dd48c5987ee380daf3200f (patch)
tree8cf8caf8dfa39f533228887ef70730735f88290f /packages/integrations/node/test/locals.test.js
parent3bef32f81c56bc600ca307f1bd40787e23e625a5 (diff)
downloadastro-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.js33
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({