@pact-foundation/pact 16.4.0 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +41 -12
  3. package/package.json +19 -31
  4. package/scripts/ci/build-and-test.sh +0 -3
  5. package/scripts/install-plugins.js +104 -0
  6. package/src/common/graphQL/graphQL.js +1 -1
  7. package/src/common/graphQL/graphQL.js.map +1 -1
  8. package/src/common/matchingRules.d.ts +7 -1
  9. package/src/common/matchingRules.js +21 -1
  10. package/src/common/matchingRules.js.map +1 -1
  11. package/src/common/net.spec.js +27 -63
  12. package/src/common/net.spec.js.map +1 -1
  13. package/src/common/request.js +1 -1
  14. package/src/common/request.js.map +1 -1
  15. package/src/common/request.spec.js +14 -58
  16. package/src/common/request.spec.js.map +1 -1
  17. package/src/dsl/apolloGraphql.spec.js +3 -43
  18. package/src/dsl/apolloGraphql.spec.js.map +1 -1
  19. package/src/dsl/graphql.d.ts +1 -1
  20. package/src/dsl/graphql.js +4 -4
  21. package/src/dsl/graphql.js.map +1 -1
  22. package/src/dsl/graphql.spec.js +22 -62
  23. package/src/dsl/graphql.spec.js.map +1 -1
  24. package/src/dsl/interaction.d.ts +2 -2
  25. package/src/dsl/interaction.js +1 -1
  26. package/src/dsl/interaction.js.map +1 -1
  27. package/src/dsl/interaction.spec.js +40 -70
  28. package/src/dsl/interaction.spec.js.map +1 -1
  29. package/src/dsl/matchers.d.ts +1 -2
  30. package/src/dsl/matchers.js.map +1 -1
  31. package/src/dsl/matchers.spec.js +95 -96
  32. package/src/dsl/matchers.spec.js.map +1 -1
  33. package/src/dsl/message.d.ts +1 -1
  34. package/src/dsl/options.d.ts +1 -1
  35. package/src/dsl/verifier/proxy/hooks.spec.js +16 -14
  36. package/src/dsl/verifier/proxy/hooks.spec.js.map +1 -1
  37. package/src/dsl/verifier/proxy/messages.js +1 -1
  38. package/src/dsl/verifier/proxy/messages.js.map +1 -1
  39. package/src/dsl/verifier/proxy/parseBody.js +1 -1
  40. package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
  41. package/src/dsl/verifier/proxy/parseBody.spec.js +14 -47
  42. package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -1
  43. package/src/dsl/verifier/proxy/proxy.js +4 -4
  44. package/src/dsl/verifier/proxy/proxy.js.map +1 -1
  45. package/src/dsl/verifier/proxy/proxy.spec.js +6 -48
  46. package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
  47. package/src/dsl/verifier/proxy/proxyRequest.d.ts +1 -1
  48. package/src/dsl/verifier/proxy/proxyRequest.js +1 -1
  49. package/src/dsl/verifier/proxy/proxyRequest.js.map +1 -1
  50. package/src/dsl/verifier/proxy/proxyRequest.spec.js +18 -53
  51. package/src/dsl/verifier/proxy/proxyRequest.spec.js.map +1 -1
  52. package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +1 -1
  53. package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
  54. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +16 -50
  55. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
  56. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +1 -1
  57. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
  58. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +12 -49
  59. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
  60. package/src/dsl/verifier/proxy/types.d.ts +2 -2
  61. package/src/dsl/verifier/verifier.d.ts +4 -0
  62. package/src/dsl/verifier/verifier.js +6 -6
  63. package/src/dsl/verifier/verifier.js.map +1 -1
  64. package/src/dsl/verifier/verifier.spec.js +46 -96
  65. package/src/dsl/verifier/verifier.spec.js.map +1 -1
  66. package/src/httpPact/ffi.d.ts +1 -1
  67. package/src/httpPact/ffi.js +1 -1
  68. package/src/httpPact/ffi.js.map +1 -1
  69. package/src/httpPact/ffi.spec.js +18 -60
  70. package/src/httpPact/ffi.spec.js.map +1 -1
  71. package/src/httpPact/index.d.ts +1 -1
  72. package/src/httpPact/index.js +7 -7
  73. package/src/httpPact/index.js.map +1 -1
  74. package/src/httpPact/index.spec.js +46 -89
  75. package/src/httpPact/index.spec.js.map +1 -1
  76. package/src/index.d.ts +25 -25
  77. package/src/index.js +28 -28
  78. package/src/index.js.map +1 -1
  79. package/src/messageConsumerPact.d.ts +3 -3
  80. package/src/messageConsumerPact.js +12 -5
  81. package/src/messageConsumerPact.js.map +1 -1
  82. package/src/messageConsumerPact.spec.js +15 -58
  83. package/src/messageConsumerPact.spec.js.map +1 -1
  84. package/src/messageProviderPact.js +3 -3
  85. package/src/messageProviderPact.js.map +1 -1
  86. package/src/messageProviderPact.spec.js +48 -84
  87. package/src/messageProviderPact.spec.js.map +1 -1
  88. package/src/pact.integration.spec.js +12 -51
  89. package/src/pact.integration.spec.js.map +1 -1
  90. package/src/v3/display.d.ts +1 -1
  91. package/src/v3/display.js.map +1 -1
  92. package/src/v3/ffi.js +5 -1
  93. package/src/v3/ffi.js.map +1 -1
  94. package/src/v3/ffi.spec.js +1 -36
  95. package/src/v3/ffi.spec.js.map +1 -1
  96. package/src/v3/graphql/graphQL.d.ts +2 -2
  97. package/src/v3/graphql/graphQL.js +2 -2
  98. package/src/v3/graphql/graphQL.js.map +1 -1
  99. package/src/v3/graphql/index.d.ts +1 -1
  100. package/src/v3/graphql/index.js +1 -1
  101. package/src/v3/graphql/index.js.map +1 -1
  102. package/src/v3/index.d.ts +4 -12
  103. package/src/v3/index.js +4 -12
  104. package/src/v3/index.js.map +1 -1
  105. package/src/v3/matchers.d.ts +14 -2
  106. package/src/v3/matchers.js +19 -1
  107. package/src/v3/matchers.js.map +1 -1
  108. package/src/v3/matchers.spec.js +125 -57
  109. package/src/v3/matchers.spec.js.map +1 -1
  110. package/src/v3/pact.js +10 -5
  111. package/src/v3/pact.js.map +1 -1
  112. package/src/v3/pact.spec.js +94 -0
  113. package/src/v3/pact.spec.js.map +1 -0
  114. package/src/v3/types.d.ts +18 -2
  115. package/src/v3/types.js +22 -1
  116. package/src/v3/types.js.map +1 -1
  117. package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +2 -2
  118. package/src/v4/graphql/graphQLInteractionWithRequest.js +1 -1
  119. package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -1
  120. package/src/v4/graphql/graphQLRequestBuilder.d.ts +1 -1
  121. package/src/v4/graphql/index.d.ts +3 -3
  122. package/src/v4/graphql/index.js +1 -1
  123. package/src/v4/graphql/index.js.map +1 -1
  124. package/src/v4/graphql/types.d.ts +1 -1
  125. package/src/v4/http/index.js +7 -2
  126. package/src/v4/http/index.js.map +1 -1
  127. package/src/v4/http/index.spec.d.ts +1 -0
  128. package/src/v4/http/index.spec.js +73 -0
  129. package/src/v4/http/index.spec.js.map +1 -0
  130. package/src/v4/http/interactionWithCompleteRequest.d.ts +2 -2
  131. package/src/v4/http/interactionWithPlugin.d.ts +2 -2
  132. package/src/v4/http/interactionWithPlugin.js +2 -2
  133. package/src/v4/http/interactionWithPlugin.js.map +1 -1
  134. package/src/v4/http/interactionWithPluginRequest.d.ts +4 -3
  135. package/src/v4/http/interactionWithPluginRequest.js +6 -1
  136. package/src/v4/http/interactionWithPluginRequest.js.map +1 -1
  137. package/src/v4/http/interactionWithPluginResponse.d.ts +1 -1
  138. package/src/v4/http/interactionWithRequest.d.ts +4 -3
  139. package/src/v4/http/interactionWithRequest.js +6 -1
  140. package/src/v4/http/interactionWithRequest.js.map +1 -1
  141. package/src/v4/http/interactionWithRequest.spec.d.ts +1 -0
  142. package/src/v4/http/interactionWithRequest.spec.js +82 -0
  143. package/src/v4/http/interactionWithRequest.spec.js.map +1 -0
  144. package/src/v4/http/interactionWithResponse.d.ts +1 -1
  145. package/src/v4/http/requestBuilder.d.ts +2 -1
  146. package/src/v4/http/requestBuilder.js +5 -1
  147. package/src/v4/http/requestBuilder.js.map +1 -1
  148. package/src/v4/http/requestBuilder.spec.d.ts +1 -0
  149. package/src/v4/http/requestBuilder.spec.js +42 -0
  150. package/src/v4/http/requestBuilder.spec.js.map +1 -0
  151. package/src/v4/http/requestWithPluginBuilder.d.ts +1 -0
  152. package/src/v4/http/requestWithPluginBuilder.js +4 -0
  153. package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
  154. package/src/v4/http/requestWithPluginBuilder.spec.d.ts +1 -0
  155. package/src/v4/http/requestWithPluginBuilder.spec.js +34 -0
  156. package/src/v4/http/requestWithPluginBuilder.spec.js.map +1 -0
  157. package/src/v4/http/responseBuilder.d.ts +2 -1
  158. package/src/v4/http/responseBuilder.js +6 -2
  159. package/src/v4/http/responseBuilder.js.map +1 -1
  160. package/src/v4/http/responseBuilder.spec.d.ts +1 -0
  161. package/src/v4/http/responseBuilder.spec.js +42 -0
  162. package/src/v4/http/responseBuilder.spec.js.map +1 -0
  163. package/src/v4/http/responseWithPluginBuilder.d.ts +1 -1
  164. package/src/v4/http/responseWithPluginBuilder.spec.d.ts +1 -0
  165. package/src/v4/http/responseWithPluginBuilder.spec.js +34 -0
  166. package/src/v4/http/responseWithPluginBuilder.spec.js.map +1 -0
  167. package/src/v4/http/types.d.ts +11 -3
  168. package/src/v4/http/unconfiguredInteraction.d.ts +2 -2
  169. package/src/v4/http/unconfiguredInteraction.js +2 -2
  170. package/src/v4/http/unconfiguredInteraction.js.map +1 -1
  171. package/src/v4/index.d.ts +4 -3
  172. package/src/v4/index.js +3 -2
  173. package/src/v4/index.js.map +1 -1
  174. package/src/v4/message/asynchronousMessage.d.ts +4 -4
  175. package/src/v4/message/asynchronousMessage.js +2 -2
  176. package/src/v4/message/asynchronousMessage.js.map +1 -1
  177. package/src/v4/message/index.d.ts +4 -4
  178. package/src/v4/message/index.js +2 -2
  179. package/src/v4/message/index.js.map +1 -1
  180. package/src/v4/types.d.ts +1 -1
  181. package/src/xml/index.d.ts +4 -0
  182. package/src/xml/index.js +21 -0
  183. package/src/xml/index.js.map +1 -0
  184. package/src/xml/xmlBuilder.js.map +1 -0
  185. package/src/{v3/xml → xml}/xmlElement.d.ts +1 -1
  186. package/src/{v3/xml → xml}/xmlElement.js +1 -1
  187. package/src/xml/xmlElement.js.map +1 -0
  188. package/src/xml/xmlElement.spec.d.ts +1 -0
  189. package/src/{v3/xml → xml}/xmlElement.spec.js +41 -45
  190. package/src/xml/xmlElement.spec.js.map +1 -0
  191. package/src/xml/xmlNode.js.map +1 -0
  192. package/src/{v3/xml → xml}/xmlText.d.ts +1 -1
  193. package/src/xml/xmlText.js.map +1 -0
  194. package/scripts/install-plugins +0 -106
  195. package/src/v3/xml/xmlBuilder.js.map +0 -1
  196. package/src/v3/xml/xmlElement.js.map +0 -1
  197. package/src/v3/xml/xmlElement.spec.js.map +0 -1
  198. package/src/v3/xml/xmlNode.js.map +0 -1
  199. package/src/v3/xml/xmlText.js.map +0 -1
  200. /package/src/v3/{xml/xmlElement.spec.d.ts → pact.spec.d.ts} +0 -0
  201. /package/src/{v3/xml → xml}/xmlBuilder.d.ts +0 -0
  202. /package/src/{v3/xml → xml}/xmlBuilder.js +0 -0
  203. /package/src/{v3/xml → xml}/xmlNode.d.ts +0 -0
  204. /package/src/{v3/xml → xml}/xmlNode.js +0 -0
  205. /package/src/{v3/xml → xml}/xmlText.js +0 -0
