From 9e8568b07a6fa6c52c44e0fbf4ff8661d5ba966a Mon Sep 17 00:00:00 2001 From: Guillermo Gutierrez Almazor Date: Wed, 9 Oct 2024 16:39:15 +0200 Subject: [PATCH] Enforce using `fetch` in tests --- test/util.ts | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/test/util.ts b/test/util.ts index 51d43ad..df7a4f0 100644 --- a/test/util.ts +++ b/test/util.ts @@ -1,5 +1,5 @@ import { readFileSync } from "fs"; -import { DNSimple } from "../lib/main"; +import { DNSimple, TimeoutError } from "../lib/main"; function hasJsonContent(lines: string[]) { for (let line of lines) { @@ -29,6 +29,29 @@ function parseBody(lines: string[]) { export function createTestClient() { return new DNSimple({ accessToken: process.env["TOKEN"] ?? "bogus", + fetcher: async (params: { + method: string; + url: string; + headers: { [name: string]: string }; + timeout: number; + body?: string; + }) => { + const abortController = new AbortController(); + setTimeout(() => abortController.abort(), DNSimple.DEFAULT_TIMEOUT); + try { + const response = await fetch(params.url, { + method: params.method, + headers: params.headers, + body: params.body, + signal: abortController.signal, + }); + return { status: response.status, body: await response.text() }; + } catch (error) { + if (abortController && abortController.signal.aborted) throw new TimeoutError(); + + throw error; + } + }, }); }