UNPKG

@pact-foundation/pact

Version:
73 lines 4.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vitest_1 = require("vitest"); const _1 = require("."); describe('V4 HTTP executeTest', () => { afterEach(() => { vitest_1.vi.restoreAllMocks(); }); const buildPactMock = (port) => { return { pactffiCreateMockServerForTransport: vitest_1.vi.fn().mockReturnValue(port), mockServerMatchedSuccessfully: vitest_1.vi.fn().mockReturnValue(true), mockServerMismatches: vitest_1.vi.fn().mockReturnValue([]), cleanupMockServer: vitest_1.vi.fn().mockReturnValue(true), writePactFile: vitest_1.vi.fn(), cleanupPlugins: vitest_1.vi.fn(), addPlugin: vitest_1.vi.fn(), }; }; const baseOpts = { consumer: 'A', provider: 'B' }; describe('CORS option', () => { it('passes corsPreflight: true by default when cors is not specified', async () => { const pactMock = buildPactMock(1234); await (0, _1.executeTest)(pactMock, baseOpts, async () => Promise.resolve(), () => { }); // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast const stub = pactMock.pactffiCreateMockServerForTransport; expect(stub).toHaveBeenCalledOnce(); const [, , config] = stub.mock.calls[0]; expect(JSON.parse(config)).toEqual({ corsPreflight: true }); }); it('passes corsPreflight: true when cors is explicitly true', async () => { const pactMock = buildPactMock(1234); await (0, _1.executeTest)(pactMock, { ...baseOpts, cors: true }, async () => Promise.resolve(), () => { }); // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast const stub = pactMock.pactffiCreateMockServerForTransport; const [, , config] = stub.mock.calls[0]; expect(JSON.parse(config)).toEqual({ corsPreflight: true }); }); it('passes corsPreflight: false when cors is explicitly false', async () => { const pactMock = buildPactMock(1234); await (0, _1.executeTest)(pactMock, { ...baseOpts, cors: false }, async () => Promise.resolve(), () => { }); // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast const stub = pactMock.pactffiCreateMockServerForTransport; const [, , config] = stub.mock.calls[0]; expect(JSON.parse(config)).toEqual({ corsPreflight: false }); }); }); describe('transport scheme', () => { it('uses http scheme by default', async () => { const pactMock = buildPactMock(1234); await (0, _1.executeTest)(pactMock, baseOpts, async () => Promise.resolve(), () => { }); // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast const stub = pactMock.pactffiCreateMockServerForTransport; const [, transport] = stub.mock.calls[0]; expect(transport).toBe('http'); }); it('uses https scheme when tls is true', async () => { const pactMock = buildPactMock(1234); await (0, _1.executeTest)(pactMock, { ...baseOpts, tls: true }, async () => Promise.resolve(), () => { }); // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast const stub = pactMock.pactffiCreateMockServerForTransport; const [, transport] = stub.mock.calls[0]; expect(transport).toBe('https'); }); }); describe('when the mock server fails to start', () => { it('throws an error when port is 0 or negative', async () => { const pactMock = buildPactMock(-3); await expect((0, _1.executeTest)(pactMock, baseOpts, async () => Promise.resolve(), () => { })).rejects.toThrow('Failed to start mock server'); }); }); }); //# sourceMappingURL=index.spec.js.map