Mockserver Module¶
MockServer allows you to mock any server or service via HTTP or HTTPS, such as a REST or RPC service.
Install¶
npm install @testcontainers/mockserver --save-dev
Examples¶
it("should start and accept mocks", async () => {
await using container = await new MockserverContainer(IMAGE).start();
const client = mockServerClient(container.getHost(), container.getMockserverPort());
const url = container.getUrl();
await client.mockAnyResponse({
httpRequest: {
method: "GET",
path: "/foo",
},
httpResponse: {
body: {
string: "bar",
},
statusCode: 200,
},
});
const response = await superagent.get(`${url}/foo`);
expect(response.statusCode).toBe(200);
expect(response.text).toBe("bar");
});
MockServer includes built-in TLS support. To obtain an HTTPS URL, use the getSecureUrl
method. Keep in mind that MockServer uses a self-signed certificate.
it("should respond to https requests", async () => {
await using container = await new MockserverContainer(IMAGE).start();
const client = mockServerClient(container.getHost(), container.getMockserverPort());
await client.mockAnyResponse({
httpRequest: {
method: "GET",
path: "/foo",
},
httpResponse: {
body: {
string: "bar",
},
statusCode: 200,
},
});
const secureUrl = container.getSecureUrl();
const response = await superagent.get(`${secureUrl}/foo`).disableTLSCerts();
expect(response.statusCode).toBe(200);
expect(response.text).toBe("bar");
});