@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
package/httpPact.spec.js DELETED
@@ -1,337 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- /* tslint:disable:no-unused-expression object-literal-sort-keys max-classes-per-file no-empty no-console no-string-literal*/
40
- var chai = require("chai");
41
- var chaiAsPromised = require("chai-as-promised");
42
- var sinon = require("sinon");
43
- var sinonChai = require("sinon-chai");
44
- var request_1 = require("./common/request");
45
- var interaction_1 = require("./dsl/interaction");
46
- var mockService_1 = require("./dsl/mockService");
47
- var pact_node_1 = require("@pact-foundation/pact-node");
48
- var httpPact_1 = require("./httpPact");
49
- var ts_mock_imports_1 = require("ts-mock-imports");
50
- // Mock out the PactNode interfaces
51
- var PactServer = /** @class */ (function () {
52
- function PactServer() {
53
- }
54
- PactServer.prototype.start = function () { };
55
- PactServer.prototype.delete = function () { };
56
- return PactServer;
57
- }());
58
- chai.use(sinonChai);
59
- chai.use(chaiAsPromised);
60
- var expect = chai.expect;
61
- describe("Pact", function () {
62
- var pact;
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: "overwrite",
73
- };
74
- before(function () {
75
- // Stub out pact-node
76
- var manager = ts_mock_imports_1.ImportMock.mockClass(pact_node_1.default, "createServer");
77
- manager.mock("createServer", function () { });
78
- });
79
- beforeEach(function () {
80
- pact = Object.create(httpPact_1.Pact.prototype);
81
- pact.opts = fullOpts;
82
- });
83
- afterEach(function () {
84
- sinon.restore();
85
- // return serviceFactory.removeAllServers()
86
- });
87
- describe("#constructor", function () {
88
- it("throws Error when consumer not provided", function () {
89
- expect(function () {
90
- new httpPact_1.Pact({ consumer: "", provider: "provider" });
91
- }).to.throw(Error, "You must specify a Consumer for this pact.");
92
- });
93
- it("throws Error when provider not provided", function () {
94
- expect(function () {
95
- new httpPact_1.Pact({ consumer: "someconsumer", provider: "" });
96
- }).to.throw(Error, "You must specify a Provider for this pact.");
97
- });
98
- });
99
- describe("#createOptionsWithDefault", function () {
100
- var constructorOpts = {
101
- consumer: "A",
102
- provider: "B",
103
- };
104
- it("merges options with sensible defaults", function () {
105
- var opts = httpPact_1.Pact.createOptionsWithDefaults(constructorOpts);
106
- expect(opts.consumer).to.eq("A");
107
- expect(opts.provider).to.eq("B");
108
- expect(opts.cors).to.eq(false);
109
- expect(opts.host).to.eq("127.0.0.1");
110
- expect(opts.logLevel).to.eq("info");
111
- expect(opts.spec).to.eq(2);
112
- expect(opts.dir).not.to.be.empty;
113
- expect(opts.log).not.to.be.empty;
114
- expect(opts.pactfileWriteMode).to.eq("overwrite");
115
- expect(opts.ssl).to.eq(false);
116
- expect(opts.sslcert).to.eq(undefined);
117
- expect(opts.sslkey).to.eq(undefined);
118
- });
119
- });
120
- describe("#setup", function () {
121
- var serverMock = {
122
- start: function () { return Promise.resolve(); },
123
- options: { port: 1234 },
124
- logLevel: function (a) { },
125
- };
126
- describe("when server is not properly configured", function () {
127
- describe("and pact-node is unable to start the server", function () {
128
- it("returns a rejected promise", function () { return __awaiter(void 0, void 0, void 0, function () {
129
- var p;
130
- return __generator(this, function (_a) {
131
- p = new httpPact_1.Pact(fullOpts);
132
- p.server = {
133
- start: function () { return Promise.reject("pact-node error"); },
134
- options: { port: 1234 },
135
- };
136
- return [2 /*return*/, expect(p.setup()).to.eventually.be.rejectedWith("pact-node error")];
137
- });
138
- }); });
139
- });
140
- });
141
- describe("when server is properly configured", function () {
142
- it("starts the mock server in the background", function () {
143
- var p = new httpPact_1.Pact(fullOpts);
144
- p.server = serverMock;
145
- return expect(p.setup()).to.eventually.be.fulfilled;
146
- });
147
- });
148
- describe("when server is properly configured", function () {
149
- it("returns the current configuration", function () {
150
- var p = new httpPact_1.Pact(fullOpts);
151
- p.server = serverMock;
152
- return expect(p.setup()).to.eventually.include({
153
- consumer: "A",
154
- provider: "B",
155
- port: 1234,
156
- host: "127.0.0.1",
157
- ssl: false,
158
- logLevel: "info",
159
- spec: 2,
160
- cors: false,
161
- pactfileWriteMode: "overwrite",
162
- });
163
- });
164
- });
165
- });
166
- describe("#addInteraction", function () {
167
- var interaction = {
168
- state: "i have a list of projects",
169
- uponReceiving: "a request for projects",
170
- withRequest: {
171
- method: request_1.HTTPMethod.GET,
172
- path: "/projects",
173
- headers: { Accept: "application/json" },
174
- },
175
- willRespondWith: {
176
- status: 200,
177
- headers: { "Content-Type": "application/json" },
178
- body: {},
179
- },
180
- };
181
- describe("when given a provider state", function () {
182
- it("creates interaction with state", function () {
183
- pact.mockService = {
184
- addInteraction: function (int) { return Promise.resolve(int.state); },
185
- };
186
- return expect(pact.addInteraction(interaction)).to.eventually.have.property("providerState");
187
- });
188
- });
189
- describe("when not given a provider state", function () {
190
- it("creates interaction with no state", function () {
191
- pact.mockService = {
192
- addInteraction: function (int) { return Promise.resolve(int.state); },
193
- };
194
- interaction.state = undefined;
195
- return expect(pact.addInteraction(interaction)).to.eventually.not.have.property("providerState");
196
- });
197
- describe("when given an Interaction as a builder", function () {
198
- it("creates interaction", function () {
199
- var interaction2 = new interaction_1.Interaction()
200
- .given("i have a list of projects")
201
- .uponReceiving("a request for projects")
202
- .withRequest({
203
- method: request_1.HTTPMethod.GET,
204
- path: "/projects",
205
- headers: { Accept: "application/json" },
206
- })
207
- .willRespondWith({
208
- status: 200,
209
- headers: { "Content-Type": "application/json" },
210
- body: {},
211
- });
212
- pact.mockService = {
213
- addInteraction: function (int) {
214
- return Promise.resolve(int);
215
- },
216
- };
217
- return expect(pact.addInteraction(interaction2)).to.eventually.have.property("given");
218
- });
219
- });
220
- });
221
- });
222
- describe("#verify", function () {
223
- describe("when pact verification is successful", function () {
224
- it("returns a successful promise and remove interactions", function () {
225
- pact.mockService = {
226
- verify: function () { return Promise.resolve("verified!"); },
227
- removeInteractions: function () { return Promise.resolve("removeInteractions"); },
228
- };
229
- var verifyPromise = pact.verify();
230
- return Promise.all([
231
- expect(verifyPromise).to.eventually.eq("removeInteractions"),
232
- expect(verifyPromise).to.eventually.be.fulfilled,
233
- ]);
234
- });
235
- });
236
- describe("when pact verification is unsuccessful", function () {
237
- it("throws an error", function () {
238
- var removeInteractionsStub = sinon
239
- .stub(mockService_1.MockService.prototype, "removeInteractions")
240
- .resolves("removeInteractions");
241
- pact.mockService = {
242
- verify: function () { return Promise.reject("not verified!"); },
243
- removeInteractions: removeInteractionsStub,
244
- };
245
- var verifyPromise = pact.verify();
246
- return Promise.all([
247
- expect(verifyPromise).to.eventually.be.rejectedWith(Error),
248
- verifyPromise.catch(function () {
249
- return expect(removeInteractionsStub).to.callCount(1);
250
- }),
251
- ]);
252
- });
253
- });
254
- describe("when pact verification is successful", function () {
255
- describe("and an error is thrown in the cleanup", function () {
256
- it("throws an error", function () {
257
- pact.mockService = {
258
- verify: function () { return Promise.resolve("verified!"); },
259
- removeInteractions: function () {
260
- throw new Error("error removing interactions");
261
- },
262
- };
263
- return expect(pact.verify()).to.eventually.be.rejectedWith(Error);
264
- });
265
- });
266
- });
267
- });
268
- describe("#finalize", function () {
269
- describe("when writing Pact is successful", function () {
270
- it("returns a successful promise and shuts down down the mock server", function () {
271
- pact.mockService = {
272
- writePact: function () { return Promise.resolve("pact file written!"); },
273
- removeInteractions: sinon.stub(),
274
- };
275
- pact.server = {
276
- delete: function () { return Promise.resolve(); },
277
- };
278
- return expect(pact.finalize()).to.eventually.be.fulfilled;
279
- });
280
- });
281
- describe("when writing Pact is unsuccessful", function () {
282
- it("throws an error and shuts down the server", function () {
283
- pact.mockService = {
284
- writePact: function () { return Promise.reject(new Error("pact not file written!")); },
285
- removeInteractions: sinon.stub(),
286
- };
287
- var deleteStub = sinon.stub(PactServer.prototype, "delete").resolves();
288
- pact.server = { delete: deleteStub };
289
- return expect(pact.finalize()).to.eventually.be.rejected.then(function () {
290
- return expect(deleteStub).to.callCount(1);
291
- });
292
- });
293
- });
294
- describe("when writing pact is successful and shutting down the mock server is unsuccessful", function () {
295
- it("throws an error", function () {
296
- pact.mockService = {
297
- writePact: sinon.stub(),
298
- removeInteractions: sinon.stub(),
299
- };
300
- pact.server = {
301
- delete: function () { return Promise.reject(); },
302
- };
303
- return expect(pact.finalize).to.throw(Error);
304
- });
305
- });
306
- });
307
- describe("#writePact", function () {
308
- describe("when writing Pact is successful", function () {
309
- it("returns a successful promise", function () {
310
- pact.mockService = {
311
- writePact: function () { return Promise.resolve("pact file written!"); },
312
- removeInteractions: sinon.stub(),
313
- };
314
- var writePactPromise = pact.writePact();
315
- return Promise.all([
316
- expect(writePactPromise).to.eventually.eq("pact file written!"),
317
- expect(writePactPromise).to.eventually.be.fulfilled,
318
- ]);
319
- });
320
- });
321
- });
322
- describe("#removeInteractions", function () {
323
- describe("when removing interactions is successful", function () {
324
- it("returns a successful promise", function () {
325
- pact.mockService = {
326
- removeInteractions: function () { return Promise.resolve("interactions removed!"); },
327
- };
328
- var removeInteractionsPromise = pact.removeInteractions();
329
- return Promise.all([
330
- expect(removeInteractionsPromise).to.eventually.eq("interactions removed!"),
331
- expect(removeInteractionsPromise).to.eventually.be.fulfilled,
332
- ]);
333
- });
334
- });
335
- });
336
- });
337
- //# sourceMappingURL=httpPact.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"httpPact.spec.js","sourceRoot":"","sources":["../src/httpPact.spec.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- /**
2
- * @module Message
3
- */
4
- import { Metadata, Message, MessageConsumer } from "./dsl/message";
5
- import { MessageConsumerOptions } from "./dsl/options";
6
- /**
7
- * A Message Consumer is analagous to a Provider in the HTTP Interaction model.
8
- * It is the receiver of an interaction, and needs to be able to handle whatever
9
- * request was provided.
10
- */
11
- export declare class MessageConsumerPact {
12
- private config;
13
- private state;
14
- constructor(config: MessageConsumerOptions);
15
- /**
16
- * Gives a state the provider should be in for this Message.
17
- *
18
- * @param {string} providerState - The state of the provider.
19
- * @returns {Message} MessageConsumer
20
- */
21
- given(providerState: string): this;
22
- /**
23
- * A free style description of the Message.
24
- *
25
- * @param {string} description - A description of the Message to be received
26
- * @returns {Message} MessageConsumer
27
- */
28
- expectsToReceive(description: string): this;
29
- /**
30
- * The content to be received by the message consumer.
31
- *
32
- * May be a JSON document or JSON primitive.
33
- *
34
- * @param {string} content - A description of the Message to be received
35
- * @returns {Message} MessageConsumer
36
- */
37
- withContent(content: any): this;
38
- /**
39
- * Message metadata
40
- *
41
- * @param {string} metadata -
42
- * @returns {Message} MessageConsumer
43
- */
44
- withMetadata(metadata: Metadata): this;
45
- /**
46
- * Returns the Message object created.
47
- *
48
- * @returns {Message}
49
- */
50
- json(): Message;
51
- /**
52
- * Creates a new Pact _message_ interaction to build a testable interaction.
53
- *
54
- * @param handler A message handler, that must be able to consume the given Message
55
- * @returns {Promise}
56
- */
57
- verify(handler: MessageConsumer): Promise<any>;
58
- /**
59
- * Validates the current state of the Message.
60
- *
61
- * @returns {Promise}
62
- */
63
- validate(): Promise<any>;
64
- private getServiceFactory;
65
- }
66
- export declare function synchronousBodyHandler(handler: (body: any) => any): MessageConsumer;
67
- export declare function asynchronousBodyHandler(handler: (body: any) => Promise<any>): MessageConsumer;
@@ -1,161 +0,0 @@
1
- "use strict";
2
- /**
3
- * @module Message
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var lodash_1 = require("lodash");
7
- var matchers_1 = require("./dsl/matchers");
8
- var utils_1 = require("./common/utils");
9
- var logger_1 = require("./common/logger");
10
- var pact_node_1 = require("@pact-foundation/pact-node");
11
- var configurationError_1 = require("./errors/configurationError");
12
- /**
13
- * A Message Consumer is analagous to a Provider in the HTTP Interaction model.
14
- * It is the receiver of an interaction, and needs to be able to handle whatever
15
- * request was provided.
16
- */
17
- var MessageConsumerPact = /** @class */ (function () {
18
- function MessageConsumerPact(config) {
19
- this.config = config;
20
- // Build up a valid Message object
21
- this.state = {};
22
- if (!lodash_1.isEmpty(config.logLevel)) {
23
- pact_node_1.default.logLevel(config.logLevel);
24
- }
25
- }
26
- /**
27
- * Gives a state the provider should be in for this Message.
28
- *
29
- * @param {string} providerState - The state of the provider.
30
- * @returns {Message} MessageConsumer
31
- */
32
- MessageConsumerPact.prototype.given = function (providerState) {
33
- if (providerState) {
34
- // Currently only supports a single state
35
- // but the format needs to be v3 compatible for
36
- // basic interoperability
37
- this.state.providerStates = [
38
- {
39
- name: providerState,
40
- },
41
- ];
42
- }
43
- return this;
44
- };
45
- /**
46
- * A free style description of the Message.
47
- *
48
- * @param {string} description - A description of the Message to be received
49
- * @returns {Message} MessageConsumer
50
- */
51
- MessageConsumerPact.prototype.expectsToReceive = function (description) {
52
- if (lodash_1.isEmpty(description)) {
53
- throw new configurationError_1.default("You must provide a description for the Message.");
54
- }
55
- this.state.description = description;
56
- return this;
57
- };
58
- /**
59
- * The content to be received by the message consumer.
60
- *
61
- * May be a JSON document or JSON primitive.
62
- *
63
- * @param {string} content - A description of the Message to be received
64
- * @returns {Message} MessageConsumer
65
- */
66
- MessageConsumerPact.prototype.withContent = function (content) {
67
- if (lodash_1.isEmpty(content)) {
68
- throw new configurationError_1.default("You must provide a valid JSON document or primitive for the Message.");
69
- }
70
- this.state.contents = content;
71
- return this;
72
- };
73
- /**
74
- * Message metadata
75
- *
76
- * @param {string} metadata -
77
- * @returns {Message} MessageConsumer
78
- */
79
- MessageConsumerPact.prototype.withMetadata = function (metadata) {
80
- if (lodash_1.isEmpty(metadata)) {
81
- throw new configurationError_1.default("You must provide valid metadata for the Message, or none at all");
82
- }
83
- this.state.metadata = metadata;
84
- return this;
85
- };
86
- /**
87
- * Returns the Message object created.
88
- *
89
- * @returns {Message}
90
- */
91
- MessageConsumerPact.prototype.json = function () {
92
- return this.state;
93
- };
94
- /**
95
- * Creates a new Pact _message_ interaction to build a testable interaction.
96
- *
97
- * @param handler A message handler, that must be able to consume the given Message
98
- * @returns {Promise}
99
- */
100
- MessageConsumerPact.prototype.verify = function (handler) {
101
- var _this = this;
102
- logger_1.default.info("Verifying message");
103
- return this.validate()
104
- .then(function () { return handler(matchers_1.extractPayload(lodash_1.cloneDeep(_this.state))); })
105
- .then(function () {
106
- return utils_1.qToPromise(_this.getServiceFactory().createMessage({
107
- consumer: _this.config.consumer,
108
- content: JSON.stringify(_this.state),
109
- dir: _this.config.dir,
110
- pactFileWriteMode: _this.config.pactfileWriteMode,
111
- provider: _this.config.provider,
112
- spec: 3,
113
- }));
114
- });
115
- };
116
- /**
117
- * Validates the current state of the Message.
118
- *
119
- * @returns {Promise}
120
- */
121
- MessageConsumerPact.prototype.validate = function () {
122
- if (isMessage(this.state)) {
123
- return Promise.resolve();
124
- }
125
- return Promise.reject("message has not yet been properly constructed");
126
- };
127
- MessageConsumerPact.prototype.getServiceFactory = function () {
128
- return pact_node_1.default;
129
- };
130
- return MessageConsumerPact;
131
- }());
132
- exports.MessageConsumerPact = MessageConsumerPact;
133
- var isMessage = function (x) {
134
- return x.contents !== undefined;
135
- };
136
- // TODO: create more basic adapters for API handlers
137
- // bodyHandler takes a synchronous function and returns
138
- // a wrapped function that accepts a Message and returns a Promise
139
- function synchronousBodyHandler(handler) {
140
- return function (m) {
141
- var body = m.contents;
142
- return new Promise(function (resolve, reject) {
143
- try {
144
- var res = handler(body);
145
- resolve(res);
146
- }
147
- catch (e) {
148
- reject(e);
149
- }
150
- });
151
- };
152
- }
153
- exports.synchronousBodyHandler = synchronousBodyHandler;
154
- // bodyHandler takes an asynchronous (promisified) function and returns
155
- // a wrapped function that accepts a Message and returns a Promise
156
- // TODO: move this into its own package and re-export?
157
- function asynchronousBodyHandler(handler) {
158
- return function (m) { return handler(m.contents); };
159
- }
160
- exports.asynchronousBodyHandler = asynchronousBodyHandler;
161
- //# sourceMappingURL=messageConsumerPact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messageConsumerPact.js","sourceRoot":"","sources":["../src/messageConsumerPact.ts"],"names":[],"mappings":"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"}