migrate test server setup to separate file

This commit is contained in:
2025-01-23 15:20:34 -08:00
parent 1abf808e9f
commit 640eb76971
7 changed files with 30 additions and 17 deletions

View File

@@ -0,0 +1,13 @@
import { readFileSync } from "fs";
import { ApolloServer } from "@apollo/server";
import { MergedResolvers } from "../../src/MergedResolvers";
export function setUpTestServer() {
// Leaving this separate from the main server in case
// configuration changes
const typeDefs = readFileSync("./schema.graphqls", "utf8");
return new ApolloServer({
typeDefs,
resolvers: MergedResolvers,
});
}

View File

@@ -0,0 +1,41 @@
import { jest } from "@jest/globals";
/**
* Function to update behavior of the global `fetch` function.
* Note that the Passio GO API returns status code 200 for failed responses.
* @param obj
* @param status
*/
export function updateGlobalFetchMockJson(
obj: any,
status: number = 200
) {
// @ts-ignore
global.fetch = jest.fn(() => {
return Promise.resolve({
json: () => Promise.resolve(obj),
status,
ok: status.toString().startsWith("2"), // 200-level codes are OK
})
});
}
/**
* Reset the global fetch function mock's JSON to return an empty object.
* @param obj
*/
export function resetGlobalFetchMockJson() {
updateGlobalFetchMockJson({});
}
export function updateGlobalFetchMockJsonToThrowSyntaxError() {
// @ts-ignore
global.fetch = jest.fn(() => {
return Promise.resolve({
json: () => Promise.reject(new SyntaxError("Unable to parse JSON")),
status: 200,
ok: true,
})
}) as jest.Mock;
}