@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,238 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ // @ts-nocheck
54
+ var chai_1 = __importDefault(require("chai"));
55
+ var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
56
+ var sinon_1 = __importDefault(require("sinon"));
57
+ var sinon_chai_1 = __importDefault(require("sinon-chai"));
58
+ var _1 = require(".");
59
+ chai_1.default.use(sinon_chai_1.default);
60
+ chai_1.default.use(chai_as_promised_1.default);
61
+ var expect = chai_1.default.expect;
62
+ describe('Pact', function () {
63
+ var fullOpts = {
64
+ consumer: 'A',
65
+ provider: 'B',
66
+ port: 1234,
67
+ host: '127.0.0.1',
68
+ ssl: false,
69
+ logLevel: 'info',
70
+ spec: 2,
71
+ cors: false,
72
+ pactfileWriteMode: 'merge',
73
+ };
74
+ afterEach(function () {
75
+ sinon_1.default.restore();
76
+ });
77
+ describe('#constructor', function () {
78
+ it('throws Error when consumer not provided', function () {
79
+ expect(function () {
80
+ new _1.Pact({ consumer: '', provider: 'provider' });
81
+ }).to.throw(Error, 'You must specify a Consumer for this pact.');
82
+ });
83
+ it('throws Error when provider not provided', function () {
84
+ expect(function () {
85
+ new _1.Pact({ consumer: 'someconsumer', provider: '' });
86
+ }).to.throw(Error, 'You must specify a Provider for this pact.');
87
+ });
88
+ });
89
+ describe('#createOptionsWithDefault', function () {
90
+ var constructorOpts = {
91
+ consumer: 'A',
92
+ provider: 'B',
93
+ };
94
+ it('merges options with sensible defaults', function () {
95
+ var opts = _1.Pact.createOptionsWithDefaults(constructorOpts);
96
+ expect(opts.consumer).to.eq('A');
97
+ expect(opts.provider).to.eq('B');
98
+ expect(opts.cors).to.eq(false);
99
+ expect(opts.host).to.eq('127.0.0.1');
100
+ expect(opts.logLevel).to.eq('info');
101
+ expect(opts.spec).to.eq(2);
102
+ expect(opts.dir).not.to.be.empty;
103
+ expect(opts.log).not.to.be.empty;
104
+ expect(opts.pactfileWriteMode).to.eq('merge');
105
+ expect(opts.ssl).to.eq(false);
106
+ expect(opts.sslcert).to.eq(undefined);
107
+ expect(opts.sslkey).to.eq(undefined);
108
+ });
109
+ });
110
+ describe('#setup', function () {
111
+ describe('when server is properly configured', function () {
112
+ it('updates the mock service configuration', function () { return __awaiter(void 0, void 0, void 0, function () {
113
+ var p;
114
+ return __generator(this, function (_a) {
115
+ switch (_a.label) {
116
+ case 0:
117
+ p = new _1.Pact(fullOpts);
118
+ return [4 /*yield*/, p.setup()];
119
+ case 1:
120
+ _a.sent();
121
+ expect(p.mockService).to.deep.equal({
122
+ baseUrl: 'http://127.0.0.1:1234',
123
+ pactDetails: {
124
+ pactfile_write_mode: 'merge',
125
+ consumer: {
126
+ name: 'A',
127
+ },
128
+ provider: { name: 'B' },
129
+ },
130
+ });
131
+ return [2 /*return*/];
132
+ }
133
+ });
134
+ }); });
135
+ it('returns the current configuration', function () {
136
+ var p = new _1.Pact(fullOpts);
137
+ return expect(p.setup()).to.eventually.include({
138
+ consumer: 'A',
139
+ provider: 'B',
140
+ port: 1234,
141
+ host: '127.0.0.1',
142
+ ssl: false,
143
+ logLevel: 'info',
144
+ spec: 2,
145
+ cors: false,
146
+ pactfileWriteMode: 'merge',
147
+ });
148
+ });
149
+ });
150
+ describe('when a port is given', function () {
151
+ it('checks if the port is available', function () {
152
+ var p = new _1.Pact(fullOpts);
153
+ return expect(p.setup())
154
+ .to.eventually.have.property('port')
155
+ .eq(fullOpts.port);
156
+ });
157
+ });
158
+ describe('when no port is given', function () {
159
+ it('finds a free port', function () {
160
+ var opts = __assign(__assign({}, fullOpts), { port: undefined });
161
+ var p = new _1.Pact(opts);
162
+ return expect(p.setup()).to.eventually.have.property('port').not
163
+ .undefined;
164
+ });
165
+ });
166
+ });
167
+ describe('#addInteraction', function () {
168
+ // This is more of an integration test, as the function has taken on a lot more
169
+ // responsibility previously covered by other functions during the upgrade to
170
+ // the rust core, to ensure the API remains backwards compatible
171
+ it('sets the correct request and response details on the FFI and starts the mock server', function () {
172
+ var p = new _1.Pact(fullOpts);
173
+ var uponReceiving = sinon_1.default.stub().returns(true);
174
+ var given = sinon_1.default.stub().returns(true);
175
+ var withRequest = sinon_1.default.stub().returns(true);
176
+ var withRequestBody = sinon_1.default.stub().returns(true);
177
+ var withRequestHeader = sinon_1.default.stub().returns(true);
178
+ var withQuery = sinon_1.default.stub().returns(true);
179
+ var withResponseBody = sinon_1.default.stub().returns(true);
180
+ var withResponseHeader = sinon_1.default.stub().returns(true);
181
+ var withStatus = sinon_1.default.stub().returns(true);
182
+ var createMockServer = sinon_1.default.stub().returns(1234);
183
+ var pactMock = {
184
+ createMockServer: createMockServer,
185
+ };
186
+ var interactionMock = {
187
+ uponReceiving: uponReceiving,
188
+ given: given,
189
+ withRequest: withRequest,
190
+ withRequestBody: withRequestBody,
191
+ withRequestHeader: withRequestHeader,
192
+ withQuery: withQuery,
193
+ withResponseBody: withResponseBody,
194
+ withResponseHeader: withResponseHeader,
195
+ withStatus: withStatus,
196
+ };
197
+ p.pact = pactMock;
198
+ p.interaction = interactionMock;
199
+ p.mockService = {};
200
+ p.addInteraction({
201
+ state: 'some state',
202
+ uponReceiving: 'some description',
203
+ withRequest: {
204
+ method: 'GET',
205
+ path: '/',
206
+ body: { foo: 'bar' },
207
+ headers: {
208
+ 'content-type': 'application/json',
209
+ foo: 'bar',
210
+ },
211
+ query: {
212
+ query: 'string',
213
+ foo: 'bar',
214
+ },
215
+ },
216
+ willRespondWith: {
217
+ status: 200,
218
+ body: { baz: 'bat' },
219
+ headers: {
220
+ 'content-type': 'application/hal+json',
221
+ foo: 'bar',
222
+ },
223
+ },
224
+ });
225
+ expect(uponReceiving.calledOnce).to.be.true;
226
+ expect(given.calledOnce).to.be.true;
227
+ expect(withRequest.calledOnce).to.be.true;
228
+ expect(withQuery.calledTwice).to.be.true;
229
+ expect(withRequestHeader.calledTwice).to.be.true;
230
+ expect(withRequestBody.calledOnce).to.be.true;
231
+ expect(withResponseBody.calledOnce).to.be.true;
232
+ expect(withResponseHeader.calledTwice).to.be.true;
233
+ // Pact mock server started
234
+ expect(createMockServer.called).to.be.true;
235
+ });
236
+ });
237
+ });
238
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../src/httpPact/index.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const traceHttpInteractions: () => void;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.traceHttpInteractions = void 0;
18
+ var http_1 = __importDefault(require("http"));
19
+ var logger_1 = __importDefault(require("../common/logger"));
20
+ var traceHttpInteractions = function () {
21
+ var originalRequest = http_1.default.request;
22
+ http_1.default.request = function (options, cb) {
23
+ var requestBodyChunks = [];
24
+ var responseBodyChunks = [];
25
+ var hijackedCallback = function (res) {
26
+ logger_1.default.trace("outgoing request: ".concat(JSON.stringify(__assign(__assign({}, options), { body: Buffer.concat(requestBodyChunks).toString('utf8') }))));
27
+ if (cb) {
28
+ cb(res);
29
+ }
30
+ };
31
+ var clientRequest = originalRequest(options, hijackedCallback);
32
+ var oldWrite = clientRequest.end.bind(clientRequest);
33
+ clientRequest.end = function (chunk) {
34
+ requestBodyChunks.push(Buffer.from(chunk));
35
+ return oldWrite(chunk);
36
+ };
37
+ clientRequest.on('response', function (incoming) {
38
+ incoming.on('readable', function () {
39
+ responseBodyChunks.push(Buffer.from(incoming.read()));
40
+ });
41
+ incoming.on('end', function () {
42
+ logger_1.default.trace("response: ".concat(JSON.stringify({
43
+ body: Buffer.concat(responseBodyChunks).toString('utf8'),
44
+ headers: incoming.headers,
45
+ statusCode: incoming.statusCode,
46
+ })));
47
+ });
48
+ });
49
+ return clientRequest;
50
+ };
51
+ };
52
+ exports.traceHttpInteractions = traceHttpInteractions;
53
+ //# sourceMappingURL=tracing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/httpPact/tracing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA4E;AAE5E,4DAAsC;AAE/B,IAAM,qBAAqB,GAAG;IACnC,IAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC;IACrC,cAAI,CAAC,OAAO,GAAG,UACb,OAAuB,EACvB,EAAkC;QAElC,IAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,IAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,IAAM,gBAAgB,GAAG,UAAC,GAAoB;YAC5C,gBAAM,CAAC,KAAK,CACV,4BAAqB,IAAI,CAAC,SAAS,uBAC9B,OAAO,KACV,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IACvD,CAAE,CACL,CAAC;YACF,IAAI,EAAE,EAAE;gBACN,EAAE,CAAC,GAAG,CAAC,CAAC;aACT;QACH,CAAC,CAAC;QACF,IAAM,aAAa,GAAkB,eAAe,CAClD,OAAO,EACP,gBAAgB,CACjB,CAAC;QACF,IAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,aAAa,CAAC,GAAG,GAAG,UAAC,KAAgD;YACnE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,UAAC,QAAyB;YACrD,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE;gBACtB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;gBACjB,gBAAM,CAAC,KAAK,CACV,oBAAa,IAAI,CAAC,SAAS,CAAC;oBAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACxD,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;iBAChC,CAAC,CAAE,CACL,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,qBAAqB,yBA6ChC"}
@@ -7,68 +7,69 @@
7
7
  * @memberof Pact
