diff options
Diffstat (limited to 'packages/integrations/node/test/test-utils.js')
-rw-r--r-- | packages/integrations/node/test/test-utils.js | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/packages/integrations/node/test/test-utils.js b/packages/integrations/node/test/test-utils.js deleted file mode 100644 index 10faba5cf..000000000 --- a/packages/integrations/node/test/test-utils.js +++ /dev/null @@ -1,81 +0,0 @@ -import { EventEmitter } from 'node:events'; -import httpMocks from 'node-mocks-http'; -import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js'; - -process.env.ASTRO_NODE_AUTOSTART = 'disabled'; -process.env.ASTRO_NODE_LOGGING = 'disabled'; -/** - * @typedef {import('../../../astro/test/test-utils').Fixture} Fixture - */ - -export function loadFixture(inlineConfig) { - if (!inlineConfig?.root) throw new Error("Must provide { root: './fixtures/...' }"); - - // resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath - // without this, the main `loadFixture` helper will resolve relative to `packages/astro/test` - return baseLoadFixture({ - ...inlineConfig, - root: new URL(inlineConfig.root, import.meta.url).toString(), - }); -} - -export function createRequestAndResponse(reqOptions) { - let req = httpMocks.createRequest(reqOptions); - - let res = httpMocks.createResponse({ - eventEmitter: EventEmitter, - req, - }); - - let done = toPromise(res); - - // Get the response as text - const text = async () => { - let chunks = await done; - return buffersToString(chunks); - }; - - return { req, res, done, text }; -} - -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); - }); - }); -} - -export function buffersToString(buffers) { - let decoder = new TextDecoder(); - let str = ''; - for (const buffer of buffers) { - str += decoder.decode(buffer); - } - return str; -} - -export function waitServerListen(server) { - return new Promise((resolve, reject) => { - function onListen() { - server.off('error', onError); - resolve(); - } - function onError(error) { - server.off('listening', onListen); - reject(error); - } - server.once('listening', onListen); - server.once('error', onError); - }); -} |