@pact-foundation/pact 16.3.1 → 16.5.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 (261) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/CONTRIBUTING.md +2 -2
  3. package/README.md +22 -12
  4. package/package.json +26 -47
  5. package/scripts/ci/build-and-test.sh +0 -3
  6. package/scripts/install-plugins.js +104 -0
  7. package/src/common/graphQL/configurationError.js +2 -22
  8. package/src/common/graphQL/configurationError.js.map +1 -1
  9. package/src/common/graphQL/graphQL.d.ts +2 -2
  10. package/src/common/graphQL/graphQL.js +11 -14
  11. package/src/common/graphQL/graphQL.js.map +1 -1
  12. package/src/common/graphQL/graphQLQueryError.js +2 -22
  13. package/src/common/graphQL/graphQLQueryError.js.map +1 -1
  14. package/src/common/logger.js +9 -9
  15. package/src/common/logger.js.map +1 -1
  16. package/src/common/matchingRules.d.ts +7 -1
  17. package/src/common/matchingRules.js +42 -22
  18. package/src/common/matchingRules.js.map +1 -1
  19. package/src/common/net.js +36 -42
  20. package/src/common/net.js.map +1 -1
  21. package/src/common/net.spec.js +39 -87
  22. package/src/common/net.spec.js.map +1 -1
  23. package/src/common/request.js +33 -82
  24. package/src/common/request.js.map +1 -1
  25. package/src/common/request.spec.js +29 -73
  26. package/src/common/request.spec.js.map +1 -1
  27. package/src/common/spec.js +3 -4
  28. package/src/common/spec.js.map +1 -1
  29. package/src/dsl/apolloGraphql.js +7 -25
  30. package/src/dsl/apolloGraphql.js.map +1 -1
  31. package/src/dsl/apolloGraphql.spec.js +21 -58
  32. package/src/dsl/apolloGraphql.spec.js.map +1 -1
  33. package/src/dsl/graphql.d.ts +2 -2
  34. package/src/dsl/graphql.js +29 -48
  35. package/src/dsl/graphql.js.map +1 -1
  36. package/src/dsl/graphql.spec.js +92 -117
  37. package/src/dsl/graphql.spec.js.map +1 -1
  38. package/src/dsl/interaction.d.ts +2 -2
  39. package/src/dsl/interaction.js +41 -48
  40. package/src/dsl/interaction.js.map +1 -1
  41. package/src/dsl/interaction.spec.js +109 -132
  42. package/src/dsl/interaction.spec.js.map +1 -1
  43. package/src/dsl/matchers.d.ts +2 -3
  44. package/src/dsl/matchers.js +19 -31
  45. package/src/dsl/matchers.js.map +1 -1
  46. package/src/dsl/matchers.spec.js +279 -289
  47. package/src/dsl/matchers.spec.js.map +1 -1
  48. package/src/dsl/message.d.ts +3 -3
  49. package/src/dsl/options.d.ts +3 -3
  50. package/src/dsl/verifier/proxy/hooks.d.ts +2 -2
  51. package/src/dsl/verifier/proxy/hooks.js +42 -112
  52. package/src/dsl/verifier/proxy/hooks.js.map +1 -1
  53. package/src/dsl/verifier/proxy/hooks.spec.js +86 -199
  54. package/src/dsl/verifier/proxy/hooks.spec.js.map +1 -1
  55. package/src/dsl/verifier/proxy/messages.d.ts +2 -2
  56. package/src/dsl/verifier/proxy/messages.js +88 -106
  57. package/src/dsl/verifier/proxy/messages.js.map +1 -1
  58. package/src/dsl/verifier/proxy/parseBody.d.ts +1 -1
  59. package/src/dsl/verifier/proxy/parseBody.js +3 -3
  60. package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
  61. package/src/dsl/verifier/proxy/parseBody.spec.js +35 -113
  62. package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -1
  63. package/src/dsl/verifier/proxy/proxy.d.ts +2 -2
  64. package/src/dsl/verifier/proxy/proxy.js +22 -26
  65. package/src/dsl/verifier/proxy/proxy.js.map +1 -1
  66. package/src/dsl/verifier/proxy/proxy.spec.js +11 -53
  67. package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
  68. package/src/dsl/verifier/proxy/proxyRequest.d.ts +3 -3
  69. package/src/dsl/verifier/proxy/proxyRequest.js +7 -7
  70. package/src/dsl/verifier/proxy/proxyRequest.js.map +1 -1
  71. package/src/dsl/verifier/proxy/proxyRequest.spec.js +54 -104
  72. package/src/dsl/verifier/proxy/proxyRequest.spec.js.map +1 -1
  73. package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +3 -3
  74. package/src/dsl/verifier/proxy/stateHandler/setupStates.js +14 -18
  75. package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
  76. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +76 -193
  77. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
  78. package/src/dsl/verifier/proxy/stateHandler/stateHandler.d.ts +2 -2
  79. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +23 -72
  80. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
  81. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +37 -122
  82. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
  83. package/src/dsl/verifier/proxy/tracer.d.ts +1 -1
  84. package/src/dsl/verifier/proxy/tracer.js +42 -35
  85. package/src/dsl/verifier/proxy/tracer.js.map +1 -1
  86. package/src/dsl/verifier/proxy/types.d.ts +5 -5
  87. package/src/dsl/verifier/types.d.ts +3 -3
  88. package/src/dsl/verifier/verifier.d.ts +5 -1
  89. package/src/dsl/verifier/verifier.js +53 -60
  90. package/src/dsl/verifier/verifier.js.map +1 -1
  91. package/src/dsl/verifier/verifier.spec.js +84 -151
  92. package/src/dsl/verifier/verifier.spec.js.map +1 -1
  93. package/src/errors/configurationError.js +2 -22
  94. package/src/errors/configurationError.js.map +1 -1
  95. package/src/errors/graphQLQueryError.js +2 -22
  96. package/src/errors/graphQLQueryError.js.map +1 -1
  97. package/src/errors/matcherError.js +2 -22
  98. package/src/errors/matcherError.js.map +1 -1
  99. package/src/errors/verificationError.js +2 -22
  100. package/src/errors/verificationError.js.map +1 -1
  101. package/src/httpPact/ffi.d.ts +2 -2
  102. package/src/httpPact/ffi.js +28 -29
  103. package/src/httpPact/ffi.js.map +1 -1
  104. package/src/httpPact/ffi.spec.js +40 -83
  105. package/src/httpPact/ffi.spec.js.map +1 -1
  106. package/src/httpPact/index.d.ts +3 -3
  107. package/src/httpPact/index.js +92 -149
  108. package/src/httpPact/index.js.map +1 -1
  109. package/src/httpPact/index.spec.js +102 -195
  110. package/src/httpPact/index.spec.js.map +1 -1
  111. package/src/httpPact/tracing.js +20 -28
  112. package/src/httpPact/tracing.js.map +1 -1
  113. package/src/index.d.ts +25 -25
  114. package/src/index.js +29 -29
  115. package/src/index.js.map +1 -1
  116. package/src/messageConsumerPact.d.ts +5 -5
  117. package/src/messageConsumerPact.js +59 -53
  118. package/src/messageConsumerPact.js.map +1 -1
  119. package/src/messageConsumerPact.spec.js +55 -97
  120. package/src/messageConsumerPact.spec.js.map +1 -1
  121. package/src/messageProviderPact.d.ts +3 -3
  122. package/src/messageProviderPact.js +68 -85
  123. package/src/messageProviderPact.js.map +1 -1
  124. package/src/messageProviderPact.spec.js +96 -123
  125. package/src/messageProviderPact.spec.js.map +1 -1
  126. package/src/pact.integration.spec.js +242 -351
  127. package/src/pact.integration.spec.js.map +1 -1
  128. package/src/v3/display.d.ts +1 -1
  129. package/src/v3/display.js +44 -58
  130. package/src/v3/display.js.map +1 -1
  131. package/src/v3/ffi.js +20 -16
  132. package/src/v3/ffi.js.map +1 -1
  133. package/src/v3/ffi.spec.js +7 -42
  134. package/src/v3/ffi.spec.js.map +1 -1
  135. package/src/v3/graphql/graphQL.d.ts +4 -4
  136. package/src/v3/graphql/graphQL.js +50 -75
  137. package/src/v3/graphql/graphQL.js.map +1 -1
  138. package/src/v3/graphql/index.d.ts +1 -1
  139. package/src/v3/graphql/index.js +1 -1
  140. package/src/v3/graphql/index.js.map +1 -1
  141. package/src/v3/index.d.ts +4 -12
  142. package/src/v3/index.js +4 -12
  143. package/src/v3/index.js.map +1 -1
  144. package/src/v3/matchers.d.ts +15 -3
  145. package/src/v3/matchers.js +131 -148
  146. package/src/v3/matchers.js.map +1 -1
  147. package/src/v3/matchers.spec.js +281 -232
  148. package/src/v3/matchers.spec.js.map +1 -1
  149. package/src/v3/pact.d.ts +2 -2
  150. package/src/v3/pact.js +108 -151
  151. package/src/v3/pact.js.map +1 -1
  152. package/src/v3/pact.spec.js +94 -0
  153. package/src/v3/pact.spec.js.map +1 -0
  154. package/src/v3/types.d.ts +19 -3
  155. package/src/v3/types.js +22 -1
  156. package/src/v3/types.js.map +1 -1
  157. package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +4 -4
  158. package/src/v4/graphql/graphQLInteractionWithRequest.js +21 -17
  159. package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -1
  160. package/src/v4/graphql/graphQLRequestBuilder.d.ts +3 -3
  161. package/src/v4/graphql/graphQLRequestBuilder.js +18 -20
  162. package/src/v4/graphql/graphQLRequestBuilder.js.map +1 -1
  163. package/src/v4/graphql/index.d.ts +6 -6
  164. package/src/v4/graphql/index.js +21 -17
  165. package/src/v4/graphql/index.js.map +1 -1
  166. package/src/v4/graphql/types.d.ts +5 -5
  167. package/src/v4/http/index.d.ts +2 -2
  168. package/src/v4/http/index.js +53 -93
  169. package/src/v4/http/index.js.map +1 -1
  170. package/src/v4/http/index.spec.d.ts +1 -0
  171. package/src/v4/http/index.spec.js +73 -0
  172. package/src/v4/http/index.spec.js.map +1 -0
  173. package/src/v4/http/interactionWithCompleteRequest.d.ts +4 -7
  174. package/src/v4/http/interactionWithCompleteRequest.js +6 -10
  175. package/src/v4/http/interactionWithCompleteRequest.js.map +1 -1
  176. package/src/v4/http/interactionWithPlugin.d.ts +3 -3
  177. package/src/v4/http/interactionWithPlugin.js +14 -11
  178. package/src/v4/http/interactionWithPlugin.js.map +1 -1
  179. package/src/v4/http/interactionWithPluginRequest.d.ts +4 -3
  180. package/src/v4/http/interactionWithPluginRequest.js +17 -9
  181. package/src/v4/http/interactionWithPluginRequest.js.map +1 -1
  182. package/src/v4/http/interactionWithPluginResponse.d.ts +2 -2
  183. package/src/v4/http/interactionWithPluginResponse.js +10 -48
  184. package/src/v4/http/interactionWithPluginResponse.js.map +1 -1
  185. package/src/v4/http/interactionWithRequest.d.ts +4 -3
  186. package/src/v4/http/interactionWithRequest.js +17 -9
  187. package/src/v4/http/interactionWithRequest.js.map +1 -1
  188. package/src/v4/http/interactionWithRequest.spec.d.ts +1 -0
  189. package/src/v4/http/interactionWithRequest.spec.js +82 -0
  190. package/src/v4/http/interactionWithRequest.spec.js.map +1 -0
  191. package/src/v4/http/interactionWithResponse.d.ts +2 -2
  192. package/src/v4/http/interactionWithResponse.js +10 -48
  193. package/src/v4/http/interactionWithResponse.js.map +1 -1
  194. package/src/v4/http/requestBuilder.d.ts +4 -3
  195. package/src/v4/http/requestBuilder.js +36 -34
  196. package/src/v4/http/requestBuilder.js.map +1 -1
  197. package/src/v4/http/requestBuilder.spec.d.ts +1 -0
  198. package/src/v4/http/requestBuilder.spec.js +42 -0
  199. package/src/v4/http/requestBuilder.spec.js.map +1 -0
  200. package/src/v4/http/requestWithPluginBuilder.d.ts +3 -2
  201. package/src/v4/http/requestWithPluginBuilder.js +30 -46
  202. package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
  203. package/src/v4/http/requestWithPluginBuilder.spec.d.ts +1 -0
  204. package/src/v4/http/requestWithPluginBuilder.spec.js +34 -0
  205. package/src/v4/http/requestWithPluginBuilder.spec.js.map +1 -0
  206. package/src/v4/http/responseBuilder.d.ts +4 -3
  207. package/src/v4/http/responseBuilder.js +28 -25
  208. package/src/v4/http/responseBuilder.js.map +1 -1
  209. package/src/v4/http/responseBuilder.spec.d.ts +1 -0
  210. package/src/v4/http/responseBuilder.spec.js +42 -0
  211. package/src/v4/http/responseBuilder.spec.js.map +1 -0
  212. package/src/v4/http/responseWithPluginBuilder.d.ts +1 -1
  213. package/src/v4/http/responseWithPluginBuilder.js +5 -25
  214. package/src/v4/http/responseWithPluginBuilder.js.map +1 -1
  215. package/src/v4/http/responseWithPluginBuilder.spec.d.ts +1 -0
  216. package/src/v4/http/responseWithPluginBuilder.spec.js +34 -0
  217. package/src/v4/http/responseWithPluginBuilder.spec.js.map +1 -0
  218. package/src/v4/http/types.d.ts +13 -4
  219. package/src/v4/http/unconfiguredInteraction.d.ts +6 -5
  220. package/src/v4/http/unconfiguredInteraction.js +31 -26
  221. package/src/v4/http/unconfiguredInteraction.js.map +1 -1
  222. package/src/v4/index.d.ts +6 -5
  223. package/src/v4/index.js +32 -35
  224. package/src/v4/index.js.map +1 -1
  225. package/src/v4/message/asynchronousMessage.d.ts +7 -6
  226. package/src/v4/message/asynchronousMessage.js +157 -190
  227. package/src/v4/message/asynchronousMessage.js.map +1 -1
  228. package/src/v4/message/index.d.ts +7 -6
  229. package/src/v4/message/index.js +188 -217
  230. package/src/v4/message/index.js.map +1 -1
  231. package/src/v4/message/types.d.ts +5 -3
  232. package/src/v4/types.d.ts +3 -3
  233. package/src/xml/index.d.ts +4 -0
  234. package/src/xml/index.js +21 -0
  235. package/src/xml/index.js.map +1 -0
  236. package/src/{v3/xml → xml}/xmlBuilder.d.ts +1 -3
  237. package/src/{v3/xml → xml}/xmlBuilder.js +7 -9
  238. package/src/xml/xmlBuilder.js.map +1 -0
  239. package/src/{v3/xml → xml}/xmlElement.d.ts +2 -2
  240. package/src/xml/xmlElement.js +73 -0
  241. package/src/xml/xmlElement.js.map +1 -0
  242. package/src/xml/xmlElement.spec.d.ts +1 -0
  243. package/src/xml/xmlElement.spec.js +107 -0
  244. package/src/xml/xmlElement.spec.js.map +1 -0
  245. package/src/xml/xmlNode.js +7 -0
  246. package/src/xml/xmlNode.js.map +1 -0
  247. package/src/{v3/xml → xml}/xmlText.d.ts +1 -1
  248. package/src/xml/xmlText.js +15 -0
  249. package/src/xml/xmlText.js.map +1 -0
  250. package/scripts/install-plugins +0 -106
  251. package/src/v3/xml/xmlBuilder.js.map +0 -1
  252. package/src/v3/xml/xmlElement.js +0 -90
  253. package/src/v3/xml/xmlElement.js.map +0 -1
  254. package/src/v3/xml/xmlElement.spec.js +0 -113
  255. package/src/v3/xml/xmlElement.spec.js.map +0 -1
  256. package/src/v3/xml/xmlNode.js +0 -10
  257. package/src/v3/xml/xmlNode.js.map +0 -1
  258. package/src/v3/xml/xmlText.js +0 -31
  259. package/src/v3/xml/xmlText.js.map +0 -1
  260. /package/src/v3/{xml/xmlElement.spec.d.ts → pact.spec.d.ts} +0 -0
  261. /package/src/{v3/xml → xml}/xmlNode.d.ts +0 -0
