summaryrefslogtreecommitdiff
path: root/packages/integrations/node/test/test-utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/node/test/test-utils.js')
-rw-r--r--packages/integrations/node/test/test-utils.js13
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/integrations/node/test/test-utils.js b/packages/integrations/node/test/test-utils.js
index 0859c6acd..d3d7c17be 100644
--- a/packages/integrations/node/test/test-utils.js
+++ b/packages/integrations/node/test/test-utils.js
@@ -1,6 +1,6 @@
-import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js';
-import httpMocks from 'node-mocks-http';
import { EventEmitter } from 'events';
+import httpMocks from 'node-mocks-http';
+import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js';
/**
* @typedef {import('../../../astro/test/test-utils').Fixture} Fixture
@@ -33,6 +33,15 @@ export function createRequestAndResponse(reqOptions) {
export function toPromise(res) {
return new Promise((resolve) => {
+ // node-mocks-http doesn't correctly handle non-Buffer typed arrays,
+ // so override the write method to fix it.
+ const write = res.write;
+ res.write = function (data, encoding) {
+ if (ArrayBuffer.isView(data) && !Buffer.isBuffer(data)) {
+ data = Buffer.from(data.buffer);
+ }
+ return write.call(this, data, encoding);
+ };
res.on('end', () => {
let chunks = res._getChunks();
resolve(chunks);