8
8
  * @static
9
9
  */
10
- export * from "./httpPact";
10
+ /**
11
+ * Exposes {@link Matchers}
12
+ * To avoid polluting the root module's namespace, re-export
13
+ * Matchers as its own module
14
+ * @memberof Pact
15
+ * @static
16
+ */
17
+ import * as MatchersStar from './dsl/matchers';
18
+ export declare const Matchers: typeof MatchersStar;
19
+ export { InterfaceToTemplate } from './dsl/matchers';
20
+ export { Pact } from './httpPact';
11
21
  /**
12
22
  * Exposes {@link MessageConsumerPact}
13
23
  * @memberof Pact
14
24
  * @static
15
25
  */
16
- export * from "./messageConsumerPact";
26
+ export * from './messageConsumerPact';
17
27
  /**
18
28
  * Exposes {@link MessageProviderPact}
19
29
  * @memberof Pact
20
30
  * @static
21
31
  */
22
- export * from "./messageProviderPact";
32
+ export { MessageProviderPact, providerWithMetadata, } from './messageProviderPact';
23
33
  /**
24
34
  * Exposes {@link Message}
25
35
  * @memberof Pact
26
36
  * @static
27
37
  */
28
- export * from "./dsl/message";
38
+ export * from './dsl/message';
29
39
  /**
30
40
  * Exposes {@link Verifier}
31
41
  * @memberof Pact
32
42
  * @static
33
43
  */
