@pact-foundation/pact 10.0.0-beta.9 → 10.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 (285) hide show
  1. package/CHANGELOG.md +2451 -1
  2. package/CODE_OF_CONDUCT.md +1 -1
  3. package/CONTRIBUTING.md +49 -12
  4. package/MIGRATION.md +77 -0
  5. package/README.md +180 -1274
  6. package/RELEASING.md +63 -59
  7. package/package.json +96 -98
  8. package/src/common/jsonTypes.d.ts +5 -0
  9. package/src/common/jsonTypes.js +3 -0
  10. package/src/common/jsonTypes.js.map +1 -0
  11. package/src/common/logger.d.ts +10 -0
  12. package/src/common/logger.js +32 -0
  13. package/src/common/logger.js.map +1 -0
  14. package/src/common/net.d.ts +9 -0
  15. package/src/common/net.js +82 -0
  16. package/src/common/net.js.map +1 -0
  17. package/{common → src/common}/net.spec.d.ts +0 -0
  18. package/src/common/net.spec.js +69 -0
  19. package/src/common/net.spec.js.map +1 -0
  20. package/src/common/request.d.ts +21 -0
  21. package/src/common/request.js +110 -0
  22. package/src/common/request.js.map +1 -0
  23. package/{common → src/common}/request.spec.d.ts +0 -0
  24. package/src/common/request.spec.js +69 -0
  25. package/src/common/request.spec.js.map +1 -0
  26. package/src/common/spec.d.ts +2 -0
  27. package/src/common/spec.js +22 -0
  28. package/src/common/spec.js.map +1 -0
  29. package/{dsl → src/dsl}/apolloGraphql.d.ts +1 -1
  30. package/{dsl → src/dsl}/apolloGraphql.js +4 -1
  31. package/src/dsl/apolloGraphql.js.map +1 -0
  32. package/{dsl → src/dsl}/apolloGraphql.spec.d.ts +0 -0
  33. package/src/dsl/apolloGraphql.spec.js +74 -0
  34. package/src/dsl/apolloGraphql.spec.js.map +1 -0
  35. package/{dsl → src/dsl}/graphql.d.ts +19 -8
  36. package/{dsl → src/dsl}/graphql.js +59 -31
  37. package/src/dsl/graphql.js.map +1 -0
  38. package/{dsl → src/dsl}/graphql.spec.d.ts +0 -0
  39. package/src/dsl/graphql.spec.js +229 -0
  40. package/src/dsl/graphql.spec.js.map +1 -0
  41. package/{dsl → src/dsl}/interaction.d.ts +22 -20
  42. package/src/dsl/interaction.js +144 -0
  43. package/src/dsl/interaction.js.map +1 -0
  44. package/{dsl → src/dsl}/interaction.spec.d.ts +0 -0
  45. package/src/dsl/interaction.spec.js +214 -0
  46. package/src/dsl/interaction.spec.js.map +1 -0
  47. package/src/dsl/matchers.d.ts +143 -0
  48. package/{dsl → src/dsl}/matchers.js +92 -93
  49. package/src/dsl/matchers.js.map +1 -0
  50. package/{dsl → src/dsl}/matchers.spec.d.ts +0 -0
  51. package/src/dsl/matchers.spec.js +668 -0
  52. package/src/dsl/matchers.spec.js.map +1 -0
  53. package/{dsl → src/dsl}/message.d.ts +32 -12
  54. package/{dsl → src/dsl}/message.js +0 -0
  55. package/{dsl → src/dsl}/message.js.map +1 -1
  56. package/src/dsl/mockService.d.ts +13 -0
  57. package/src/dsl/mockService.js +3 -0
  58. package/src/dsl/mockService.js.map +1 -0
  59. package/{dsl → src/dsl}/options.d.ts +7 -6
  60. package/{dsl → src/dsl}/options.js +0 -0
  61. package/{dsl → src/dsl}/options.js.map +1 -1
  62. package/src/dsl/verifier/index.d.ts +1 -0
  63. package/src/dsl/verifier/index.js +18 -0
  64. package/src/dsl/verifier/index.js.map +1 -0
  65. package/src/dsl/verifier/proxy/hooks.d.ts +4 -0
  66. package/src/dsl/verifier/proxy/hooks.js +109 -0
  67. package/src/dsl/verifier/proxy/hooks.js.map +1 -0
  68. package/src/dsl/verifier/proxy/index.d.ts +1 -0
  69. package/src/dsl/verifier/proxy/index.js +18 -0
  70. package/src/dsl/verifier/proxy/index.js.map +1 -0
  71. package/src/dsl/verifier/proxy/parseBody.d.ts +7 -0
  72. package/src/dsl/verifier/proxy/parseBody.js +22 -0
  73. package/src/dsl/verifier/proxy/parseBody.js.map +1 -0
  74. package/{dsl/mockService.spec.d.ts → src/dsl/verifier/proxy/parseBody.spec.d.ts} +0 -0
  75. package/src/dsl/verifier/proxy/parseBody.spec.js +118 -0
  76. package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -0
  77. package/src/dsl/verifier/proxy/proxy.d.ts +4 -0
  78. package/src/dsl/verifier/proxy/proxy.js +92 -0
  79. package/src/dsl/verifier/proxy/proxy.js.map +1 -0
  80. package/{dsl/publisher.spec.d.ts → src/dsl/verifier/proxy/proxy.spec.d.ts} +0 -0
  81. package/src/dsl/verifier/proxy/proxy.spec.js +33 -0
  82. package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -0
  83. package/src/dsl/verifier/proxy/stateHandler/index.d.ts +1 -0
  84. package/src/dsl/verifier/proxy/stateHandler/index.js +18 -0
  85. package/src/dsl/verifier/proxy/stateHandler/index.js.map +1 -0
  86. package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +3 -0
  87. package/src/dsl/verifier/proxy/stateHandler/setupStates.js +48 -0
  88. package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -0
  89. package/{dsl/verifier.spec.d.ts → src/dsl/verifier/proxy/stateHandler/setupStates.spec.d.ts} +0 -0
  90. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +191 -0
  91. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -0
  92. package/src/dsl/verifier/proxy/stateHandler/stateHandler.d.ts +3 -0
  93. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +14 -0
  94. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -0
  95. package/{httpPact.spec.d.ts → src/dsl/verifier/proxy/stateHandler/stateHandler.spec.d.ts} +0 -0
  96. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +130 -0
  97. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -0
  98. package/src/dsl/verifier/proxy/tracer.d.ts +3 -0
  99. package/src/dsl/verifier/proxy/tracer.js +52 -0
  100. package/src/dsl/verifier/proxy/tracer.js.map +1 -0
  101. package/src/dsl/verifier/proxy/types.d.ts +48 -0
  102. package/src/dsl/verifier/proxy/types.js +3 -0
  103. package/src/dsl/verifier/proxy/types.js.map +1 -0
  104. package/src/dsl/verifier/types.d.ts +3 -0
  105. package/src/dsl/verifier/types.js +3 -0
  106. package/src/dsl/verifier/types.js.map +1 -0
  107. package/src/dsl/verifier/verifier.d.ts +16 -0
  108. package/src/dsl/verifier/verifier.js +129 -0
  109. package/src/dsl/verifier/verifier.js.map +1 -0
  110. package/{messageConsumerPact.spec.d.ts → src/dsl/verifier/verifier.spec.d.ts} +0 -0
  111. package/src/dsl/verifier/verifier.spec.js +172 -0
  112. package/src/dsl/verifier/verifier.spec.js.map +1 -0
  113. package/{errors → src/errors}/configurationError.d.ts +0 -0
  114. package/{errors → src/errors}/configurationError.js +3 -1
  115. package/src/errors/configurationError.js.map +1 -0
  116. package/{errors → src/errors}/graphQLQueryError.d.ts +0 -0
  117. package/{errors → src/errors}/graphQLQueryError.js +3 -1
  118. package/src/errors/graphQLQueryError.js.map +1 -0
  119. package/{errors → src/errors}/matcherError.d.ts +0 -0
  120. package/{errors → src/errors}/matcherError.js +3 -1
  121. package/src/errors/matcherError.js.map +1 -0
  122. package/{errors → src/errors}/verificationError.d.ts +0 -0
  123. package/{errors → src/errors}/verificationError.js +3 -1
  124. package/src/errors/verificationError.js.map +1 -0
  125. package/src/httpPact/ffi.d.ts +15 -0
  126. package/src/httpPact/ffi.js +91 -0
  127. package/src/httpPact/ffi.js.map +1 -0
  128. package/{messageProviderPact.spec.d.ts → src/httpPact/ffi.spec.d.ts} +0 -0
  129. package/src/httpPact/ffi.spec.js +81 -0
  130. package/src/httpPact/ffi.spec.js.map +1 -0
  131. package/{httpPact.d.ts → src/httpPact/index.d.ts} +12 -12
  132. package/src/httpPact/index.js +311 -0
  133. package/src/httpPact/index.js.map +1 -0
  134. package/{pact-web.spec.d.ts → src/httpPact/index.spec.d.ts} +0 -0
  135. package/src/httpPact/index.spec.js +238 -0
  136. package/src/httpPact/index.spec.js.map +1 -0
  137. package/src/httpPact/tracing.d.ts +1 -0
  138. package/src/httpPact/tracing.js +53 -0
  139. package/src/httpPact/tracing.js.map +1 -0
  140. package/{pact.d.ts → src/index.d.ts} +22 -21
  141. package/src/index.js +107 -0
  142. package/src/index.js.map +1 -0
  143. package/src/messageConsumerPact.d.ts +86 -0
  144. package/src/messageConsumerPact.js +222 -0
  145. package/src/messageConsumerPact.js.map +1 -0
  146. package/src/messageConsumerPact.spec.d.ts +1 -0
  147. package/src/messageConsumerPact.spec.js +117 -0
  148. package/src/messageConsumerPact.spec.js.map +1 -0
  149. package/{messageProviderPact.d.ts → src/messageProviderPact.d.ts} +7 -4
  150. package/src/messageProviderPact.js +190 -0
  151. package/src/messageProviderPact.js.map +1 -0
  152. package/src/messageProviderPact.spec.d.ts +1 -0
  153. package/src/messageProviderPact.spec.js +183 -0
  154. package/src/messageProviderPact.spec.js.map +1 -0
  155. package/{pact.integration.spec.d.ts → src/pact.integration.spec.d.ts} +0 -0
  156. package/{pact.integration.spec.js → src/pact.integration.spec.js} +0 -0
  157. package/src/pact.integration.spec.js.map +1 -0
  158. package/src/v3/display.d.ts +6 -0
  159. package/src/v3/display.js +83 -0
  160. package/src/v3/display.js.map +1 -0
  161. package/src/v3/index.d.ts +17 -0
  162. package/src/v3/index.js +47 -0
  163. package/src/v3/index.js.map +1 -0
  164. package/src/v3/matchers.d.ts +182 -0
  165. package/src/v3/matchers.js +443 -0
  166. package/src/v3/matchers.js.map +1 -0
  167. package/src/v3/matchers.spec.d.ts +1 -0
  168. package/src/v3/matchers.spec.js +461 -0
  169. package/src/v3/matchers.spec.js.map +1 -0
  170. package/src/v3/pact.d.ts +21 -0
  171. package/src/v3/pact.js +240 -0
  172. package/src/v3/pact.js.map +1 -0
  173. package/src/v3/types.d.ts +81 -0
  174. package/src/v3/types.js +11 -0
  175. package/src/v3/types.js.map +1 -0
  176. package/{v3 → src/v3}/xml/xmlBuilder.d.ts +2 -2
  177. package/{v3 → src/v3}/xml/xmlBuilder.js +2 -1
  178. package/src/v3/xml/xmlBuilder.js.map +1 -0
  179. package/src/v3/xml/xmlElement.d.ts +27 -0
  180. package/{v3 → src/v3}/xml/xmlElement.js +21 -15
  181. package/src/v3/xml/xmlElement.js.map +1 -0
  182. package/src/v3/xml/xmlElement.spec.d.ts +1 -0
  183. package/src/v3/xml/xmlElement.spec.js +102 -0
  184. package/src/v3/xml/xmlElement.spec.js.map +1 -0
  185. package/{v3 → src/v3}/xml/xmlNode.d.ts +0 -0
  186. package/{v3 → src/v3}/xml/xmlNode.js +1 -0
  187. package/src/v3/xml/xmlNode.js.map +1 -0
  188. package/src/v3/xml/xmlText.d.ts +7 -0
  189. package/{v3 → src/v3}/xml/xmlText.js +4 -1
  190. package/src/v3/xml/xmlText.js.map +1 -0
  191. package/test/helper.d.ts +1 -0
  192. package/test/helper.js +37 -0
  193. package/test/helper.js.map +1 -0
  194. package/ROADMAP.md +0 -20
  195. package/common/logger.d.ts +0 -7
  196. package/common/logger.js +0 -56
  197. package/common/logger.js.map +0 -1
  198. package/common/metadata.d.ts +0 -0
  199. package/common/metadata.js +0 -2
  200. package/common/metadata.js.map +0 -1
  201. package/common/net.d.ts +0 -9
  202. package/common/net.js +0 -48
  203. package/common/net.js.map +0 -1
  204. package/common/net.spec.js +0 -67
  205. package/common/net.spec.js.map +0 -1
  206. package/common/request.d.ts +0 -14
  207. package/common/request.js +0 -47
  208. package/common/request.js.map +0 -1
  209. package/common/request.spec.js +0 -71
  210. package/common/request.spec.js.map +0 -1
  211. package/common/utils.d.ts +0 -2
  212. package/common/utils.js +0 -10
  213. package/common/utils.js.map +0 -1
  214. package/dsl/apolloGraphql.js.map +0 -1
  215. package/dsl/apolloGraphql.spec.js +0 -47
  216. package/dsl/apolloGraphql.spec.js.map +0 -1
  217. package/dsl/graphql.js.map +0 -1
  218. package/dsl/graphql.spec.js +0 -150
  219. package/dsl/graphql.spec.js.map +0 -1
  220. package/dsl/interaction.js +0 -112
  221. package/dsl/interaction.js.map +0 -1
  222. package/dsl/interaction.spec.js +0 -217
  223. package/dsl/interaction.spec.js.map +0 -1
  224. package/dsl/matchers.d.ts +0 -269
  225. package/dsl/matchers.js.map +0 -1
  226. package/dsl/matchers.spec.js +0 -563
  227. package/dsl/matchers.spec.js.map +0 -1
  228. package/dsl/mockService.d.ts +0 -58
  229. package/dsl/mockService.js +0 -74
  230. package/dsl/mockService.js.map +0 -1
  231. package/dsl/mockService.spec.js +0 -126
  232. package/dsl/mockService.spec.js.map +0 -1
  233. package/dsl/publisher.d.ts +0 -6
  234. package/dsl/publisher.js +0 -19
  235. package/dsl/publisher.js.map +0 -1
  236. package/dsl/publisher.spec.js +0 -21
  237. package/dsl/publisher.spec.js.map +0 -1
  238. package/dsl/verifier.d.ts +0 -39
  239. package/dsl/verifier.js +0 -173
  240. package/dsl/verifier.js.map +0 -1
  241. package/dsl/verifier.spec.js +0 -299
  242. package/dsl/verifier.spec.js.map +0 -1
  243. package/errors/configurationError.js.map +0 -1
  244. package/errors/graphQLQueryError.js.map +0 -1
  245. package/errors/matcherError.js.map +0 -1
  246. package/errors/verificationError.js.map +0 -1
  247. package/httpPact.js +0 -206
  248. package/httpPact.js.map +0 -1
  249. package/httpPact.spec.js +0 -337
  250. package/httpPact.spec.js.map +0 -1
  251. package/messageConsumerPact.d.ts +0 -67
  252. package/messageConsumerPact.js +0 -161
  253. package/messageConsumerPact.js.map +0 -1
  254. package/messageConsumerPact.spec.js +0 -161
  255. package/messageConsumerPact.spec.js.map +0 -1
  256. package/messageProviderPact.js +0 -139
  257. package/messageProviderPact.js.map +0 -1
  258. package/messageProviderPact.spec.js +0 -143
  259. package/messageProviderPact.spec.js.map +0 -1
  260. package/pact-web.d.ts +0 -100
  261. package/pact-web.js +0 -151
  262. package/pact-web.js.map +0 -1
  263. package/pact-web.spec.js +0 -191
  264. package/pact-web.spec.js.map +0 -1
  265. package/pact.integration.spec.js.map +0 -1
  266. package/pact.js +0 -74
  267. package/pact.js.map +0 -1
  268. package/v3/index.d.ts +0 -23
  269. package/v3/index.js +0 -33
  270. package/v3/index.js.map +0 -1
  271. package/v3/matchers.d.ts +0 -199
  272. package/v3/matchers.js +0 -305
  273. package/v3/matchers.js.map +0 -1
  274. package/v3/pact.d.ts +0 -47
  275. package/v3/pact.js +0 -101
  276. package/v3/pact.js.map +0 -1
  277. package/v3/verifier.d.ts +0 -27
  278. package/v3/verifier.js +0 -46
  279. package/v3/verifier.js.map +0 -1
  280. package/v3/xml/xmlBuilder.js.map +0 -1
  281. package/v3/xml/xmlElement.d.ts +0 -34
  282. package/v3/xml/xmlElement.js.map +0 -1
  283. package/v3/xml/xmlNode.js.map +0 -1
  284. package/v3/xml/xmlText.d.ts +0 -6
  285. package/v3/xml/xmlText.js.map +0 -1
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ /* tslint:disable:no-unused-expression no-empty */
30
+ var chai = __importStar(require("chai"));
31
+ var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
32
+ var sinon_chai_1 = __importDefault(require("sinon-chai"));
33
+ var express_1 = __importDefault(require("express"));
34
+ var http = __importStar(require("http"));
35
+ var messageProviderPact_1 = require("./messageProviderPact");
36
+ chai.use(sinon_chai_1.default);
37
+ chai.use(chai_as_promised_1.default);
38
+ var expect = chai.expect;
39
+ describe('MesageProvider', function () {
40
+ var provider;
41
+ var successfulRequest = 'successfulRequest';
42
+ var unsuccessfulRequest = 'unsuccessfulRequest';
43
+ var successfulMessage = {
44
+ contents: { foo: 'bar' },
45
+ description: successfulRequest,
46
+ providerStates: [{ name: 'some state' }],
47
+ };
48
+ var unsuccessfulMessage = {
49
+ contents: { foo: 'bar' },
50
+ description: unsuccessfulRequest,
51
+ providerStates: [{ name: 'some state not found' }],
52
+ };
53
+ var nonExistentMessage = {
54
+ contents: { foo: 'bar' },
55
+ description: 'does not exist',
56
+ providerStates: [{ name: 'some state not found' }],
57
+ };
58
+ beforeEach(function () {
59
+ provider = new messageProviderPact_1.MessageProviderPact({
60
+ logLevel: 'error',
61
+ messageProviders: {
62
+ successfulRequest: function () { return Promise.resolve('yay'); },
63
+ unsuccessfulRequest: function () { return Promise.reject(new Error('nay')); },
64
+ },
65
+ provider: 'myprovider',
66
+ stateHandlers: {
67
+ 'some state': function () { return Promise.resolve('yay'); },
68
+ 'some state with params': function (name, params) {
69
+ return Promise.resolve("name: ".concat(name, ", params: ").concat(JSON.stringify(params)));
70
+ },
71
+ },
72
+ });
73
+ });
74
+ describe('#constructor', function () {
75
+ it('creates a Provider when all mandatory parameters are provided', function () {
76
+ expect(provider).to.be.a('object');
77
+ expect(provider).to.respondTo('verify');
78
+ });
79
+ it('creates a Provider with default log level if not specified', function () {
80
+ provider = new messageProviderPact_1.MessageProviderPact({
81
+ messageProviders: {},
82
+ provider: 'myprovider',
83
+ });
84
+ expect(provider).to.be.a('object');
85
+ expect(provider).to.respondTo('verify');
86
+ });
87
+ });
88
+ describe('#setupVerificationHandler', function () {
89
+ describe('when their is a valid setup', function () {
90
+ it('creates a valid express handler', function (done) {
91
+ var setupVerificationHandler = provider.setupVerificationHandler.bind(provider)();
92
+ var req = { body: successfulMessage };
93
+ var res = {
94
+ json: function () { return done(); }, // Expect a response
95
+ };
96
+ setupVerificationHandler(req, res);
97
+ });
98
+ });
99
+ describe('when their is an invalid setup', function () {
100
+ it('creates a valid express handler that rejects the message', function (done) {
101
+ var setupVerificationHandler = provider.setupVerificationHandler.bind(provider)();
102
+ var req = { body: nonExistentMessage };
103
+ var res = {
104
+ status: function (status) {
105
+ expect(status).to.eq(500);
106
+ return {
107
+ send: function () { return done(); }, // Expect the status to be called with 500
108
+ };
109
+ },
110
+ };
111
+ setupVerificationHandler(req, res);
112
+ });
113
+ });
114
+ });
115
+ describe('#findHandler', function () {
116
+ describe('when given a handler that exists', function () {
117
+ it('returns a Handler object', function () {
118
+ var findHandler = provider.findHandler.bind(provider);
119
+ return expect(findHandler(successfulMessage)).to.eventually.be.a('function');
120
+ });
121
+ });
122
+ describe('when given a handler that does not exist', function () {
123
+ it('returns a failed promise', function () {
124
+ var findHandler = provider.findHandler.bind(provider);
125
+ return expect(findHandler('doesnotexist')).to.eventually.be.rejected;
126
+ });
127
+ });
128
+ });
129
+ describe('#setupStates', function () {
130
+ describe('when given a handler that exists', function () {
131
+ it('returns values of all resolved handlers', function () {
132
+ var setupStates = provider.setupStates.bind(provider);
133
+ return expect(setupStates(successfulMessage)).to.eventually.deep.equal([
134
+ 'yay',
135
+ ]);
136
+ });
137
+ it('passes params to the handler', function () {
138
+ var setupStates = provider.setupStates.bind(provider);
139
+ return expect(setupStates({
140
+ providerStates: [
141
+ { name: 'some state with params', params: { foo: 'bar' } },
142
+ ],
143
+ })).to.eventually.deep.equal([
144
+ 'name: some state with params, params: {"foo":"bar"}',
145
+ ]);
146
+ });
147
+ });
148
+ describe('when given a state that does not have a handler', function () {
149
+ it('returns an empty promise', function () {
150
+ provider = new messageProviderPact_1.MessageProviderPact({
151
+ messageProviders: {},
152
+ provider: 'myprovider',
153
+ });
154
+ var findStateHandler = provider.setupStates.bind(provider);
155
+ return expect(findStateHandler(unsuccessfulMessage)).to.eventually.deep.equal([]);
156
+ });
157
+ });
158
+ });
159
+ describe('#waitForServerReady', function () {
160
+ describe('when the http server starts up', function () {
161
+ it('returns a resolved promise', function () {
162
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
163
+ var server = http.createServer(function () { }).listen();
164
+ return expect((0, messageProviderPact_1.waitForServerReady)(server)).to.eventually.be.fulfilled;
165
+ });
166
+ });
167
+ });
168
+ describe('#setupProxyServer', function () {
169
+ describe('when the http server starts up', function () {
170
+ it('returns a resolved promise', function () {
171
+ var app = (0, express_1.default)();
172
+ expect((0, messageProviderPact_1.setupProxyServer)(app)).to.be.an.instanceOf(http.Server);
173
+ });
174
+ });
175
+ });
176
+ describe('#setupProxyApplication', function () {
177
+ it('returns a valid express app', function () {
178
+ var setupProxyApplication = provider.setupProxyApplication.bind(provider);
179
+ expect(setupProxyApplication().listen).to.be.a('function');
180
+ });
181
+ });
182
+ });
183
+ //# sourceMappingURL=messageProviderPact.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageProviderPact.spec.js","sourceRoot":"","sources":["../../src/messageProviderPact.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pact.integration.spec.js","sourceRoot":"","sources":["../../src/pact.integration.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Mismatch, MatchingResult, RequestMismatch } from '@pact-foundation/pact-core/src/consumer/index';
2
+ export declare function displayQuery(query: Record<string, string[]>): string;
3
+ export declare function displayRequest(request: RequestMismatch, indent?: string): string;
4
+ export declare function filterMissingFeatureFlag(mismatches: MatchingResult[]): MatchingResult[];
5
+ export declare function printMismatch(m: Mismatch): string;
6
+ export declare function generateMockServerError(mismatches: MatchingResult[], indent: string): string;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.generateMockServerError = exports.printMismatch = exports.filterMissingFeatureFlag = exports.displayRequest = exports.displayQuery = void 0;
13
+ /* eslint-disable import/first */
14
+ var ramda_1 = require("ramda");
15
+ function displayQuery(query) {
16
+ var pairs = (0, ramda_1.toPairs)(query);
17
+ var mapped = (0, ramda_1.flatten)((0, ramda_1.map)(function (_a) {
18
+ var key = _a[0], values = _a[1];
19
+ return (0, ramda_1.map)(function (val) { return "".concat(key, "=").concat(val); }, values);
20
+ }, pairs));
21
+ return (0, ramda_1.join)('&', mapped);
22
+ }
23
+ exports.displayQuery = displayQuery;
24
+ function displayHeaders(headers, indent) {
25
+ return (0, ramda_1.join)("\n".concat(indent), (0, ramda_1.map)(function (_a) {
26
+ var k = _a[0], v = _a[1];
27
+ return "".concat(k, ": ").concat(v);
28
+ }, (0, ramda_1.toPairs)(headers)));
29
+ }
30
+ function displayRequest(request, indent) {
31
+ if (indent === void 0) { indent = ''; }
32
+ var output = [''];
33
+ output.push("".concat(indent, "Method: ").concat(request.method, "\n").concat(indent, "Path: ").concat(request.path));
34
+ if (request.query) {
35
+ output.push("".concat(indent, "Query String: ").concat(displayQuery(request.query)));
36
+ }
37
+ if (request.headers) {
38
+ output.push("".concat(indent, "Headers:\n").concat(indent, " ").concat(displayHeaders(request.headers, "".concat(indent, " "))));
39
+ }
40
+ if (request.body) {
41
+ var body = JSON.stringify(request.body);
42
+ output.push("".concat(indent, "Body: ").concat(body.substr(0, 20), "... (").concat(body.length, " length)"));
43
+ }
44
+ return output.join('\n');
45
+ }
46
+ exports.displayRequest = displayRequest;
47
+ function filterMissingFeatureFlag(mismatches) {
48
+ if (process.env.PACT_EXPERIMENTAL_FEATURE_ALLOW_MISSING_REQUESTS) {
49
+ return mismatches.filter(function (m) { return m.type !== 'request-mismatch'; });
50
+ }
51
+ return mismatches;
52
+ }
53
+ exports.filterMissingFeatureFlag = filterMissingFeatureFlag;
54
+ function printMismatch(m) {
55
+ switch (m.type) {
56
+ case 'MethodMismatch':
57
+ return "Expected ".concat(m.expected, ", got: ").concat(m.actual);
58
+ default:
59
+ return m.mismatch;
60
+ }
61
+ }
62
+ exports.printMismatch = printMismatch;
63
+ function generateMockServerError(mismatches, indent) {
64
+ return __spreadArray([
65
+ 'Mock server failed with the following mismatches:'
66
+ ], mismatches.map(function (mismatch, i) {
67
+ var _a;
68
+ if (mismatch.type === 'request-mismatch') {
69
+ return "\n".concat(indent).concat(i, ") The following request was incorrect: \n\n ").concat(indent).concat(mismatch.method, " ").concat(mismatch.path, "\n ").concat((_a = mismatch.mismatches) === null || _a === void 0 ? void 0 : _a.map(function (d, j) {
70
+ return "\n".concat(indent).concat(indent).concat(indent, " 1.").concat(j, " ").concat(printMismatch(d));
71
+ }).join(''));
72
+ }
73
+ if (mismatch.type === 'request-not-found') {
74
+ return "\n".concat(indent).concat(i, ") The following request was not expected: ").concat(displayRequest(mismatch.request, "".concat(indent, " ")));
75
+ }
76
+ if (mismatch.type === 'missing-request') {
77
+ return "\n".concat(indent).concat(i, ") The following request was expected but not received: ").concat(displayRequest(mismatch.request, "".concat(indent, " ")));
78
+ }
79
+ return '';
80
+ }), true).join('\n');
81
+ }
82
+ exports.generateMockServerError = generateMockServerError;
83
+ //# sourceMappingURL=display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../../src/v3/display.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAiC;AACjC,+BAAoD;AASpD,SAAgB,YAAY,CAAC,KAA+B;IAC1D,IAAM,KAAK,GAAG,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC;IAC7B,IAAM,MAAM,GAAG,IAAA,eAAO,EACpB,IAAA,WAAG,EAAC,UAAC,EAAa;YAAZ,GAAG,QAAA,EAAE,MAAM,QAAA;QAAM,OAAA,IAAA,WAAG,EAAC,UAAC,GAAG,IAAK,OAAA,UAAG,GAAG,cAAI,GAAG,CAAE,EAAf,CAAe,EAAE,MAAM,CAAC;IAArC,CAAqC,EAAE,KAAK,CAAC,CACrE,CAAC;IACF,OAAO,IAAA,YAAI,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAND,oCAMC;AAED,SAAS,cAAc,CACrB,OAAiC,EACjC,MAAc;IAEd,OAAO,IAAA,YAAI,EACT,YAAK,MAAM,CAAE,EACb,IAAA,WAAG,EAAC,UAAC,EAAM;YAAL,CAAC,QAAA,EAAE,CAAC,QAAA;QAAM,OAAA,UAAG,CAAC,eAAK,CAAC,CAAE;IAAZ,CAAY,EAAE,IAAA,eAAO,EAAC,OAAO,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,OAAwB,EAAE,MAAW;IAAX,uBAAA,EAAA,WAAW;IAClE,IAAM,MAAM,GAAa,CAAC,EAAE,CAAC,CAAC;IAE9B,MAAM,CAAC,IAAI,CACT,UAAG,MAAM,qBAAW,OAAO,CAAC,MAAM,eAAK,MAAM,mBAAS,OAAO,CAAC,IAAI,CAAE,CACrE,CAAC;IAEF,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,MAAM,CAAC,IAAI,CAAC,UAAG,MAAM,2BAAiB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAE,CAAC,CAAC;KACtE;IAED,IAAI,OAAO,CAAC,OAAO,EAAE;QACnB,MAAM,CAAC,IAAI,CACT,UAAG,MAAM,uBAAa,MAAM,eAAK,cAAc,CAC7C,OAAO,CAAC,OAAO,EACf,UAAG,MAAM,OAAI,CACd,CAAE,CACJ,CAAC;KACH;IAED,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CACT,UAAG,MAAM,mBAAS,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAQ,IAAI,CAAC,MAAM,aAAU,CAClE,CAAC;KACH;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AA5BD,wCA4BC;AAED,SAAgB,wBAAwB,CACtC,UAA4B;IAE5B,IAAI,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE;QAChE,OAAO,UAAU,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAA7B,CAA6B,CAAC,CAAC;KAChE;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAPD,4DAOC;AAED,SAAgB,aAAa,CAAC,CAAW;IACvC,QAAQ,CAAC,CAAC,IAAI,EAAE;QACd,KAAK,gBAAgB;YACnB,OAAO,mBAAY,CAAC,CAAC,QAAQ,oBAAU,CAAC,CAAC,MAAM,CAAE,CAAC;QACpD;YACE,OAAO,CAAC,CAAC,QAAQ,CAAC;KACrB;AACH,CAAC;AAPD,sCAOC;AAED,SAAgB,uBAAuB,CACrC,UAA4B,EAC5B,MAAc;IAEd,OAAO;QACL,mDAAmD;OAChD,UAAU,CAAC,GAAG,CAAC,UAAC,QAAQ,EAAE,CAAC;;QAC5B,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,EAAE;YACxC,OAAO,YAAK,MAAM,SAAG,CAAC,kEAClB,MAAM,SAAG,QAAQ,CAAC,MAAM,cAAI,QAAQ,CAAC,IAAI,yBACzC,MAAA,QAAQ,CAAC,UAAU,0CACjB,GAAG,CACH,UAAC,CAAC,EAAE,CAAC;gBACH,OAAA,YAAK,MAAM,SAAG,MAAM,SAAG,MAAM,gBAAM,CAAC,cAAI,aAAa,CAAC,CAAC,CAAC,CAAE;YAA1D,CAA0D,EAE7D,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;SACjB;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,mBAAmB,EAAE;YACzC,OAAO,YAAK,MAAM,SAAG,CAAC,uDAA6C,cAAc,CAC9E,QAA0C,CAAC,OAAO,EACnD,UAAG,MAAM,SAAM,CAChB,CAAE,CAAC;SACL;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,EAAE;YACvC,OAAO,YAAK,MAAM,SAAG,CAAC,oEAA0D,cAAc,CAC3F,QAAyC,CAAC,OAAO,EAClD,UAAG,MAAM,SAAM,CAChB,CAAE,CAAC;SACL;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,QACF,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAhCD,0DAgCC"}
@@ -0,0 +1,17 @@
1
+ export * from './pact';
2
+ export * from './types';
3
+ /**
4
+ * Exposes {@link MatchersV3}
5
+ * @memberof Pact
6
+ * @static
7
+ */
8
+ export * as MatchersV3 from './matchers';
9
+ /**
10
+ * Exposes {@link xml}
11
+ * @memberof Pact
12
+ * @static
13
+ */
14
+ export * from './xml/xmlBuilder';
15
+ export * from './xml/xmlElement';
16
+ export * from './xml/xmlNode';
17
+ export * from './xml/xmlText';
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.MatchersV3 = void 0;
30
+ __exportStar(require("./pact"), exports);
31
+ __exportStar(require("./types"), exports);
32
+ /**
33
+ * Exposes {@link MatchersV3}
34
+ * @memberof Pact
35
+ * @static
36
+ */
37
+ exports.MatchersV3 = __importStar(require("./matchers"));
38
+ /**
39
+ * Exposes {@link xml}
40
+ * @memberof Pact
41
+ * @static
42
+ */
43
+ __exportStar(require("./xml/xmlBuilder"), exports);
44
+ __exportStar(require("./xml/xmlElement"), exports);
45
+ __exportStar(require("./xml/xmlNode"), exports);
46
+ __exportStar(require("./xml/xmlText"), exports);
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AAExB;;;;GAIG;AACH,yDAAyC;AAEzC;;;;GAIG;AACH,mDAAiC;AACjC,mDAAiC;AACjC,gDAA8B;AAC9B,gDAA8B"}
@@ -0,0 +1,182 @@
1
+ import { AnyJson } from '../common/jsonTypes';
2
+ /**
3
+ * Pact Matcher
4
+ */
5
+ export interface Matcher<T> {
6
+ 'pact:matcher:type': string;
7
+ 'pact:generator:type'?: string;
8
+ value?: T;
9
+ }
10
+ export declare type AnyTemplate = AnyJson | TemplateMap | TemplateArray | Matcher<unknown>;
11
+ interface TemplateMap {
12
+ [key: string]: AnyJson | AnyTemplate;
13
+ }
14
+ declare type TemplateArray = Array<AnyTemplate>;
15
+ /**
16
+ * Value must match the given template
17
+ * @param template Template to base the comparison on
18
+ */
19
+ export declare const like: <T extends AnyTemplate>(template: T) => Matcher<T>;
20
+ /**
21
+ * Object where the key itself is ignored, but the value template must match.
22
+ *
23
+ * @param keyTemplate Example key to use
24
+ * @param template Example value template to base the comparison on
25
+ */
26
+ export declare const eachKeyLike: <T extends AnyTemplate>(keyTemplate: string, template: T) => Matcher<AnyTemplate>;
27
+ /**
28
+ * Array where each element must match the given template
29
+ * @param template Template to base the comparison on
30
+ */
31
+ export declare const eachLike: <T extends AnyTemplate>(template: T) => Matcher<T[]>;
32
+ /**
33
+ * Like Matcher with a minimum number of required values
34
+ */
35
+ export interface MinLikeMatcher<T> extends Matcher<T> {
36
+ min: number;
37
+ }
38
+ /**
39
+ * An array that has to have at least one element and each element must match the given template
40
+ * @param template Template to base the comparison on
41
+ * @param count Number of examples to generate, defaults to one
42
+ */
43
+ export declare const atLeastOneLike: <T extends AnyTemplate>(template: T, count?: number) => MinLikeMatcher<T[]>;
44
+ /**
45
+ * An array that has to have at least the required number of elements and each element must match the given template
46
+ * @param template Template to base the comparison on
47
+ * @param min Minimum number of elements required in the array
48
+ * @param count Number of examples to generate, defaults to min
49
+ */
50
+ export declare const atLeastLike: <T extends AnyTemplate>(template: T, min: number, count?: number) => MinLikeMatcher<T[]>;
51
+ /**
52
+ * Like Matcher with a maximum number of required values
53
+ */
54
+ export interface MaxLikeMatcher<T> extends Matcher<T> {
55
+ max: number;
56
+ }
57
+ /**
58
+ * An array that has to have at most the required number of elements and each element must match the given template
59
+ * @param template Template to base the comparison on
60
+ * @param max Maximum number of elements required in the array
61
+ * @param count Number of examples to generate, defaults to one
62
+ */
63
+ export declare const atMostLike: <T extends AnyTemplate>(template: T, max: number, count?: number) => MaxLikeMatcher<T[]>;
64
+ /**
65
+ * An array whose size is constrained to the minimum and maximum number of elements and each element must match the given template
66
+ * @param template Template to base the comparison on
67
+ * @param min Minimum number of elements required in the array
68
+ * @param max Maximum number of elements required in the array
69
+ * @param count Number of examples to generate, defaults to one
70
+ */
71
+ export declare const constrainedArrayLike: <T extends AnyTemplate>(template: T, min: number, max: number, count?: number) => MinLikeMatcher<T[]> & MaxLikeMatcher<T[]>;
72
+ /**
73
+ * Value must be a boolean
74
+ * @param b Boolean example value. Defaults to true if unsupplied
75
+ */
76
+ export declare const boolean: (b?: boolean) => Matcher<boolean>;
77
+ /**
78
+ * Value must be an integer (must be a number and have no decimal places)
79
+ * @param int Example value. If omitted a random value will be generated.
80
+ */
81
+ export declare const integer: (int?: number) => Matcher<number>;
82
+ /**
83
+ * Value must be a decimal number (must be a number and have decimal places)
84
+ * @param num Example value. If omitted a random value will be generated.
85
+ */
86
+ export declare const decimal: (num?: number) => Matcher<number>;
87
+ /**
88
+ * Value must be a number
89
+ * @param num Example value. If omitted a random integer value will be generated.
90
+ */
91
+ export declare function number(num?: number): Matcher<number>;
92
+ /**
93
+ * Value must be a string
94
+ * @param str Example value
95
+ */
96
+ export declare function string(str: string): Matcher<string>;
97
+ export interface RegexMatcher extends Matcher<string> {
98
+ regex: string;
99
+ example?: string;
100
+ }
101
+ /**
102
+ * Value that must match the given regular expression
103
+ * @param pattern Regular Expression to match
104
+ * @param str Example value
105
+ */
106
+ export declare function regex(pattern: RegExp | string, str: string): RegexMatcher;
107
+ /**
108
+ * Value that must be equal to the example. This is mainly used to reset the matching rules which cascade.
109
+ * @param value Example value
110
+ */
111
+ export declare const equal: <T extends AnyTemplate>(value: T) => Matcher<T>;
112
+ export interface DateTimeMatcher extends Matcher<string> {
113
+ format: string;
114
+ }
115
+ /**
116
+ * String value that must match the provided datetime format string.
117
+ * @param format Datetime format string. See [Java SimpleDateFormat](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)
118
+ * @param example Example value to use. If omitted a value using the current system date and time will be generated.
119
+ */
120
+ export declare function datetime(format: string, example: string): DateTimeMatcher;
121
+ /**
122
+ * String value that must match the provided datetime format string.
123
+ * @param format Datetime format string. See [Java SimpleDateFormat](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)
124
+ * @param example Example value to use. If omitted a value using the current system date and time will be generated.
125
+ */
126
+ export declare function timestamp(format: string, example: string): DateTimeMatcher;
127
+ /**
128
+ * String value that must match the provided time format string.
129
+ * @param format Time format string. See [Java SimpleDateFormat](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)
130
+ * @param example Example value to use. If omitted a value using the current system time will be generated.
131
+ */
132
+ export declare function time(format: string, example: string): DateTimeMatcher;
133
+ /**
134
+ * String value that must match the provided date format string.
135
+ * @param format Date format string. See [Java SimpleDateFormat](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)
136
+ * @param example Example value to use. If omitted a value using the current system date will be generated.
137
+ */
138
+ export declare function date(format: string, example: string): DateTimeMatcher;
139
+ /**
140
+ * Value that must include the example value as a substring.
141
+ * @param value String value to include
142
+ */
143
+ export declare function includes(value: string): Matcher<string>;
144
+ /**
145
+ * Value that must be null. This will only match the JSON Null value. For other content types, it will
146
+ * match if the attribute is missing.
147
+ */
148
+ export declare function nullValue(): Matcher<null>;
149
+ /**
150
+ * Matches a URL composed of a base path and a list of path fragments
151
+ * @param basePath Base path of the URL. If null, will use the base URL from the mock server.
152
+ * @param pathFragments list of path fragments, can be regular expressions
153
+ */
154
+ export declare function url2(basePath: string | null, pathFragments: Array<string | RegexMatcher | RegExp>): RegexMatcher;
155
+ /**
156
+ * Matches a URL composed of a list of path fragments. The base URL from the mock server will be used.
157
+ * @param pathFragments list of path fragments, can be regular expressions
158
+ */
159
+ export declare function url(pathFragments: Array<string | RegexMatcher | RegExp>): RegexMatcher;
160
+ export interface ArrayContainsMatcher extends Matcher<AnyTemplate[]> {
161
+ variants: Array<AnyTemplate>;
162
+ }
163
+ /**
164
+ * Matches the items in an array against a number of variants. Matching is successful if each variant
165
+ * occurs once in the array. Variants may be objects containing matching rules.
166
+ */
167
+ export declare function arrayContaining(...variants: AnyTemplate[]): ArrayContainsMatcher;
168
+ export interface ProviderStateInjectedValue<T> extends Matcher<T> {
169
+ expression: string;
170
+ }
171
+ /**
172
+ * Marks an item to be injected from the provider state
173
+ * @param expression Expression to lookup in the provider state context
174
+ * @param exampleValue Example value to use in the consumer test
175
+ */
176
+ export declare function fromProviderState<V extends AnyJson>(expression: string, exampleValue: V): ProviderStateInjectedValue<V>;
177
+ /**
178
+ * Match a universally unique identifier (UUID). Random values will be used for examples if no example is given.
179
+ */
180
+ export declare function uuid(example?: string): RegexMatcher;
181
+ export declare const matcherValueOrString: (obj: unknown) => string;
182
+ export {};