summaryrefslogtreecommitdiff
path: root/packages/integrations/node/test/api-route.test.js
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2022-07-22 15:22:31 -0400
committerGravatar GitHub <noreply@github.com> 2022-07-22 15:22:31 -0400
commit4ca6a0933d92dd559327dd46a28712d918caebf7 (patch)
tree27ca6be8c801b815961bb54264cf9dec1eb38a93 /packages/integrations/node/test/api-route.test.js
parent9aecf7c7c7211f34236d8dde624ca388310d3727 (diff)
downloadastro-4ca6a0933d92dd559327dd46a28712d918caebf7.tar.gz
astro-4ca6a0933d92dd559327dd46a28712d918caebf7.tar.zst
astro-4ca6a0933d92dd559327dd46a28712d918caebf7.zip
Fixes Node adapter receiving a request body (#4023)
* Fixes Node adapter receiving a request body * Updated lockfile
Diffstat (limited to 'packages/integrations/node/test/api-route.test.js')
-rw-r--r--packages/integrations/node/test/api-route.test.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/packages/integrations/node/test/api-route.test.js b/packages/integrations/node/test/api-route.test.js
new file mode 100644
index 000000000..963e0463a
--- /dev/null
+++ b/packages/integrations/node/test/api-route.test.js
@@ -0,0 +1,37 @@
+import nodejs from '../dist/index.js';
+import { loadFixture, createRequestAndResponse, toPromise } from './test-utils.js';
+import { expect } from 'chai';
+
+
+describe('API routes', () => {
+ /** @type {import('./test-utils').Fixture} */
+ let fixture;
+
+ before(async () => {
+ fixture = await loadFixture({
+ root: './fixtures/api-route/',
+ experimental: {
+ ssr: true,
+ },
+ adapter: nodejs(),
+ });
+ await fixture.build();
+ });
+
+ it('Can get the request body', async () => {
+ const { handler } = await import('./fixtures/api-route/dist/server/entry.mjs');
+
+ let { req, res, done } = createRequestAndResponse({
+ method: 'POST',
+ url: '/recipes'
+ });
+
+ handler(req, res);
+ req.send(JSON.stringify({ id: 2 }));
+
+ let [ buffer ] = await done;
+ let json = JSON.parse(buffer.toString('utf-8'));
+ expect(json.length).to.equal(1);
+ expect(json[0].name).to.equal('Broccoli Soup');
+ });
+});