34
- export * from "./dsl/verifier";
44
+ export * from './dsl/verifier/verifier';
35
45
  /**
36
46
  * Exposes {@link GraphQL}
37
47
  * @memberof Pact
38
48
  * @static
39
49
  */
40
- export * from "./dsl/graphql";
50
+ export * from './dsl/graphql';
41
51
  /**
42
52
  * Exposes {@link ApolloGraphQL}
43
53
  * @memberof Pact
44
54
  * @static
45
55
  */
46
- export * from "./dsl/apolloGraphql";
47
- /**
48
- * Exposes {@link Matchers}
49
- * To avoid polluting the root module's namespace, re-export
50
- * Matchers as its owns module
51
- * @memberof Pact
52
- * @static
53
- */
54
- import * as Matchers from "./dsl/matchers";
55
- export import Matchers = Matchers;
56
+ export * from './dsl/apolloGraphql';
56
57
  /**
57
58
  * Exposes {@link Interaction}
58
59
  * @memberof Pact
59
60
  * @static
60
61
  */
61
- export * from "./dsl/interaction";
62
+ export * from './dsl/interaction';
62
63
  /**
63
64
  * Exposes {@link MockService}
64
65
  * @memberof Pact
65
66
  * @static
66
67
  */
67
- export * from "./dsl/mockService";
68
- export * from "./v3";
68
+ export * from './dsl/mockService';
69
+ export * from './v3';
69
70
  /**
70
- * Exposes {@link Publisher}
71
+ * Exposes {@link PactOptions}
71
72
  * @memberof Pact
72
73
  * @static
73
74
  */