@@ -0,0 +1,21 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./xmlBuilder"), exports);
18
+ __exportStar(require("./xmlElement"), exports);
19
+ __exportStar(require("./xmlNode"), exports);
20
+ __exportStar(require("./xmlText"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/xml/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,4CAA0B;AAC1B,4CAA0B"}
@@ -3,9 +3,7 @@ import { XmlElement } from './xmlElement';
3
3
  * XML Builder class for constructing XML documents with matchers
4
4
  */
5
5
  export declare class XmlBuilder {
6
- private version;
7
- private charset;
8
6
  private root;
9
- constructor(version: string, charset: string, rootElement: string);
7
+ constructor(_version: string, _charset: string, rootElement: string);
10
8
  build(callback: (doc: XmlElement) => void): string;
11
9
  }
@@ -1,21 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.XmlBuilder = void 0;
4
- var xmlElement_1 = require("./xmlElement");
4
+ const xmlElement_1 = require("./xmlElement");
5
5
  /**
6
6
  * XML Builder class for constructing XML documents with matchers
7
7
  */
8
- var XmlBuilder = /** @class */ (function () {
9
- function XmlBuilder(version, charset, rootElement) {
10
- this.version = version;
11
- this.charset = charset;
8
+ class XmlBuilder {
9
+ root;
10
+ constructor(_version, _charset, rootElement) {
12
11
  this.root = new xmlElement_1.XmlElement(rootElement);
13
12
  }
14
- XmlBuilder.prototype.build = function (callback) {
13
+ build(callback) {
15
14
  callback(this.root);
16
15
  return JSON.stringify(this);
17
- };
18
- return XmlBuilder;
19
- }());
16
+ }
17
+ }
20
18
  exports.XmlBuilder = XmlBuilder;
21
19
  //# sourceMappingURL=xmlBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xmlBuilder.js","sourceRoot":"","sources":["../../../src/xml/xmlBuilder.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C;;GAEG;AACH,MAAa,UAAU;IACb,IAAI,CAAa;IAEzB,YAAY,QAAgB,EAAE,QAAgB,EAAE,WAAmB;QACjE,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAU,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,QAAmC;QAC9C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF;AAZD,gCAYC"}
@@ -1,11 +1,11 @@
1
- import { Matcher } from '../types';
1
+ import type { Matcher } from '../v3/types';
2
2
  import { XmlNode } from './xmlNode';
3
3
  export type XmlAttributes = Map<string, string>;
4
4
  export type XmlCallback = (n: XmlElement) => void;
5
5
  export declare class XmlElement extends XmlNode {
6
6
  name: string;
7
- private attributes;
8
7
  children: XmlNode[];
8
+ attributes?: XmlAttributes;
9
9
  constructor(name: string);
10
10
  setName(name: string): XmlElement;
11
11
  setAttributes(attributes: XmlAttributes): XmlElement;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XmlElement = void 0;
4
+ const matchers_1 = require("../v3/matchers");
5
+ const xmlNode_1 = require("./xmlNode");
6
+ const xmlText_1 = require("./xmlText");
7
+ const modifyElementWithCallback = (el, cb) => {
8
+ if (cb) {
9
+ cb(el);
10
+ }
11
+ };
12
+ class XmlElement extends xmlNode_1.XmlNode {
13
+ name;
14
+ children = [];
15
+ attributes;
16
+ constructor(name) {
17
+ super();
18
+ this.name = name;
19
+ }
20
+ setName(name) {
21
+ this.name = name;
22
+ return this;
23
+ }
24
+ setAttributes(attributes) {
25
+ this.attributes = attributes;
26
+ return this;
27
+ }
28
+ /**
29
+ * Creates a new element with the given name and attributes and then sets it's text content (can be a matcher)
30
+ * @param name Element name
31
+ * @param attributes Map of element attributes
32
+ * @param arg Callback to configure the new element, or text content to create the new element with (can be a matcher)
33
+ */
34
+ appendElement(name, attributes, arg) {
35
+ const el = new XmlElement(name).setAttributes(attributes);
36
+ if (arg) {
37
+ if (typeof arg !== 'function') {
38
+ el.appendText(arg);
39
+ }
40
+ else {
41
+ modifyElementWithCallback(el, arg);
42
+ }
43
+ }
44
+ this.children.push(el);
45
+ return this;
46
+ }
47
+ appendText(content) {
48
+ if (typeof content === 'object' && content['pact:matcher:type']) {
49
+ this.children.push(new xmlText_1.XmlText((0, matchers_1.isMatcher)(content) &&
50
+ 'value' in content &&
51
+ content.value !== undefined &&
52
+ typeof content.value === 'string'
53
+ ? content.value
54
+ : '', content));
55
+ }
56
+ else {
57
+ this.children.push(new xmlText_1.XmlText(content.toString()));
58
+ }
59
+ return this;
60
+ }
61
+ eachLike(name, attributes, cb, options = { examples: 1 }) {
62
+ const el = new XmlElement(name).setAttributes(attributes);
63
+ modifyElementWithCallback(el, cb);
64
+ this.children.push({
65
+ 'pact:matcher:type': 'type',
66
+ value: el,
67
+ examples: options.examples,
68
+ });
69
+ return this;
70
+ }
71
+ }
72
+ exports.XmlElement = XmlElement;
73
+ //# sourceMappingURL=xmlElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xmlElement.js","sourceRoot":"","sources":["../../../src/xml/xmlElement.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAE3C,uCAAoC;AACpC,uCAAoC;AAKpC,MAAM,yBAAyB,GAAG,CAAC,EAAc,EAAE,EAAgB,EAAE,EAAE;IACrE,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,EAAE,CAAC,CAAC;IACT,CAAC;AACH,CAAC,CAAC;AACF,MAAa,UAAW,SAAQ,iBAAO;IAIlB;IAHnB,QAAQ,GAAc,EAAE,CAAC;IACzB,UAAU,CAAiB;IAE3B,YAAmB,IAAY;QAC7B,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAQ;IAE/B,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,aAAa,CAAC,UAAyB;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,aAAa,CAClB,IAAY,EACZ,UAAyB,EACzB,GAA4C;QAE5C,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,yBAAyB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,UAAU,CAAC,OAAiC;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,iBAAO,CACT,IAAA,oBAAS,EAAC,OAAO,CAAC;gBAChB,OAAO,IAAI,OAAO;gBAClB,OAAO,CAAC,KAAK,KAAK,SAAS;gBAC3B,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;gBACjC,CAAC,CAAC,OAAO,CAAC,KAAK;gBACf,CAAC,CAAC,EAAE,EACN,OAAO,CACR,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,iBAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,QAAQ,CACb,IAAY,EACZ,UAAyB,EACzB,EAAgB,EAChB,UAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE;QAE1C,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1D,yBAAyB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,mBAAmB,EAAE,MAAM;YAC3B,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA/ED,gCA+EC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,107 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const MatchersV3 = __importStar(require("../v3/matchers"));
37
+ const xmlElement_1 = require("./xmlElement");
38
+ const xmlText_1 = require("./xmlText");
39
+ describe('xml element', () => {
40
+ describe('appendText', () => {
41
+ it('can be called with a string', () => {
42
+ const xml = new xmlElement_1.XmlElement('my name')
43
+ .appendText('some string')
44
+ .appendText('second string');
45
+ expect(xml, 'XML element').toHaveProperty('name');
46
+ expect(xml.name, 'name of XML element').toBe('my name');
47
+ expect(xml, 'XML element').toHaveProperty('children');
48
+ expect(xml.children, 'children of XML element').toHaveLength(2);
49
+ expect(xml.children[0], 'type of first child of XML element').toBeInstanceOf(xmlText_1.XmlText);
50
+ expect(xml.children[0], 'first child of XML element').toHaveProperty('content');
51
+ expect(xml.children[0].content, 'content of first child').toBe('some string');
52
+ expect(xml.children[0], 'first child of XML element').toHaveProperty('matcher');
53
+ expect(xml.children[0].matcher, 'matcher of the first child').toBeUndefined();
54
+ });
55
+ it('can be called with a Matcher', () => {
56
+ const xml = new xmlElement_1.XmlElement('my name')
57
+ .appendText(MatchersV3.string('string matcher'))
58
+ .appendText(MatchersV3.regex(/^.*$/, 'regex matcher'))
59
+ .appendText(MatchersV3.date('yyyy-MM-dd HH:mm:ss.SSSX', '2016-02-11T09:46:56.023Z'))
60
+ .appendText(MatchersV3.datetime('yyyy-MM-dd HH:mm:ss.SSSX', '2016-02-11T09:46:56.023Z'))
61
+ .appendText(MatchersV3.timestamp('yyyy-MM-dd HH:mm:ss.SSSX', '2016-02-11T09:46:56.023Z'))
62
+ .appendText(MatchersV3.time('yyyy-MM-dd HH:mm:ss.SSSX', '2016-02-11T09:46:56.023Z'))
63
+ .appendText(MatchersV3.uuid('adc214d3-1c9f-460d-b6c8-8f2bc8911860'));
64
+ expect(xml, 'XML element').toHaveProperty('name');
65
+ expect(xml.name, 'name of XML element').toBe('my name');
66
+ expect(xml, 'XML element').toHaveProperty('children');
67
+ expect(xml.children, 'children of XML element').toHaveLength(7);
68
+ for (let i = 0; i < 7; i += 1) {
69
+ const child = xml.children[i];
70
+ expect(child).toBeInstanceOf(xmlText_1.XmlText);
71
+ expect(child).toHaveProperty('content');
72
+ expect(child.content).not.toBe('');
73
+ expect(child.content).toBeTypeOf('string');
74
+ expect(child).toHaveProperty('matcher');
75
+ expect(child.matcher).toHaveProperty('value');
76
+ expect(child.matcher?.value).toBeTypeOf('string');
77
+ expect(child.matcher?.value).not.toBe('');
78
+ expect(child.matcher).toHaveProperty('pact:matcher:type');
79
+ expect(child.matcher?.['pact:matcher:type']).toBeTypeOf('string');
80
+ expect(child.matcher?.['pact:matcher:type']).not.toBe('');
81
+ }
82
+ });
83
+ it('sets content to an empty string if the Matcher has no value', () => {
84
+ function noValueMatcher() {
85
+ return {
86
+ 'pact:matcher:type': 'no-value',
87
+ };
88
+ }
89
+ const xml = new xmlElement_1.XmlElement('my name').appendText(noValueMatcher());
90
+ expect(xml, 'XML element').toHaveProperty('name');
91
+ expect(xml.name, 'name of XML element').toBe('my name');
92
+ expect(xml, 'XML element').toHaveProperty('children');
93
+ expect(xml.children, 'children of XML element').toHaveLength(1);
94
+ const child = xml.children[0];
95
+ expect(child).toBeInstanceOf(xmlText_1.XmlText);
96
+ expect(child).toHaveProperty('content');
97
+ expect(child.content).toBe('');
98
+ expect(child.content).toBeTypeOf('string');
99
+ expect(child).toHaveProperty('matcher');
100
+ expect(child.matcher).not.toHaveProperty('value');
101
+ expect(child.matcher).toHaveProperty('pact:matcher:type');
102
+ expect(child.matcher?.['pact:matcher:type']).toBeTypeOf('string');
103
+ expect(child.matcher?.['pact:matcher:type']).not.toBe('');
104
+ });
105
+ });
106
+ });
107
+ //# sourceMappingURL=xmlElement.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xmlElement.spec.js","sourceRoot":"","sources":["../../../src/xml/xmlElement.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XmlNode = void 0;
4
+ class XmlNode {
5
+ }
6
+ exports.XmlNode = XmlNode;
7
+ //# sourceMappingURL=xmlNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xmlNode.js","sourceRoot":"","sources":["../../../src/xml/xmlNode.ts"],"names":[],"mappings":";;;AAAA,MAAa,OAAO;CAAG;AAAvB,0BAAuB"}
@@ -1,4 +1,4 @@
1
- import { Matcher } from '../types';
1
+ import type { Matcher } from '../v3/types';
2
2
  import { XmlNode } from './xmlNode';
3
3
  export declare class XmlText extends XmlNode {
4
4
  content: string;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XmlText = void 0;
4
+ const xmlNode_1 = require("./xmlNode");
5
+ class XmlText extends xmlNode_1.XmlNode {
6
+ content;
7
+ matcher;
8
+ constructor(content, matcher) {
9
+ super();
10
+ this.content = content;
11
+ this.matcher = matcher;
12
+ }
13
+ }
14
+ exports.XmlText = XmlText;
15
+ //# sourceMappingURL=xmlText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xmlText.js","sourceRoot":"","sources":["../../../src/xml/xmlText.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AAEpC,MAAa,OAAQ,SAAQ,iBAAO;IAEzB;IACA;IAFT,YACS,OAAe,EACf,OAAyB;QAEhC,KAAK,EAAE,CAAC;QAHD,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAkB;IAGlC,CAAC;CACF;AAPD,0BAOC"}
@@ -1,106 +0,0 @@
1
- #!/bin/sh
2
- #
3
- # Usage:
4
- # $ curl -fsSL https://raw.githubusercontent.com/pact-foundation/pact-plugins/master/install-cli.sh | bash
5
- # or
6
- # $ wget -q https://raw.githubusercontent.com/pact-foundation/pact-plugins/master/install-cli.sh -O- | bash
7
-
8
- # While most shells support `local`, it technically isn't POSIX. This will check
9
- # for `local` and alias it to `typeset` if it doesn't exist.
10
- # shellcheck disable=SC3043
11
- # If a shell does not support `local`, it will be aliased to
12
- # `typeset`, so this check is not needed.
13
- has_local() {
14
- local _has_local
15
- }
16
- has_local 2>/dev/null || alias local=typeset
17
-
18
- set -o errexit # Exit on error
19
- set -o nounset # Treat unset variables as an error
20
-
21
- # Colours
22
- WHITE_BOLD='\033[1;37m'
23
- RESET='\033[0m'
24
-
25
- detect_osarch() {
26
- case $(uname -sm) in
27
- 'Linux x86_64')
28
- os='linux'
29
- arch='x86_64'
30
- ext=''
31
- ;;
32
- 'Linux aarch64')
33
- os='linux'
34
- arch='aarch64'
35
- ext=''
36
- ;;
37
- 'Darwin x86' | 'Darwin x86_64')
38
- os='osx'
39
- arch='x86_64'
40
- ext=''
41
- ;;
42
- 'Darwin arm64')
43
- os='osx'
44
- arch='aarch64'
45
- ext=''
46
- ;;
47
- CYGWIN* | MINGW32* | MSYS* | MINGW*)
48
- os="windows"
49
- arch='x86_64'
50
- ext='.exe'
51
- ;;
52
- *)
53
- echo "Sorry, you'll need to install the plugin CLI manually."
54
- exit 1
55
- ;;
56
- esac
57
- }
58
-
59
- install_pact_plugin_cli() {
60
- [ -f ~/.pact/bin/pact-plugin-cli ] && \
61
- echo "${WHITE_BOLD}=> Plugin CLI already installed${RESET}" && \
62
- return
63
-
64
- local version="0.1.2"
65
- detect_osarch
66
- local url="https://github.com/pact-foundation/pact-plugins/releases/download/pact-plugin-cli-v${version}/pact-plugin-cli-${os}-${arch}${ext}.gz"
67
-
68
- echo "${WHITE_BOLD}=> Installing plugins CLI version '${version}'${RESET}"
69
- echo " - OS: ${os}"
70
- echo " - Arch: ${arch}"
71
- echo " - Version: ${version}"
72
- echo " - URL: ${url}"
73
- echo " - Downloading into: ~/.pact/bin/"
74
-
75
- mkdir -p ~/.pact/bin
76
-
77
- if command -v curl >/dev/null 2>&1; then
78
- curl -sSL "$url" | gunzip -c > ~/.pact/bin/pact-plugin-cli
79
- elif command -v wget >/dev/null 2>&1; then
80
- wget -qO- "$url" | gunzip -c > ~/.pact/bin/pact-plugin-cli
81
- else
82
- echo "Neither curl nor wget found. Please install one of these packages."
83
- exit 1
84
- fi
85
- chmod +x ~/.pact/bin/pact-plugin-cli
86
- }
87
-
88
- install_matt_plugin() {
89
- [ -d ~/.pact/plugins/matt-0.1.1 ] && \
90
- echo "${WHITE_BOLD}=> MATT plugin already installed${RESET}" && \
91
- return
92
-
93
- local version="0.1.1"
94
- local url="https://github.com/mefellows/pact-matt-plugin/releases/tag/v${version}"
95
-
96
- echo "${WHITE_BOLD}=> Installing MATT plugin version '${version}'${RESET}"
97
- ~/.pact/bin/pact-plugin-cli install "$url"
98
-
99
- }
100
-
101
- main() {
102
- install_pact_plugin_cli
103
- install_matt_plugin
104
- }
105
-
106
- main
@@ -1 +0,0 @@
1
- {"version":3,"file":"xmlBuilder.js","sourceRoot":"","sources":["../../../../src/v3/xml/xmlBuilder.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAE1C;;GAEG;AACH;IAGE,oBACU,OAAe,EACf,OAAe,EACvB,WAAmB;QAFX,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAQ;QAGvB,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAU,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAEM,0BAAK,GAAZ,UAAa,QAAmC;QAC9C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACH,iBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBY,gCAAU"}
@@ -1,90 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.XmlElement = void 0;
19
- var matchers_1 = require("../matchers");
20
- var xmlNode_1 = require("./xmlNode");
21
- var xmlText_1 = require("./xmlText");
22
- var modifyElementWithCallback = function (el, cb) {
23
- if (cb) {
24
- cb(el);
25
- }
26
- };
27
- var XmlElement = /** @class */ (function (_super) {
28
- __extends(XmlElement, _super);
29
- function XmlElement(name) {
30
- var _this = _super.call(this) || this;
31
- _this.name = name;
32
- _this.children = [];
33
- return _this;
34
- }
35
- XmlElement.prototype.setName = function (name) {
36
- this.name = name;
37
- return this;
38
- };
39
- XmlElement.prototype.setAttributes = function (attributes) {
40
- this.attributes = attributes;
41
- return this;
42
- };
43
- /**
44
- * Creates a new element with the given name and attributes and then sets it's text content (can be a matcher)
45
- * @param name Element name
46
- * @param attributes Map of element attributes
47
- * @param arg Callback to configure the new element, or text content to create the new element with (can be a matcher)
48
- */
49
- XmlElement.prototype.appendElement = function (name, attributes, arg) {
50
- var el = new XmlElement(name).setAttributes(attributes);
51
- if (arg) {
52
- if (typeof arg !== 'function') {
53
- el.appendText(arg);
54
- }
55
- else {
56
- modifyElementWithCallback(el, arg);
57
- }
58
- }
59
- this.children.push(el);
60
- return this;
61
- };
62
- XmlElement.prototype.appendText = function (content) {
63
- if (typeof content === 'object' && content['pact:matcher:type']) {
64
- this.children.push(new xmlText_1.XmlText((0, matchers_1.isMatcher)(content) &&
65
- 'value' in content &&
66
- content.value !== undefined &&
67
- typeof content.value === 'string'
68
- ? content.value
69
- : '', content));
70
- }
71
- else {
72
- this.children.push(new xmlText_1.XmlText(content.toString()));
73
- }
74
- return this;
75
- };
76
- XmlElement.prototype.eachLike = function (name, attributes, cb, options) {
77
- if (options === void 0) { options = { examples: 1 }; }
78
- var el = new XmlElement(name).setAttributes(attributes);
79
- modifyElementWithCallback(el, cb);
80
- this.children.push({
81
- 'pact:matcher:type': 'type',
82
- value: el,
83
- examples: options.examples,
84
- });
85
- return this;
86
- };
87
- return XmlElement;
88
- }(xmlNode_1.XmlNode));
89
- exports.XmlElement = XmlElement;
90
- //# sourceMappingURL=xmlElement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xmlElement.js","sourceRoot":"","sources":["../../../../src/v3/xml/xmlElement.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,wCAAwC;AAExC,qCAAoC;AACpC,qCAAoC;AAKpC,IAAM,yBAAyB,GAAG,UAAC,EAAc,EAAE,EAAgB;IACjE,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,EAAE,CAAC,CAAC;IACT,CAAC;AACH,CAAC,CAAC;AACF;IAAgC,8BAAO;IAKrC,oBAAmB,IAAY;QAC7B,YAAA,MAAK,WAAE,SAAC;QADS,UAAI,GAAJ,IAAI,CAAQ;QAF/B,cAAQ,GAAc,EAAE,CAAC;;IAIzB,CAAC;IAEM,4BAAO,GAAd,UAAe,IAAY;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kCAAa,GAApB,UAAqB,UAAyB;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,kCAAa,GAApB,UACE,IAAY,EACZ,UAAyB,EACzB,GAA4C;QAE5C,IAAM,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,yBAAyB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,+BAAU,GAAjB,UAAkB,OAAiC;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,iBAAO,CACT,IAAA,oBAAS,EAAC,OAAO,CAAC;gBAClB,OAAO,IAAI,OAAO;gBAClB,OAAO,CAAC,KAAK,KAAK,SAAS;gBAC3B,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;gBAC/B,CAAC,CAAC,OAAO,CAAC,KAAK;gBACf,CAAC,CAAC,EAAE,EACN,OAAO,CACR,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,iBAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6BAAQ,GAAf,UACE,IAAY,EACZ,UAAyB,EACzB,EAAgB,EAChB,OAA0C;QAA1C,wBAAA,EAAA,YAA6B,QAAQ,EAAE,CAAC,EAAE;QAE1C,IAAM,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1D,yBAAyB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,mBAAmB,EAAE,MAAM;YAC3B,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IACH,iBAAC;AAAD,CAAC,AAhFD,CAAgC,iBAAO,GAgFtC;AAhFY,gCAAU"}
@@ -1,113 +0,0 @@
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 () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- var chai = __importStar(require("chai"));
37
- var mocha_1 = require("mocha");
38
- var xmlText_1 = require("./xmlText");
39
- var xmlElement_1 = require("./xmlElement");
40
- var MatchersV3 = __importStar(require("../matchers"));
41
- var expect = chai.expect;
42
- (0, mocha_1.describe)('xml element', function () {
43
- (0, mocha_1.describe)('appendText', function () {
44
- it('can be called with a string', function () {
45
- var xml = new xmlElement_1.XmlElement('my name')
46
- .appendText('some string')
47
- .appendText('second string');
48
- expect(xml, 'XML element').to.have.property('name');
49
- expect(xml.name, 'name of XML element').to.equal('my name');
50
- expect(xml, 'XML element').to.have.property('children');
51
- expect(xml.children, 'children of XML element').to.be.lengthOf(2);
52
- expect(xml.children[0], 'type of first child of XML element').to.be.instanceOf(xmlText_1.XmlText);
53
- expect(xml.children[0], 'first child of XML element').to.have.property('content');
54
- expect(xml.children[0].content, 'content of first child').to.equal('some string');
55
- expect(xml.children[0], 'first child of XML element').to.have.property('matcher');
56
- expect(xml.children[0].matcher, 'matcher of the first child')
57
- .to.be.undefined;
58
- });
59
- it('can be called with a Matcher', function () {
60
- var _a, _b, _c, _d;
61
- var xml = new xmlElement_1.XmlElement('my name')
62
- .appendText(MatchersV3.string('string matcher'))
63
- .appendText(MatchersV3.regex(/^.*$/, 'regex matcher'))
64
- .appendText(MatchersV3.date('yyyy-MM-dd HH:mm:ss.SSSX', '2016-02-11T09:46:56.023Z'))
65
- .appendText(MatchersV3.datetime('yyyy-MM-dd HH:mm:ss.SSSX', '2016-02-11T09:46:56.023Z'))
66
- .appendText(MatchersV3.timestamp('yyyy-MM-dd HH:mm:ss.SSSX', '2016-02-11T09:46:56.023Z'))
67
- .appendText(MatchersV3.time('yyyy-MM-dd HH:mm:ss.SSSX', '2016-02-11T09:46:56.023Z'))
68
- .appendText(MatchersV3.uuid('adc214d3-1c9f-460d-b6c8-8f2bc8911860'));
69
- expect(xml, 'XML element').to.have.property('name');
70
- expect(xml.name, 'name of XML element').to.equal('my name');
71
- expect(xml, 'XML element').to.have.property('children');
72
- expect(xml.children, 'children of XML element').to.be.lengthOf(7);
73
- for (var i = 0; i < 7; i += 1) {
74
- var child = xml.children[i];
75
- expect(child).to.be.instanceOf(xmlText_1.XmlText);
76
- expect(child).to.have.property('content');
77
- expect(child.content).not.to.be.empty;
78
- expect(child.content).to.be.a('string');
79
- expect(child).to.have.property('matcher');
80
- expect(child.matcher).to.have.property('value');
81
- expect((_a = child.matcher) === null || _a === void 0 ? void 0 : _a.value).to.be.a('string');
82
- expect((_b = child.matcher) === null || _b === void 0 ? void 0 : _b.value).not.to.be.empty;
83
- expect(child.matcher).to.have.property('pact:matcher:type');
84
- expect((_c = child.matcher) === null || _c === void 0 ? void 0 : _c['pact:matcher:type']).to.be.a('string');
85
- expect((_d = child.matcher) === null || _d === void 0 ? void 0 : _d['pact:matcher:type']).not.to.be.empty;
86
- }
87
- });
88
- it('sets content to an empty string if the Matcher has no value', function () {
89
- var _a, _b;
90
- function noValueMatcher() {
91
- return {
92
- 'pact:matcher:type': 'no-value',
93
- };
94
- }
95
- var xml = new xmlElement_1.XmlElement('my name').appendText(noValueMatcher());
96
- expect(xml, 'XML element').to.have.property('name');
97
- expect(xml.name, 'name of XML element').to.equal('my name');
98
- expect(xml, 'XML element').to.have.property('children');
99
- expect(xml.children, 'children of XML element').to.be.lengthOf(1);
100
- var child = xml.children[0];
101
- expect(child).to.be.instanceOf(xmlText_1.XmlText);
102
- expect(child).to.have.property('content');
103
- expect(child.content).to.be.empty;
104
- expect(child.content).to.be.a('string');
105
- expect(child).to.have.property('matcher');
106
- expect(child.matcher).not.to.have.property('value');
107
- expect(child.matcher).to.have.property('pact:matcher:type');
108
- expect((_a = child.matcher) === null || _a === void 0 ? void 0 : _a['pact:matcher:type']).to.be.a('string');
109
- expect((_b = child.matcher) === null || _b === void 0 ? void 0 : _b['pact:matcher:type']).not.to.be.empty;
110
- });
111
- });
112
- });
113
- //# sourceMappingURL=xmlElement.spec.js.map