package/src/v3/pact.js CHANGED
@@ -4,16 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.PactV3 = void 0;
7
- const ramda_1 = require("ramda");
8
7
  const pact_core_1 = require("@pact-foundation/pact-core");
8
+ const ramda_1 = require("ramda");
9
9
  const fs = require("node:fs");
10
10
  const package_json_1 = require("../../package.json");
11
+ const logger_1 = __importDefault(require("../common/logger"));
11
12
  const matchingRules_1 = require("../common/matchingRules");
12
- const types_1 = require("./types");
13
- const matchers_1 = require("./matchers");
14
13
  const display_1 = require("./display");
15
- const logger_1 = __importDefault(require("../common/logger"));
16
14
  const ffi_1 = require("./ffi");
15
+ const matchers_1 = require("./matchers");
16
+ const types_1 = require("./types");
17
17
  const readBinaryData = (file) => {
18
18
  try {
19
19
  const body = fs.readFileSync(file);
@@ -171,7 +171,12 @@ class PactV3 {
171
171
  async executeTest(testFn) {
172
172
  const scheme = this.opts.tls ? 'https' : 'http';
173
173
  const host = this.opts.host || '127.0.0.1';
174
- const port = this.pact.createMockServer(host, this.opts.port, this.opts.tls);
174
+ const cors = this.opts.cors ?? true;
175
+ const config = JSON.stringify({ corsPreflight: cors });
176
+ const port = this.pact.pactffiCreateMockServerForTransport(host, scheme, config, this.opts.port);
177
+ if (port <= 0) {
178
+ throw new Error(`Failed to start mock server: received error code ${port}`);
179
+ }
175
180
  const server = { port, url: `${scheme}://${host}:${port}`, id: 'unknown' };
176
181
  let val;
177
182
  let error;
@@ -1 +1 @@
1
- {"version":3,"file":"pact.js","sourceRoot":"","sources":["../../../src/v3/pact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pact.js","sourceRoot":"","sources":["../../../src/v3/pact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const pact_1 = require("./pact");
5
+ describe('PactV3', () => {
6
+ afterEach(() => {
7
+ vitest_1.vi.restoreAllMocks();
8
+ });
9
+ describe('#executeTest', () => {
10
+ const buildPactMock = (port) => {
11
+ return {
12
+ addMetadata: vitest_1.vi.fn().mockReturnValue(true),
13
+ newInteraction: vitest_1.vi.fn(),
14
+ pactffiCreateMockServerForTransport: vitest_1.vi.fn().mockReturnValue(port),
15
+ mockServerMatchedSuccessfully: vitest_1.vi.fn().mockReturnValue(true),
16
+ mockServerMismatches: vitest_1.vi.fn().mockReturnValue([]),
17
+ cleanupMockServer: vitest_1.vi.fn().mockReturnValue(true),
18
+ writePactFile: vitest_1.vi.fn(),
19
+ cleanupPlugins: vitest_1.vi.fn(),
20
+ addPlugin: vitest_1.vi.fn(),
21
+ };
22
+ };
23
+ describe('CORS option', () => {
24
+ it('passes corsPreflight: true by default when cors is not specified', async () => {
25
+ const pactMock = buildPactMock(1234);
26
+ const p = new pact_1.PactV3({ consumer: 'A', provider: 'B' });
27
+ // @ts-expect-error: accessing private field for testing
28
+ p.pact = pactMock;
29
+ await p.executeTest(async () => Promise.resolve());
30
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
31
+ const stub = pactMock.pactffiCreateMockServerForTransport;
32
+ expect(stub).toHaveBeenCalledOnce();
33
+ const [, , config] = stub.mock.calls[0];
34
+ expect(JSON.parse(config)).toEqual({ corsPreflight: true });
35
+ });
36
+ it('passes corsPreflight: true when cors is explicitly true', async () => {
37
+ const pactMock = buildPactMock(1234);
38
+ const p = new pact_1.PactV3({ consumer: 'A', provider: 'B', cors: true });
39
+ // @ts-expect-error: accessing private field for testing
40
+ p.pact = pactMock;
41
+ await p.executeTest(async () => Promise.resolve());
42
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
43
+ const stub = pactMock.pactffiCreateMockServerForTransport;
44
+ const [, , config] = stub.mock.calls[0];
45
+ expect(JSON.parse(config)).toEqual({ corsPreflight: true });
46
+ });
47
+ it('passes corsPreflight: false when cors is explicitly false', async () => {
48
+ const pactMock = buildPactMock(1234);
49
+ const p = new pact_1.PactV3({ consumer: 'A', provider: 'B', cors: false });
50
+ // @ts-expect-error: accessing private field for testing
51
+ p.pact = pactMock;
52
+ await p.executeTest(async () => Promise.resolve());
53
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
54
+ const stub = pactMock.pactffiCreateMockServerForTransport;
55
+ const [, , config] = stub.mock.calls[0];
56
+ expect(JSON.parse(config)).toEqual({ corsPreflight: false });
57
+ });
58
+ });
59
+ describe('transport scheme', () => {
60
+ it('uses http scheme by default', async () => {
61
+ const pactMock = buildPactMock(1234);
62
+ const p = new pact_1.PactV3({ consumer: 'A', provider: 'B' });
63
+ // @ts-expect-error: accessing private field for testing
64
+ p.pact = pactMock;
65
+ await p.executeTest(async () => Promise.resolve());
66
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
67
+ const stub = pactMock.pactffiCreateMockServerForTransport;
68
+ const [, transport] = stub.mock.calls[0];
69
+ expect(transport).toBe('http');
70
+ });
71
+ it('uses https scheme when tls is true', async () => {
72
+ const pactMock = buildPactMock(1234);
73
+ const p = new pact_1.PactV3({ consumer: 'A', provider: 'B', tls: true });
74
+ // @ts-expect-error: accessing private field for testing
75
+ p.pact = pactMock;
76
+ await p.executeTest(async () => Promise.resolve());
77
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
78
+ const stub = pactMock.pactffiCreateMockServerForTransport;
79
+ const [, transport] = stub.mock.calls[0];
80
+ expect(transport).toBe('https');
81
+ });
82
+ });
83
+ describe('when the mock server fails to start', () => {
84
+ it('throws an error when port is 0 or negative', async () => {
85
+ const pactMock = buildPactMock(-3);
86
+ const p = new pact_1.PactV3({ consumer: 'A', provider: 'B' });
87
+ // @ts-expect-error: accessing private field for testing
88
+ p.pact = pactMock;
89
+ await expect(p.executeTest(async () => Promise.resolve())).rejects.toThrow('Failed to start mock server');
90
+ });
91
+ });
92
+ });
93
+ });
94
+ //# sourceMappingURL=pact.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pact.spec.js","sourceRoot":"","sources":["../../../src/v3/pact.spec.ts"],"names":[],"mappings":";;AACA,mCAA4B;AAC5B,iCAAgC;AAEhC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,WAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,MAAM,aAAa,GAAG,CAAC,IAAY,EAAgB,EAAE;YACnD,OAAO;gBACL,WAAW,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1C,cAAc,EAAE,WAAE,CAAC,EAAE,EAAE;gBACvB,mCAAmC,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;gBAClE,6BAA6B,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC5D,oBAAoB,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;gBACjD,iBAAiB,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;gBAChD,aAAa,EAAE,WAAE,CAAC,EAAE,EAAE;gBACtB,cAAc,EAAE,WAAE,CAAC,EAAE,EAAE;gBACvB,SAAS,EAAE,WAAE,CAAC,EAAE,EAAE;aACQ,CAAC;QAC/B,CAAC,CAAC;QAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;gBAChF,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,CAAC,GAAG,IAAI,aAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvD,wDAAwD;gBACxD,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAElB,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEnD,sGAAsG;gBACtG,MAAM,IAAI,GAAG,QAAQ,CAAC,mCAA0C,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,CAAC;gBACpC,MAAM,CAAC,EAAE,AAAD,EAAG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,CAAC,GAAG,IAAI,aAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnE,wDAAwD;gBACxD,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAElB,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEnD,sGAAsG;gBACtG,MAAM,IAAI,GAAG,QAAQ,CAAC,mCAA0C,CAAC;gBACjE,MAAM,CAAC,EAAE,AAAD,EAAG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACzE,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,CAAC,GAAG,IAAI,aAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpE,wDAAwD;gBACxD,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAElB,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEnD,sGAAsG;gBACtG,MAAM,IAAI,GAAG,QAAQ,CAAC,mCAA0C,CAAC;gBACjE,MAAM,CAAC,EAAE,AAAD,EAAG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;gBAC3C,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,CAAC,GAAG,IAAI,aAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvD,wDAAwD;gBACxD,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAElB,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEnD,sGAAsG;gBACtG,MAAM,IAAI,GAAG,QAAQ,CAAC,mCAA0C,CAAC;gBACjE,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;gBAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,CAAC,GAAG,IAAI,aAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClE,wDAAwD;gBACxD,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAElB,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEnD,sGAAsG;gBACtG,MAAM,IAAI,GAAG,QAAQ,CAAC,mCAA0C,CAAC;gBACjE,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;YACnD,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,GAAG,IAAI,aAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvD,wDAAwD;gBACxD,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAElB,MAAM,MAAM,CACV,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAC7C,CAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/src/v3/types.d.ts CHANGED
@@ -37,9 +37,25 @@ export interface ArrayContainsMatcher extends Matcher<unknown[]> {
37
37
  export interface ProviderStateInjectedValue<T> extends Matcher<T> {
38
38
  expression: string;
39
39
  }
40
+ export interface StatusCodeMatcher<T> extends Matcher<T> {
41
+ status: HTTPResponseStatusClass | number[];
42
+ }
40
43
  export interface RulesMatcher<T> extends Matcher<T> {
41
44
  rules: Matcher<T>[];
42
45
  }
46
+ /**
47
+ * Enum for HTTP response status classes used with the status code matcher.
48
+ * These values correspond to the status code ranges defined in RFC 7231.
49
+ */
50
+ export declare enum HTTPResponseStatusClass {
51
+ Information = "information",
52
+ Success = "success",
53
+ Redirect = "redirect",
54
+ ClientError = "clientError",
55
+ ServerError = "serverError",
56
+ NonError = "nonError",
57
+ Error = "error"
58
+ }
43
59
  /**
44
60
  * Part of a request or response where matching rules can be applied
45
61
  */
@@ -76,7 +92,7 @@ export interface PactV3Options {
76
92
  */
77
93
  provider: string;
78
94
  /**
79
- * If the mock server should handle CORS pre-flight requests. Defaults to false
95
+ * If the mock server should handle CORS pre-flight requests. Defaults to true
80
96
  */
81
97
  cors?: boolean;
82
98
  /**
@@ -124,7 +140,7 @@ export interface V3Request {
124
140
  contentType?: string;
125
141
  }
126
142
  export interface V3Response {
127
- status: number;
143
+ status: number | StatusCodeMatcher<number>;
128
144
  headers?: TemplateHeaders;
129
145
  body?: unknown;
130
146
  contentType?: string;
package/src/v3/types.js CHANGED
@@ -1,10 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SpecificationVersion = void 0;
3
+ exports.HTTPResponseStatusClass = exports.SpecificationVersion = void 0;
4
4
  var SpecificationVersion;
5
5
  (function (SpecificationVersion) {
6
6
  SpecificationVersion[SpecificationVersion["SPECIFICATION_VERSION_V2"] = 3] = "SPECIFICATION_VERSION_V2";
7
7
  SpecificationVersion[SpecificationVersion["SPECIFICATION_VERSION_V3"] = 4] = "SPECIFICATION_VERSION_V3";
8
8
  SpecificationVersion[SpecificationVersion["SPECIFICATION_VERSION_V4"] = 5] = "SPECIFICATION_VERSION_V4";
9
9
  })(SpecificationVersion || (exports.SpecificationVersion = SpecificationVersion = {}));
10
+ /**
11
+ * Enum for HTTP response status classes used with the status code matcher.
12
+ * These values correspond to the status code ranges defined in RFC 7231.
13
+ */
14
+ var HTTPResponseStatusClass;
15
+ (function (HTTPResponseStatusClass) {
16
+ // Informational responses (100–199)
17
+ HTTPResponseStatusClass["Information"] = "information";
18
+ // Successful responses (200–299)
19
+ HTTPResponseStatusClass["Success"] = "success";
20
+ // Redirects (300–399)
21
+ HTTPResponseStatusClass["Redirect"] = "redirect";
22
+ // Client errors (400–499)
23
+ HTTPResponseStatusClass["ClientError"] = "clientError";
24
+ // Server errors (500–599)
25
+ HTTPResponseStatusClass["ServerError"] = "serverError";
26
+ // Non-error response (< 400)
27
+ HTTPResponseStatusClass["NonError"] = "nonError";
28
+ // Any error response (>= 400)
29
+ HTTPResponseStatusClass["Error"] = "error";
30
+ })(HTTPResponseStatusClass || (exports.HTTPResponseStatusClass = HTTPResponseStatusClass = {}));
10
31
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/v3/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,uGAA4B,CAAA;IAC5B,uGAA4B,CAAA;IAC5B,uGAA4B,CAAA;AAC9B,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/v3/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,uGAA4B,CAAA;IAC5B,uGAA4B,CAAA;IAC5B,uGAA4B,CAAA;AAC9B,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B;AAkDD;;;GAGG;AACH,IAAY,uBAeX;AAfD,WAAY,uBAAuB;IACjC,oCAAoC;IACpC,sDAA2B,CAAA;IAC3B,iCAAiC;IACjC,8CAAmB,CAAA;IACnB,sBAAsB;IACtB,gDAAqB,CAAA;IACrB,0BAA0B;IAC1B,sDAA2B,CAAA;IAC3B,0BAA0B;IAC1B,sDAA2B,CAAA;IAC3B,6BAA6B;IAC7B,gDAAqB,CAAA;IACrB,8BAA8B;IAC9B,0CAAe,CAAA;AACjB,CAAC,EAfW,uBAAuB,uCAAvB,uBAAuB,QAelC"}
@@ -1,7 +1,7 @@
1
- import type { ConsumerPact, ConsumerInteraction } from '@pact-foundation/pact-core';
1
+ import type { ConsumerInteraction, ConsumerPact } from '@pact-foundation/pact-core';
2
2
  import type { ASTNode } from 'graphql';
3
3
  import type { PactV4Options, V4InteractionWithRequest } from '../http/types';
4
- import { type V4GraphQLInteractionWithRequest, type GraphqlRequest } from './types';
4
+ import { type GraphqlRequest, type V4GraphQLInteractionWithRequest } from './types';
5
5
  export declare class GraphQLInteractionWithRequest implements V4GraphQLInteractionWithRequest {
6
6
  protected pact: ConsumerPact;
7
7
  protected interaction: ConsumerInteraction;
@@ -4,9 +4,9 @@ exports.GraphQLInteractionWithRequest = void 0;
4
4
  const lodash_1 = require("lodash");
5
5
  const ramda_1 = require("ramda");
6
6
  const graphQL_1 = require("../../common/graphQL/graphQL");
7
+ const matchers_1 = require("../../v3/matchers");
7
8
  const interactionWithRequest_1 = require("../http/interactionWithRequest");
8
9
  const types_1 = require("./types");
9
- const matchers_1 = require("../../v3/matchers");
10
10
  class GraphQLInteractionWithRequest {
11
11
  pact;
12
12
  interaction;
@@ -1 +1 @@
1
- {"version":3,"file":"graphQLInteractionWithRequest.js","sourceRoot":"","sources":["../../../../src/v4/graphql/graphQLInteractionWithRequest.ts"],"names":[],"mappings":";;;AAKA,mCAAqC;AACrC,iCAA+B;AAE/B,0DAGsC;AACtC,2EAAwE;AAExE,mCAIiB;AACjB,gDAA0C;AAE1C,MAAa,6BAA6B;IAK5B;IACA;IACA;IACA;IACA;IANZ,mCAAmC;IACnC,YACY,IAAkB,EAClB,WAAgC,EAChC,IAAmB,EACnB,SAAqB,EACrB,cAA8B;QAJ9B,SAAI,GAAJ,IAAI,CAAc;QAClB,gBAAW,GAAX,WAAW,CAAqB;QAChC,SAAI,GAAJ,IAAI,CAAe;QACnB,cAAS,GAAT,SAAS,CAAY;QACrB,mBAAc,GAAd,cAAc,CAAgB;IACvC,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,KAAuB;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,qBAAa,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,YAAY,CAAC,QAA0B;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,qBAAa,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IAEO,eAAe,CACrB,KAAuB,EACvB,IAAmB;QAEnB,MAAM,cAAc,GAAG,IAAA,uBAAa,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,WAAW,CAAC,eAAe,CAC9B,IAAI,CAAC,SAAS,CACZ,IAAA,cAAM,EAAC,oBAAW,EAAE;YAClB,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;YAC5C,KAAK,EAAE,IAAA,gBAAK,EAAC,IAAA,4BAAkB,EAAC,cAAc,CAAC,EAAE,cAAc,CAAC;YAChE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;SACzC,CAAC,CACH,EACD,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,+CAAsB,CAC/B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AAhED,sEAgEC"}
1
+ {"version":3,"file":"graphQLInteractionWithRequest.js","sourceRoot":"","sources":["../../../../src/v4/graphql/graphQLInteractionWithRequest.ts"],"names":[],"mappings":";;;AAKA,mCAAqC;AACrC,iCAA+B;AAE/B,0DAGsC;AACtC,gDAA0C;AAC1C,2EAAwE;AAExE,mCAIiB;AAEjB,MAAa,6BAA6B;IAK5B;IACA;IACA;IACA;IACA;IANZ,mCAAmC;IACnC,YACY,IAAkB,EAClB,WAAgC,EAChC,IAAmB,EACnB,SAAqB,EACrB,cAA8B;QAJ9B,SAAI,GAAJ,IAAI,CAAc;QAClB,gBAAW,GAAX,WAAW,CAAqB;QAChC,SAAI,GAAJ,IAAI,CAAe;QACnB,cAAS,GAAT,SAAS,CAAY;QACrB,mBAAc,GAAd,cAAc,CAAgB;IACvC,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,KAAuB;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,qBAAa,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,YAAY,CAAC,QAA0B;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,qBAAa,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IAEO,eAAe,CACrB,KAAuB,EACvB,IAAmB;QAEnB,MAAM,cAAc,GAAG,IAAA,uBAAa,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,WAAW,CAAC,eAAe,CAC9B,IAAI,CAAC,SAAS,CACZ,IAAA,cAAM,EAAC,oBAAW,EAAE;YAClB,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;YAC5C,KAAK,EAAE,IAAA,gBAAK,EAAC,IAAA,4BAAkB,EAAC,cAAc,CAAC,EAAE,cAAc,CAAC;YAChE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;SACzC,CAAC,CACH,EACD,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,+CAAsB,CAC/B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AAhED,sEAgEC"}
@@ -1,5 +1,5 @@
1
1
  import type { ConsumerInteraction } from '@pact-foundation/pact-core';
2
- import type { TemplateQuery, TemplateHeaders } from '../../v3';
2
+ import type { TemplateHeaders, TemplateQuery } from '../../v3';
3
3
  import type { V4GraphQLRequestBuilder } from './types';
4
4
  export declare class GraphQLRequestBuilder implements V4GraphQLRequestBuilder {
5
5
  protected interaction: ConsumerInteraction;
@@ -1,9 +1,9 @@
1
1
  import type { ConsumerInteraction, ConsumerPact } from '@pact-foundation/pact-core';
2
- import type { V4GraphQLInteractionWithRequest, V4GraphQLRequestBuilderFunc, V4UnconfiguredGraphQLInteraction } from './types';
3
- import type { PactV4Options } from '../http/types';
2
+ import type { GraphQLVariables } from '../../common/graphQL/graphQL';
4
3
  import type { JsonMap } from '../../common/jsonTypes';
5
4
  import type { Path } from '../../v3';
6
- import type { GraphQLVariables } from '../../common/graphQL/graphQL';
5
+ import type { PactV4Options } from '../http/types';
6
+ import type { V4GraphQLInteractionWithRequest, V4GraphQLRequestBuilderFunc, V4UnconfiguredGraphQLInteraction } from './types';
7
7
  export declare class UnconfiguredGraphQLInteraction implements V4UnconfiguredGraphQLInteraction {
8
8
  protected pact: ConsumerPact;
9
9
  protected interaction: ConsumerInteraction;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UnconfiguredGraphQLInteraction = void 0;
4
4
  const matchers_1 = require("../../v3/matchers");
5
- const graphQLRequestBuilder_1 = require("./graphQLRequestBuilder");
6
5
  const graphQLInteractionWithRequest_1 = require("./graphQLInteractionWithRequest");
6
+ const graphQLRequestBuilder_1 = require("./graphQLRequestBuilder");
7
7
  class UnconfiguredGraphQLInteraction {
8
8
  pact;
9
9
  interaction;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v4/graphql/index.ts"],"names":[],"mappings":";;;AAcA,gDAAyD;AAEzD,mEAAgE;AAChE,mFAAgF;AAEhF,MAAa,8BAA8B;IAO7B;IACA;IACA;IACA;IAPJ,cAAc,CAAiB;IAEvC,mCAAmC;IACnC,YACY,IAAkB,EAClB,WAAgC,EAChC,IAAmB,EACnB,SAAqB;QAHrB,SAAI,GAAJ,IAAI,CAAc;QAClB,gBAAW,GAAX,WAAW,CAAqB;QAChC,SAAI,GAAJ,IAAI,CAAe;QACnB,cAAS,GAAT,SAAS,CAAY;QAE/B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,SAA2B;QACvC,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,UAAoB;QACvC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CACT,MAAc,EACd,IAAU,EACV,OAAqC;QAErC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,IAAA,+BAAoB,EAAC,IAAI,CAAC,CAAC,CAAC;QAEjE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,6CAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,6DAA6B,CACtC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,CACpB,CAAC;IACJ,CAAC;CACF;AA7DD,wEA6DC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v4/graphql/index.ts"],"names":[],"mappings":";;;AAOA,gDAAyD;AAEzD,mFAAgF;AAChF,mEAAgE;AAQhE,MAAa,8BAA8B;IAO7B;IACA;IACA;IACA;IAPJ,cAAc,CAAiB;IAEvC,mCAAmC;IACnC,YACY,IAAkB,EAClB,WAAgC,EAChC,IAAmB,EACnB,SAAqB;QAHrB,SAAI,GAAJ,IAAI,CAAc;QAClB,gBAAW,GAAX,WAAW,CAAqB;QAChC,SAAI,GAAJ,IAAI,CAAe;QACnB,cAAS,GAAT,SAAS,CAAY;QAE/B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,SAA2B;QACvC,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,UAAoB;QACvC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CACT,MAAc,EACd,IAAU,EACV,OAAqC;QAErC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,IAAA,+BAAoB,EAAC,IAAI,CAAC,CAAC,CAAC;QAEjE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,6CAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,6DAA6B,CACtC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,CACpB,CAAC;IACJ,CAAC;CACF;AA7DD,wEA6DC"}
@@ -1,8 +1,8 @@
1
1
  import type { ASTNode } from 'graphql';
2
+ import type { GraphQLVariables } from '../../common/graphQL/graphQL';
2
3
  import type { JsonMap } from '../../common/jsonTypes';
3
4
  import type { Path, TemplateHeaders, TemplateQuery } from '../../v3';
4
5
  import type { V4InteractionWithRequest } from '../http/types';
5
- import type { GraphQLVariables } from '../../common/graphQL/graphQL';
6
6
  export declare enum OperationType {
7
7
  Mutation = "Mutation",
8
8
  Query = "Query"
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.executeTest = exports.readBinaryData = void 0;
7
7
  const fs = require("node:fs");
8
- const display_1 = require("../../v3/display");
9
8
  const logger_1 = __importDefault(require("../../common/logger"));
9
+ const display_1 = require("../../v3/display");
10
10
  const readBinaryData = (file) => {
11
11
  try {
12
12
  const body = fs.readFileSync(file);
@@ -29,7 +29,12 @@ const cleanup = (success, pact, opts, server, cleanupFn) => {
29
29
  const executeTest = async (pact, opts, testFn, cleanupFn) => {
30
30
  const scheme = opts.tls ? 'https' : 'http';
31
31
  const host = opts.host || '127.0.0.1';
32
- const port = pact.createMockServer(host, opts.port || 0, false);
32
+ const cors = opts.cors ?? true;
33
+ const config = JSON.stringify({ corsPreflight: cors });
34
+ const port = pact.pactffiCreateMockServerForTransport(host, scheme, config, opts.port);
35
+ if (port <= 0) {
36
+ throw new Error(`Failed to start mock server: received error code ${port}`);
37
+ }
33
38
  const server = { port, url: `${scheme}://${host}:${port}`, id: 'unknown' };
34
39
  let val;
35
40
  let error;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v4/http/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v4/http/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const _1 = require(".");
5
+ describe('V4 HTTP executeTest', () => {
6
+ afterEach(() => {
7
+ vitest_1.vi.restoreAllMocks();
8
+ });
9
+ const buildPactMock = (port) => {
10
+ return {
11
+ pactffiCreateMockServerForTransport: vitest_1.vi.fn().mockReturnValue(port),
12
+ mockServerMatchedSuccessfully: vitest_1.vi.fn().mockReturnValue(true),
13
+ mockServerMismatches: vitest_1.vi.fn().mockReturnValue([]),
14
+ cleanupMockServer: vitest_1.vi.fn().mockReturnValue(true),
15
+ writePactFile: vitest_1.vi.fn(),
16
+ cleanupPlugins: vitest_1.vi.fn(),
17
+ addPlugin: vitest_1.vi.fn(),
18
+ };
19
+ };
20
+ const baseOpts = { consumer: 'A', provider: 'B' };
21
+ describe('CORS option', () => {
22
+ it('passes corsPreflight: true by default when cors is not specified', async () => {
23
+ const pactMock = buildPactMock(1234);
24
+ await (0, _1.executeTest)(pactMock, baseOpts, async () => Promise.resolve(), () => { });
25
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
26
+ const stub = pactMock.pactffiCreateMockServerForTransport;
27
+ expect(stub).toHaveBeenCalledOnce();
28
+ const [, , config] = stub.mock.calls[0];
29
+ expect(JSON.parse(config)).toEqual({ corsPreflight: true });
30
+ });
31
+ it('passes corsPreflight: true when cors is explicitly true', async () => {
32
+ const pactMock = buildPactMock(1234);
33
+ await (0, _1.executeTest)(pactMock, { ...baseOpts, cors: true }, async () => Promise.resolve(), () => { });
34
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
35
+ const stub = pactMock.pactffiCreateMockServerForTransport;
36
+ const [, , config] = stub.mock.calls[0];
37
+ expect(JSON.parse(config)).toEqual({ corsPreflight: true });
38
+ });
39
+ it('passes corsPreflight: false when cors is explicitly false', async () => {
40
+ const pactMock = buildPactMock(1234);
41
+ await (0, _1.executeTest)(pactMock, { ...baseOpts, cors: false }, async () => Promise.resolve(), () => { });
42
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
43
+ const stub = pactMock.pactffiCreateMockServerForTransport;
44
+ const [, , config] = stub.mock.calls[0];
45
+ expect(JSON.parse(config)).toEqual({ corsPreflight: false });
46
+ });
47
+ });
48
+ describe('transport scheme', () => {
49
+ it('uses http scheme by default', async () => {
50
+ const pactMock = buildPactMock(1234);
51
+ await (0, _1.executeTest)(pactMock, baseOpts, async () => Promise.resolve(), () => { });
52
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
53
+ const stub = pactMock.pactffiCreateMockServerForTransport;
54
+ const [, transport] = stub.mock.calls[0];
55
+ expect(transport).toBe('http');
56
+ });
57
+ it('uses https scheme when tls is true', async () => {
58
+ const pactMock = buildPactMock(1234);
59
+ await (0, _1.executeTest)(pactMock, { ...baseOpts, tls: true }, async () => Promise.resolve(), () => { });
60
+ // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast
61
+ const stub = pactMock.pactffiCreateMockServerForTransport;
62
+ const [, transport] = stub.mock.calls[0];
63
+ expect(transport).toBe('https');
64
+ });
65
+ });
66
+ describe('when the mock server fails to start', () => {
67
+ it('throws an error when port is 0 or negative', async () => {
68
+ const pactMock = buildPactMock(-3);
69
+ await expect((0, _1.executeTest)(pactMock, baseOpts, async () => Promise.resolve(), () => { })).rejects.toThrow('Failed to start mock server');
70
+ });
71
+ });
72
+ });
73
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../../src/v4/http/index.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { ConsumerPact, ConsumerInteraction } from '@pact-foundation/pact-core';
2
- import type { V4InteractionWithCompleteRequest, PactV4Options, V4Response, V4InteractionWithResponse } from './types';
1
+ import type { ConsumerInteraction, ConsumerPact } from '@pact-foundation/pact-core';
2
+ import type { PactV4Options, V4InteractionWithCompleteRequest, V4InteractionWithResponse, V4Response } from './types';
3
3
  export declare class InteractionWithCompleteRequest implements V4InteractionWithCompleteRequest {
4
4
  protected cleanupFn: () => void;
5
5
  constructor(_pact: ConsumerPact, _interaction: ConsumerInteraction, _opts: PactV4Options, cleanupFn: () => void);
@@ -1,6 +1,6 @@
1
- import type { ConsumerPact, ConsumerInteraction } from '@pact-foundation/pact-core';
1
+ import type { ConsumerInteraction, ConsumerPact } from '@pact-foundation/pact-core';
2
2
  import type { Path } from '../../v3';
3
- import type { V4InteractionWithPlugin, PactV4Options, PluginConfig, V4PluginRequestBuilderFunc, V4InteractionWithPluginRequest } from './types';
3
+ import type { PactV4Options, PluginConfig, V4InteractionWithPlugin, V4InteractionWithPluginRequest, V4PluginRequestBuilderFunc } from './types';
4
4
  export declare class InteractionWithPlugin implements V4InteractionWithPlugin {
5
5
  private pact;
6
6
  private interaction;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InteractionWithPlugin = void 0;
4
- const requestWithPluginBuilder_1 = require("./requestWithPluginBuilder");
5
- const interactionWithPluginRequest_1 = require("./interactionWithPluginRequest");
6
4
  const matchers_1 = require("../../v3/matchers");
5
+ const interactionWithPluginRequest_1 = require("./interactionWithPluginRequest");
6
+ const requestWithPluginBuilder_1 = require("./requestWithPluginBuilder");
7
7
  class InteractionWithPlugin {
8
8
  pact;
9
9
  interaction;
@@ -1 +1 @@
1
- {"version":3,"file":"interactionWithPlugin.js","sourceRoot":"","sources":["../../../../src/v4/http/interactionWithPlugin.ts"],"names":[],"mappings":";;;AAIA,yEAAsE;AACtE,iFAA8E;AAE9E,gDAAyD;AASzD,MAAa,qBAAqB;IAGtB;IACA;IACA;IACE;IALZ,mCAAmC;IACnC,YACU,IAAkB,EAClB,WAAgC,EAChC,IAAmB,EACjB,SAAqB;QAHvB,SAAI,GAAJ,IAAI,CAAc;QAClB,gBAAW,GAAX,WAAW,CAAqB;QAChC,SAAI,GAAJ,IAAI,CAAe;QACjB,cAAS,GAAT,SAAS,CAAY;IAC9B,CAAC;IAEJ,+BAA+B;IAC/B,WAAW,CAAC,MAAoB;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CACT,MAAc,EACd,IAAU,EACV,OAAoC;QAEpC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,IAAA,+BAAoB,EAAC,IAAI,CAAC,CAAC,CAAC;QAEjE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,mDAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,2DAA4B,CACrC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AAjCD,sDAiCC"}
1
+ {"version":3,"file":"interactionWithPlugin.js","sourceRoot":"","sources":["../../../../src/v4/http/interactionWithPlugin.ts"],"names":[],"mappings":";;;AAKA,gDAAyD;AACzD,iFAA8E;AAC9E,yEAAsE;AAStE,MAAa,qBAAqB;IAGtB;IACA;IACA;IACE;IALZ,mCAAmC;IACnC,YACU,IAAkB,EAClB,WAAgC,EAChC,IAAmB,EACjB,SAAqB;QAHvB,SAAI,GAAJ,IAAI,CAAc;QAClB,gBAAW,GAAX,WAAW,CAAqB;QAChC,SAAI,GAAJ,IAAI,CAAe;QACjB,cAAS,GAAT,SAAS,CAAY;IAC9B,CAAC;IAEJ,+BAA+B;IAC/B,WAAW,CAAC,MAAoB;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CACT,MAAc,EACd,IAAU,EACV,OAAoC;QAEpC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,IAAA,+BAAoB,EAAC,IAAI,CAAC,CAAC,CAAC;QAEjE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,mDAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,2DAA4B,CACrC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AAjCD,sDAiCC"}
@@ -1,10 +1,11 @@
1
- import type { ConsumerPact, ConsumerInteraction } from '@pact-foundation/pact-core';
2
- import type { V4InteractionWithPluginRequest, PactV4Options, V4PluginResponseBuilderFunc, V4InteractionWithPluginResponse } from './types';
1
+ import type { ConsumerInteraction, ConsumerPact } from '@pact-foundation/pact-core';
2
+ import type { PactV4Options, V4InteractionWithPluginRequest, V4InteractionWithPluginResponse, V4PluginResponseBuilderFunc } from './types';
3
+ import type { StatusCodeMatcher } from '../../v3';
3
4
  export declare class InteractionWithPluginRequest implements V4InteractionWithPluginRequest {
4
5
  private pact;
5
6
  private interaction;
6
7
  private opts;
7
8
  protected cleanupFn: () => void;
8
9
  constructor(pact: ConsumerPact, interaction: ConsumerInteraction, opts: PactV4Options, cleanupFn: () => void);
9
- willRespondWith(status: number, builder?: V4PluginResponseBuilderFunc): V4InteractionWithPluginResponse;
10
+ willRespondWith(status: number | StatusCodeMatcher<number>, builder?: V4PluginResponseBuilderFunc): V4InteractionWithPluginResponse;
10
11
  }
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InteractionWithPluginRequest = void 0;
4
4
  const interactionWithPluginResponse_1 = require("./interactionWithPluginResponse");
5
5
  const responseWithPluginBuilder_1 = require("./responseWithPluginBuilder");
6
+ const matchers_1 = require("../../v3/matchers");
7
+ const matchingRules_1 = require("../../common/matchingRules");
6
8
  class InteractionWithPluginRequest {
7
9
  pact;
8
10
  interaction;
@@ -16,7 +18,10 @@ class InteractionWithPluginRequest {
16
18
  this.cleanupFn = cleanupFn;
17
19
  }
18
20
  willRespondWith(status, builder) {
19
- this.interaction.withStatus(status);
21
+ this.interaction.withStatus((0, matchers_1.reify)(status));
22
+ if ((0, matchers_1.isStatusCodeMatcher)(status)) {
23
+ this.interaction.withResponseMatchingRules(JSON.stringify((0, matchingRules_1.convertStatusMatcherToFFI)(status)));
24
+ }
20
25
  if (typeof builder === 'function') {
21
26
  builder(new responseWithPluginBuilder_1.ResponseWithPluginBuilder(this.interaction));
22
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interactionWithPluginRequest.js","sourceRoot":"","sources":["../../../../src/v4/http/interactionWithPluginRequest.ts"],"names":[],"mappings":";;;AAIA,mFAAgF;AAChF,2EAAwE;AAQxE,MAAa,4BAA4B;IAK7B;IACA;IACA;IACE;IALZ,mCAAmC;IACnC,YACU,IAAkB,EAClB,WAAgC,EAChC,IAAmB,EACjB,SAAqB;QAHvB,SAAI,GAAJ,IAAI,CAAc;QAClB,gBAAW,GAAX,WAAW,CAAqB;QAChC,SAAI,GAAJ,IAAI,CAAe;QACjB,cAAS,GAAT,SAAS,CAAY;IAC9B,CAAC;IAEJ,eAAe,CACb,MAAc,EACd,OAAqC;QAErC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,6DAA6B,CACtC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AA3BD,oEA2BC"}
1
+ {"version":3,"file":"interactionWithPluginRequest.js","sourceRoot":"","sources":["../../../../src/v4/http/interactionWithPluginRequest.ts"],"names":[],"mappings":";;;AAIA,mFAAgF;AAChF,2EAAwE;AAQxE,gDAA+D;AAC/D,8DAAuE;AAEvE,MAAa,4BAA4B;IAK7B;IACA;IACA;IACE;IALZ,mCAAmC;IACnC,YACU,IAAkB,EAClB,WAAgC,EAChC,IAAmB,EACjB,SAAqB;QAHvB,SAAI,GAAJ,IAAI,CAAc;QAClB,gBAAW,GAAX,WAAW,CAAqB;QAChC,SAAI,GAAJ,IAAI,CAAe;QACjB,cAAS,GAAT,SAAS,CAAY;IAC9B,CAAC;IAEJ,eAAe,CACb,MAA0C,EAC1C,OAAqC;QAErC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAA,gBAAK,EAAS,MAAM,CAAC,CAAC,CAAC;QAEnD,IAAI,IAAA,8BAAmB,EAAC,MAAM,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CACxC,IAAI,CAAC,SAAS,CAAC,IAAA,yCAAyB,EAAC,MAAM,CAAC,CAAC,CAClD,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,6DAA6B,CACtC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AAjCD,oEAiCC"}
@@ -1,5 +1,5 @@
1
1
  import type { ConsumerPact } from '@pact-foundation/pact-core';
2
- import type { V4InteractionWithPluginResponse, PactV4Options, V4MockServer } from './types';
2
+ import type { PactV4Options, V4InteractionWithPluginResponse, V4MockServer } from './types';
3
3
  export declare class InteractionWithPluginResponse implements V4InteractionWithPluginResponse {
4
4
  private pact;
5
5
  private opts;
@@ -1,10 +1,11 @@
1
- import type { ConsumerPact, ConsumerInteraction } from '@pact-foundation/pact-core';
2
- import type { V4InteractionWithRequest, PactV4Options, V4ResponseBuilderFunc, V4InteractionWithResponse } from './types';
1
+ import type { ConsumerInteraction, ConsumerPact } from '@pact-foundation/pact-core';
2
+ import type { PactV4Options, V4InteractionWithRequest, V4InteractionWithResponse, V4ResponseBuilderFunc } from './types';
3
+ import type { StatusCodeMatcher } from '../../v3';
3
4
  export declare class InteractionWithRequest implements V4InteractionWithRequest {
4
5
  private pact;
5
6
  private interaction;
6
7
  private opts;
7
8
  protected cleanupFn: () => void;
8
9
  constructor(pact: ConsumerPact, interaction: ConsumerInteraction, opts: PactV4Options, cleanupFn: () => void);
9
- willRespondWith(status: number, builder?: V4ResponseBuilderFunc): V4InteractionWithResponse;
10
+ willRespondWith(status: number | StatusCodeMatcher<number>, builder?: V4ResponseBuilderFunc): V4InteractionWithResponse;
10
11
  }
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InteractionWithRequest = void 0;
4
4
  const interactionWithResponse_1 = require("./interactionWithResponse");
5
5
  const responseBuilder_1 = require("./responseBuilder");
6
+ const matchers_1 = require("../../v3/matchers");
7
+ const matchingRules_1 = require("../../common/matchingRules");
6
8
  class InteractionWithRequest {
7
9
  pact;
8
10
  interaction;
@@ -16,7 +18,10 @@ class InteractionWithRequest {
16
18
  this.cleanupFn = cleanupFn;
17
19
  }
18
20
  willRespondWith(status, builder) {
19
- this.interaction.withStatus(status);
21
+ this.interaction.withStatus((0, matchers_1.reify)(status));
22
+ if ((0, matchers_1.isStatusCodeMatcher)(status)) {
23
+ this.interaction.withResponseMatchingRules(JSON.stringify((0, matchingRules_1.convertStatusMatcherToFFI)(status)));
24
+ }
20
25
  if (typeof builder === 'function') {
21
26
  builder(new responseBuilder_1.ResponseBuilder(this.interaction));
22
27
  }