hts/packages/isdk/spec/test/json-test-server.ts

43 lines
991 B
TypeScript

import { HttpResponse, http } from 'msw';
import { SetupServer, setupServer } from 'msw/node';
export class JsonTestServer {
readonly server: SetupServer;
responseBodyJson: any = {};
request: Request | undefined;
constructor(url: string) {
const responseBodyJson = () => this.responseBodyJson;
this.server = setupServer(
http.post(url, ({ request }) => {
this.request = request;
return HttpResponse.json(responseBodyJson());
}),
);
}
async getRequestBodyJson() {
expect(this.request).toBeDefined();
return JSON.parse(await this.request!.text());
}
async getRequestHeaders() {
expect(this.request).toBeDefined();
return this.request!.headers;
}
setupTestEnvironment() {
beforeAll(() => this.server.listen());
beforeEach(() => {
this.responseBodyJson = {};
this.request = undefined;
});
afterEach(() => this.server.resetHandlers());
afterAll(() => this.server.close());
}
}