74
- export * from "./dsl/publisher";
75
+ export * from './dsl/options';
package/src/index.js ADDED
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Pact module meta package.
4
+ * @module Pact
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
30
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.providerWithMetadata = exports.MessageProviderPact = exports.Pact = exports.Matchers = void 0;
34
+ /**
35
+ * Exposes {@link Pact}
36
+ * @memberof Pact
37
+ * @static
38
+ */
39
+ /**
40
+ * Exposes {@link Matchers}
41
+ * To avoid polluting the root module's namespace, re-export
42
+ * Matchers as its own module
43
+ * @memberof Pact
44
+ * @static
45
+ */
46
+ var MatchersStar = __importStar(require("./dsl/matchers"));
47
+ exports.Matchers = MatchersStar;
48
+ var httpPact_1 = require("./httpPact");
49
+ Object.defineProperty(exports, "Pact", { enumerable: true, get: function () { return httpPact_1.Pact; } });
50
+ /**
51
+ * Exposes {@link MessageConsumerPact}
52
+ * @memberof Pact
53
+ * @static
54
+ */
55
+ __exportStar(require("./messageConsumerPact"), exports);
56
+ /**
57
+ * Exposes {@link MessageProviderPact}
58
+ * @memberof Pact
59
+ * @static
60
+ */
61
+ var messageProviderPact_1 = require("./messageProviderPact");
62
+ Object.defineProperty(exports, "MessageProviderPact", { enumerable: true, get: function () { return messageProviderPact_1.MessageProviderPact; } });
63
+ Object.defineProperty(exports, "providerWithMetadata", { enumerable: true, get: function () { return messageProviderPact_1.providerWithMetadata; } });
64
+ /**
65
+ * Exposes {@link Message}
66
+ * @memberof Pact
67
+ * @static
68
+ */
69
+ __exportStar(require("./dsl/message"), exports);
70
+ /**
71
+ * Exposes {@link Verifier}
72
+ * @memberof Pact
73
+ * @static
74
+ */
75
+ __exportStar(require("./dsl/verifier/verifier"), exports);
76
+ /**
77
+ * Exposes {@link GraphQL}
78
+ * @memberof Pact
79
+ * @static
80
+ */
81
+ __exportStar(require("./dsl/graphql"), exports);
82
+ /**
83
+ * Exposes {@link ApolloGraphQL}
84
+ * @memberof Pact
85
+ * @static
86
+ */
87
+ __exportStar(require("./dsl/apolloGraphql"), exports);
88
+ /**
89
+ * Exposes {@link Interaction}
90
+ * @memberof Pact
91
+ * @static
92
+ */
93
+ __exportStar(require("./dsl/interaction"), exports);
94
+ /**
95
+ * Exposes {@link MockService}
96
+ * @memberof Pact
97
+ * @static
98
+ */
99
+ __exportStar(require("./dsl/mockService"), exports);
100
+ __exportStar(require("./v3"), exports);
101
+ /**
102
+ * Exposes {@link PactOptions}
103
+ * @memberof Pact
104
+ * @static
105
+ */
106
+ __exportStar(require("./dsl/options"), exports);
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AACH,2DAA+C;AAElC,QAAA,QAAQ,GAAG,YAAY,CAAC;AAIrC,uCAAkC;AAAzB,gGAAA,IAAI,OAAA;AAEb;;;;GAIG;AACH,wDAAsC;AAEtC;;;;GAIG;AACH,6DAG+B;AAF7B,0HAAA,mBAAmB,OAAA;AACnB,2HAAA,oBAAoB,OAAA;AAGtB;;;;GAIG;AACH,gDAA8B;AAE9B;;;;GAIG;AACH,0DAAwC;AAExC;;;;GAIG;AACH,gDAA8B;AAC9B;;;;GAIG;AACH,sDAAoC;AAEpC;;;;GAIG;AACH,oDAAkC;AAElC;;;;GAIG;AACH,oDAAkC;AAElC,uCAAqB;AAErB;;;;GAIG;AACH,gDAA8B"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @module Message
3
+ */
4
+ /// <reference types="node" />
5
+ import { AnyJson } from './common/jsonTypes';
6
+ import { AnyTemplate } from './dsl/matchers';
7
+ import { Metadata, Message, MessageConsumer, ProviderState } from './dsl/message';
8
+ import { MessageConsumerOptions } from './dsl/options';
9
+ /**
10
+ * A Message Consumer is analagous to a Provider in the HTTP Interaction model.
11
+ * It is the receiver of an interaction, and needs to be able to handle whatever
12
+ * request was provided.
13
+ */
14
+ export declare class MessageConsumerPact {
15
+ private config;
16
+ private state;
17
+ private pact;
18
+ private message;
19
+ constructor(config: MessageConsumerOptions);
20
+ /**
21
+ * Gives a state the provider should be in for this Message.
22
+ *
23
+ * @param {string} state - The state of the provider.
24
+ * @returns {Message} MessageConsumer
25
+ */
26
+ given(state: string | ProviderState): MessageConsumerPact;
27
+ /**
28
+ * A free style description of the Message.
29
+ *
30
+ * @param {string} description - A description of the Message to be received
31
+ * @returns {Message} MessageConsumer
32
+ */
33
+ expectsToReceive(description: string): MessageConsumerPact;
34
+ /**
35
+ * The JSON object to be received by the message consumer.
36
+ *
37
+ * May be a JSON object or JSON primitive. The contents must be able to be properly
38
+ * strigified and parse (i.e. via JSON.stringify and JSON.parse).
39
+ *
40
+ * @param {string} content - A description of the Message to be received
41
+ * @returns {Message} MessageConsumer
42
+ */
43
+ withContent(content: AnyTemplate): MessageConsumerPact;
44
+ /**
45
+ * The text content to be received by the message consumer.
46
+ *
47
+ * May be any text
48
+ *
49
+ * @param {string} content - A description of the Message to be received
50
+ * @returns {Message} MessageConsumer
51
+ */
52
+ withTextContent(content: string, contentType: string): MessageConsumerPact;
53
+ /**
54
+ * The binary content to be received by the message consumer.
55
+ *
56
+ * Content will be stored in base64 in the resulting pact file.
57
+ *
58
+ * @param {Buffer} content - A buffer containing the binary content
59
+ * @param {String} contenttype - The mime type of the content to expect
60
+ * @returns {Message} MessageConsumer
61
+ */
62
+ withBinaryContent(content: Buffer, contentType: string): MessageConsumerPact;
63
+ /**
64
+ * Message metadata.
65
+ *
66
+ * @param {string} metadata -
67
+ * @returns {Message} MessageConsumer
68
+ */
69
+ withMetadata(metadata: Metadata): MessageConsumerPact;
70
+ /**
71
+ * Creates a new Pact _message_ interaction to build a testable interaction.
72
+ *
73
+ * @param handler A message handler, that must be able to consume the given Message
74
+ * @returns {Promise}
75
+ */
76
+ verify(handler: MessageConsumer): Promise<unknown>;
77
+ private reifiedContent;
78
+ /**
79
+ * Returns the Message object created.
80
+ *
81
+ * @returns {Message}
82
+ */
83
+ json(): Message;
84
+ }
85
+ export declare function synchronousBodyHandler<R>(handler: (body: AnyJson | Buffer) => R): MessageConsumer;
86
+ export declare function asynchronousBodyHandler<R>(handler: (body: AnyJson | Buffer) => Promise<R>): MessageConsumer;