mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 07:50:31 +00:00
migrate test server setup to separate file
This commit is contained in:
13
test/testHelpers/apolloSetupHelpers.ts
Normal file
13
test/testHelpers/apolloSetupHelpers.ts
Normal 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,
|
||||
});
|
||||
}
|
||||
41
test/testHelpers/fetchMockHelpers.ts
Normal file
41
test/testHelpers/fetchMockHelpers.ts
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user