@iamkenos/iris
Version:
Test API endpoints with Axios & Jest using a collection of custom matchers and built-in utility functions.
28 lines (22 loc) • 1.09 kB
text/typescript
import * as fs from "fs-extra";
import * as path from "path";
import { BufferEncoding, changecase, MimeType, Reporter } from "@common";
import { Request } from "@client";
import callsites from "callsites";
import type { Spec } from "@client";
export const givenRequest = (url: string, options: Spec & { shouldAttachBody?: boolean }) => {
const request = new Request(url, { ...options });
const fname = callsites()[1].getFunctionName();
Reporter.startStep(`${changecase.capitalCase(fname)}: ${request.spec.method} ${new URL(request.spec.url).pathname}`);
Reporter.attachRequest(request, options.shouldAttachBody);
Reporter.endStep();
return request;
};
export const givenGraphQLQueryFile = (file: string, variables?: any) => {
const query = fs.readFileSync(path.join(iris.config.baseDir, file), BufferEncoding.UTF8);
const data = { query, variables };
Reporter.startStep(`${changecase.capitalCase(givenGraphQLQueryFile.name)}: ${file}`);
Reporter.addAttachment("Query", JSON.stringify(data, null, 2), MimeType.TEXT_PLAIN);
Reporter.endStep();
return data;
};