@pact-foundation/pact 7.3.0 → 8.0.2

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 (97) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/CONTRIBUTING.md +22 -9
  3. package/LICENSE +1 -2
  4. package/README.md +253 -157
  5. package/common/logger.js +10 -5
  6. package/common/logger.js.map +1 -1
  7. package/common/metadata.js.map +1 -1
  8. package/common/net.js +3 -2
  9. package/common/net.js.map +1 -1
  10. package/common/net.spec.d.ts +1 -0
  11. package/common/net.spec.js +47 -0
  12. package/common/net.spec.js.map +1 -0
  13. package/common/request.js +1 -2
  14. package/common/request.js.map +1 -1
  15. package/common/request.spec.d.ts +1 -0
  16. package/common/request.spec.js +71 -0
  17. package/common/request.spec.js.map +1 -0
  18. package/common/utils.js +1 -2
  19. package/common/utils.js.map +1 -1
  20. package/dsl/apolloGraphql.d.ts +1 -1
  21. package/dsl/apolloGraphql.js +6 -3
  22. package/dsl/apolloGraphql.js.map +1 -1
  23. package/dsl/apolloGraphql.spec.d.ts +1 -0
  24. package/dsl/apolloGraphql.spec.js +47 -0
  25. package/dsl/apolloGraphql.spec.js.map +1 -0
  26. package/dsl/graphql.js +19 -9
  27. package/dsl/graphql.js.map +1 -1
  28. package/dsl/graphql.spec.d.ts +1 -0
  29. package/dsl/graphql.spec.js +141 -0
  30. package/dsl/graphql.spec.js.map +1 -0
  31. package/dsl/interaction.js +9 -7
  32. package/dsl/interaction.js.map +1 -1
  33. package/dsl/interaction.spec.d.ts +1 -0
  34. package/dsl/interaction.spec.js +172 -0
  35. package/dsl/interaction.spec.js.map +1 -0
  36. package/dsl/matchers.d.ts +25 -25
  37. package/dsl/matchers.js +57 -55
  38. package/dsl/matchers.js.map +1 -1
  39. package/dsl/matchers.spec.d.ts +1 -0
  40. package/dsl/matchers.spec.js +537 -0
  41. package/dsl/matchers.spec.js.map +1 -0
  42. package/dsl/message.d.ts +29 -3
  43. package/dsl/mockService.d.ts +6 -0
  44. package/dsl/mockService.js +10 -4
  45. package/dsl/mockService.js.map +1 -1
  46. package/dsl/mockService.spec.d.ts +1 -0
  47. package/dsl/mockService.spec.js +126 -0
  48. package/dsl/mockService.spec.js.map +1 -0
  49. package/dsl/verifier.d.ts +48 -2
  50. package/dsl/verifier.js +142 -3
  51. package/dsl/verifier.js.map +1 -1
  52. package/dsl/verifier.spec.d.ts +1 -0
  53. package/dsl/verifier.spec.js +299 -0
  54. package/dsl/verifier.spec.js.map +1 -0
  55. package/errors/configurationError.d.ts +2 -0
  56. package/errors/configurationError.js +24 -0
  57. package/errors/configurationError.js.map +1 -0
  58. package/errors/graphQLQueryError.d.ts +2 -0
  59. package/errors/graphQLQueryError.js +24 -0
  60. package/errors/graphQLQueryError.js.map +1 -0
  61. package/errors/matcherError.d.ts +2 -0
  62. package/errors/matcherError.js +24 -0
  63. package/errors/matcherError.js.map +1 -0
  64. package/errors/verificationError.d.ts +2 -0
  65. package/errors/verificationError.js +24 -0
  66. package/errors/verificationError.js.map +1 -0
  67. package/httpPact.d.ts +69 -0
  68. package/httpPact.js +206 -0
  69. package/httpPact.js.map +1 -0
  70. package/httpPact.spec.d.ts +1 -0
  71. package/httpPact.spec.js +337 -0
  72. package/httpPact.spec.js.map +1 -0
  73. package/messageConsumerPact.d.ts +3 -3
  74. package/messageConsumerPact.js +5 -4
  75. package/messageConsumerPact.js.map +1 -1
  76. package/messageConsumerPact.spec.d.ts +1 -0
  77. package/messageConsumerPact.spec.js +161 -0
  78. package/messageConsumerPact.spec.js.map +1 -0
  79. package/messageProviderPact.d.ts +0 -1
  80. package/messageProviderPact.js +11 -11
  81. package/messageProviderPact.js.map +1 -1
  82. package/messageProviderPact.spec.d.ts +1 -0
  83. package/messageProviderPact.spec.js +146 -0
  84. package/messageProviderPact.spec.js.map +1 -0
  85. package/package.json +24 -26
  86. package/pact-web.d.ts +2 -2
  87. package/pact-web.js +20 -10
  88. package/pact-web.js.map +1 -1
  89. package/pact-web.spec.d.ts +1 -0
  90. package/pact-web.spec.js +205 -0
  91. package/pact-web.spec.js.map +1 -0
  92. package/pact.d.ts +28 -65
  93. package/pact.integration.spec.d.ts +0 -0
  94. package/pact.integration.spec.js +292 -0
  95. package/pact.integration.spec.js.map +1 -0
  96. package/pact.js +21 -189
  97. package/pact.js.map +1 -1
@@ -6,6 +6,7 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  var lodash_1 = require("lodash");
8
8
  var request_1 = require("../common/request");
9
+ var configurationError_1 = require("../errors/configurationError");
9
10
  var Interaction = /** @class */ (function () {
10
11
  function Interaction() {
11
12
  this.state = {};
@@ -28,7 +29,7 @@ var Interaction = /** @class */ (function () {
28
29
  */
29
30
  Interaction.prototype.uponReceiving = function (description) {
30
31
  if (lodash_1.isNil(description)) {
31
- throw new Error("You must provide a description for the interaction.");
32
+ throw new configurationError_1.default("You must provide a description for the interaction.");
32
33
  }
33
34
  this.state.description = description;
34
35
  return this;
@@ -45,13 +46,13 @@ var Interaction = /** @class */ (function () {
45
46
  */
46
47
  Interaction.prototype.withRequest = function (requestOpts) {
47
48
  if (lodash_1.isNil(requestOpts.method)) {
48
- throw new Error("You must provide an HTTP method.");
49
+ throw new configurationError_1.default("You must provide an HTTP method.");
49
50
  }
50
51
  if (lodash_1.keys(request_1.HTTPMethod).indexOf(requestOpts.method.toString()) < 0) {
51
- throw new Error("You must provide a valid HTTP method: " + lodash_1.keys(request_1.HTTPMethod).join(", ") + ".");
52
+ throw new configurationError_1.default("You must provide a valid HTTP method: " + lodash_1.keys(request_1.HTTPMethod).join(", ") + ".");
52
53
  }
53
54
  if (lodash_1.isNil(requestOpts.path)) {
54
- throw new Error("You must provide a path.");
55
+ throw new configurationError_1.default("You must provide a path.");
55
56
  }
56
57
  this.state.request = lodash_1.omitBy(requestOpts, lodash_1.isNil);
57
58
  return this;
@@ -64,8 +65,9 @@ var Interaction = /** @class */ (function () {
64
65
  * @param {Object} responseOpts.body
65
66
  */
66
67
  Interaction.prototype.willRespondWith = function (responseOpts) {
67
- if (lodash_1.isNil(responseOpts.status) || responseOpts.status.toString().trim().length === 0) {
68
- throw new Error("You must provide a status code.");
68
+ if (lodash_1.isNil(responseOpts.status) ||
69
+ responseOpts.status.toString().trim().length === 0) {
70
+ throw new configurationError_1.default("You must provide a status code.");
69
71
  }
70
72
  this.state.response = lodash_1.omitBy({
71
73
  body: responseOpts.body,
@@ -80,7 +82,7 @@ var Interaction = /** @class */ (function () {
80
82
  */
81
83
  Interaction.prototype.json = function () {
82
84
  if (lodash_1.isNil(this.state.description)) {
83
- throw new Error("You must provide a description for the Interaction");
85
+ throw new configurationError_1.default("You must provide a description for the Interaction");
84
86
  }
85
87
  return this.state;
86
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/dsl/interaction.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,iCAA6C;AAC7C,6CAAwD;AAiCxD;IAAA;QACY,UAAK,GAAqB,EAAE,CAAC;IAuFzC,CAAC;IArFC;;;;OAIG;IACI,2BAAK,GAAZ,UAAa,aAAqB;QAChC,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;SAC1C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,mCAAa,GAApB,UAAqB,WAAmB;QACtC,IAAI,cAAK,CAAC,WAAW,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAErC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACI,iCAAW,GAAlB,UAAmB,WAA2B;QAC5C,IAAI,cAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QAED,IAAI,aAAI,CAAC,oBAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE;YAC/D,MAAM,IAAI,KAAK,CAAC,2CAAyC,aAAI,CAAC,oBAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAC,CAAC;SAC1F;QAED,IAAI,cAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC7C;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,eAAM,CAAC,WAAW,EAAE,cAAK,CAAmB,CAAC;QAElE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACI,qCAAe,GAAtB,UAAuB,YAA6B;QAClD,IAAI,cAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACpF,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAM,CAAC;YAC3B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,SAAS;YAC1C,MAAM,EAAE,YAAY,CAAC,MAAM;SAC5B,EAAE,cAAK,CAAoB,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,0BAAI,GAAX;QACE,IAAI,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;SACvE;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACH,kBAAC;AAAD,CAAC,AAxFD,IAwFC;AAxFY,kCAAW"}
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/dsl/interaction.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,iCAA4C;AAC5C,6CAAuD;AAEvD,mEAA6D;AAgC7D;IAAA;QACY,UAAK,GAAqB,EAAE,CAAA;IAmGxC,CAAC;IAjGC;;;;OAIG;IACI,2BAAK,GAAZ,UAAa,aAAqB;QAChC,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAA;SACzC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACI,mCAAa,GAApB,UAAqB,WAAmB;QACtC,IAAI,cAAK,CAAC,WAAW,CAAC,EAAE;YACtB,MAAM,IAAI,4BAAkB,CAC1B,qDAAqD,CACtD,CAAA;SACF;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAA;QAEpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;;;;OASG;IACI,iCAAW,GAAlB,UAAmB,WAA2B;QAC5C,IAAI,cAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,IAAI,4BAAkB,CAAC,kCAAkC,CAAC,CAAA;SACjE;QAED,IAAI,aAAI,CAAC,oBAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE;YAC/D,MAAM,IAAI,4BAAkB,CAC1B,2CAAyC,aAAI,CAAC,oBAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CACxE,CAAA;SACF;QAED,IAAI,cAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAC3B,MAAM,IAAI,4BAAkB,CAAC,0BAA0B,CAAC,CAAA;SACzD;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,eAAM,CAAC,WAAW,EAAE,cAAK,CAAmB,CAAA;QAEjE,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACI,qCAAe,GAAtB,UAAuB,YAA6B;QAClD,IACE,cAAK,CAAC,YAAY,CAAC,MAAM,CAAC;YAC1B,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAClD;YACA,MAAM,IAAI,4BAAkB,CAAC,iCAAiC,CAAC,CAAA;SAChE;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAM,CAC1B;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,SAAS;YAC1C,MAAM,EAAE,YAAY,CAAC,MAAM;SAC5B,EACD,cAAK,CACa,CAAA;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACI,0BAAI,GAAX;QACE,IAAI,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YACjC,MAAM,IAAI,4BAAkB,CAC1B,oDAAoD,CACrD,CAAA;SACF;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACH,kBAAC;AAAD,CAAC,AApGD,IAoGC;AApGY,kCAAW"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var chai = require("chai");
4
+ var chaiAsPromised = require("chai-as-promised");
5
+ var request_1 = require("../common/request");
6
+ var interaction_1 = require("./interaction");
7
+ chai.use(chaiAsPromised);
8
+ var expect = chai.expect;
9
+ describe("Interaction", function () {
10
+ describe("#given", function () {
11
+ it("creates Interaction with provider state", function () {
12
+ var actual = new interaction_1.Interaction()
13
+ .uponReceiving("r")
14
+ .given("provider state")
15
+ .json();
16
+ expect(actual).to.eql({
17
+ description: "r",
18
+ providerState: "provider state",
19
+ });
20
+ });
21
+ describe("without provider state", function () {
22
+ it("creates Interaction when blank", function () {
23
+ var actual = new interaction_1.Interaction()
24
+ .uponReceiving("r")
25
+ .given("")
26
+ .json();
27
+ expect(actual).to.eql({ description: "r" });
28
+ });
29
+ it("creates Interaction when nothing is passed", function () {
30
+ var actual = new interaction_1.Interaction().uponReceiving("r").json();
31
+ expect(actual).to.eql({ description: "r" });
32
+ });
33
+ });
34
+ });
35
+ describe("#uponReceiving", function () {
36
+ var interaction = new interaction_1.Interaction();
37
+ it("throws error when no description provided", function () {
38
+ expect(interaction.uponReceiving).to.throw(Error, "You must provide a description for the interaction.");
39
+ });
40
+ it("has a state with description", function () {
41
+ interaction.uponReceiving("an interaction description");
42
+ expect(interaction.json()).to.eql({
43
+ description: "an interaction description",
44
+ });
45
+ });
46
+ });
47
+ describe("#withRequest", function () {
48
+ var interaction = new interaction_1.Interaction();
49
+ it("throws error when method is not provided", function () {
50
+ expect(interaction.withRequest.bind(interaction, {})).to.throw(Error, "You must provide an HTTP method.");
51
+ });
52
+ it("throws error when an invalid method is provided", function () {
53
+ expect(interaction.withRequest.bind(interaction, { method: "FOO" })).to.throw(Error, "You must provide a valid HTTP method: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS.");
54
+ });
55
+ it("throws error when method is not provided", function () {
56
+ expect(interaction.withRequest.bind(interaction, { ath: "/" })).to.throw(Error, "You must provide an HTTP method.");
57
+ });
58
+ it("throws error when path is not provided", function () {
59
+ expect(interaction.withRequest.bind(interaction, { method: request_1.HTTPMethod.GET })).to.throw(Error, "You must provide a path.");
60
+ });
61
+ describe("with only mandatory params", function () {
62
+ var actual = new interaction_1.Interaction()
63
+ .uponReceiving("a request")
64
+ .withRequest({ method: request_1.HTTPMethod.GET, path: "/search" })
65
+ .json();
66
+ it("has a state containing only the given keys", function () {
67
+ expect(actual).to.have.property("request");
68
+ expect(actual.request).to.have.keys("method", "path");
69
+ });
70
+ it("request has no other keys", function () {
71
+ expect(actual.request).to.not.have.keys("query", "headers", "body");
72
+ });
73
+ });
74
+ describe("with all other parameters", function () {
75
+ var actual = new interaction_1.Interaction()
76
+ .uponReceiving("request")
77
+ .withRequest({
78
+ body: { id: 1, name: "Test", due: "tomorrow" },
79
+ headers: { "Content-Type": "application/json" },
80
+ method: request_1.HTTPMethod.GET,
81
+ path: "/search",
82
+ query: "q=test",
83
+ })
84
+ .json();
85
+ it("has a full state all available keys", function () {
86
+ expect(actual).to.have.property("request");
87
+ expect(actual.request).to.have.keys("method", "path", "query", "headers", "body");
88
+ });
89
+ });
90
+ describe("request body", function () {
91
+ it("is included when an empty string is specified", function () {
92
+ var actual = new interaction_1.Interaction()
93
+ .uponReceiving("request")
94
+ .withRequest({
95
+ body: "",
96
+ method: request_1.HTTPMethod.GET,
97
+ path: "/path",
98
+ })
99
+ .json();
100
+ expect(actual.request).to.have.any.keys("body");
101
+ });
102
+ it("is not included when explicitly set to undefined", function () {
103
+ var actual = new interaction_1.Interaction()
104
+ .uponReceiving("request")
105
+ .withRequest({
106
+ body: undefined,
107
+ method: request_1.HTTPMethod.GET,
108
+ path: "/path",
109
+ })
110
+ .json();
111
+ expect(actual.request).not.to.have.any.keys("body");
112
+ });
113
+ });
114
+ });
115
+ describe("#willRespondWith", function () {
116
+ var interaction = new interaction_1.Interaction();
117
+ it("throws error when status is not provided", function () {
118
+ expect(interaction.willRespondWith.bind(interaction, {})).to.throw(Error, "You must provide a status code.");
119
+ });
120
+ it("throws error when status is blank", function () {
121
+ expect(interaction.willRespondWith.bind(interaction, { status: "" })).to.throw(Error, "You must provide a status code.");
122
+ });
123
+ describe("with only mandatory params", function () {
124
+ interaction = new interaction_1.Interaction();
125
+ interaction.uponReceiving("request");
126
+ interaction.willRespondWith({ status: 200 });
127
+ var actual = interaction.json();
128
+ it("has a state compacted with only present keys", function () {
129
+ expect(actual).to.have.property("response");
130
+ expect(actual.response).to.have.keys("status");
131
+ });
132
+ it("request has no other keys", function () {
133
+ expect(actual.response).to.not.have.keys("headers", "body");
134
+ });
135
+ });
136
+ describe("with all other parameters", function () {
137
+ interaction = new interaction_1.Interaction();
138
+ interaction.uponReceiving("request");
139
+ interaction.willRespondWith({
140
+ body: { id: 1, name: "Test", due: "tomorrow" },
141
+ headers: { "Content-Type": "application/json" },
142
+ status: 404,
143
+ });
144
+ var actual = interaction.json();
145
+ it("has a full state all available keys", function () {
146
+ expect(actual).to.have.property("response");
147
+ expect(actual.response).to.have.keys("status", "headers", "body");
148
+ });
149
+ });
150
+ describe("response body", function () {
151
+ it("is included when an empty string is specified", function () {
152
+ interaction = new interaction_1.Interaction();
153
+ interaction.uponReceiving("request").willRespondWith({
154
+ body: "",
155
+ status: 204,
156
+ });
157
+ var actual = interaction.json();
158
+ expect(actual.response).to.have.any.keys("body");
159
+ });
160
+ it("is not included when explicitly set to undefined", function () {
161
+ interaction = new interaction_1.Interaction();
162
+ interaction.uponReceiving("request").willRespondWith({
163
+ body: undefined,
164
+ status: 204,
165
+ });
166
+ var actual = interaction.json();
167
+ expect(actual.response).not.to.have.any.keys("body");
168
+ });
169
+ });
170
+ });
171
+ });
172
+ //# sourceMappingURL=interaction.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction.spec.js","sourceRoot":"","sources":["../../src/dsl/interaction.spec.ts"],"names":[],"mappings":"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"}
package/dsl/matchers.d.ts CHANGED
@@ -19,6 +19,29 @@ export declare const HEX_FORMAT = "^[0-9a-fA-F]+$";
19
19
  * @param matcher Regular expression to check.
20
20
  */
21
21
  export declare function validateExample(example: string, matcher: string): boolean;
22
+ /**
23
+ * The eachLike matcher
24
+ * @param {any} content
25
+ * @param {Object} opts
26
+ * @param {Number} opts.min
27
+ */
28
+ export declare function eachLike<T>(content: T, opts?: {
29
+ min: number;
30
+ }): {
31
+ contents: T;
32
+ getValue: () => T[];
33
+ json_class: string;
34
+ min: number;
35
+ };
36
+ /**
37
+ * The somethingLike matcher
38
+ * @param {any} value - the value to be somethingLike
39
+ */
40
+ export declare function somethingLike<T>(value: T): {
41
+ contents: T;
42
+ getValue: () => T;
43
+ json_class: string;
44
+ };
22
45
  /**
23
46
  * The term matcher. Also aliased to 'regex' for discoverability.
24
47
  * @param {Object} opts
@@ -206,39 +229,16 @@ export declare function integer(int?: number): {
206
229
  /**
207
230
  * Boolean Matcher.
208
231
  */
209
- export declare function boolean(): {
232
+ export declare function boolean(value?: boolean): {
210
233
  contents: boolean;
211
234
  getValue: () => boolean;
212
235
  json_class: string;
213
236
  };
214
- /**
215
- * The eachLike matcher
216
- * @param {any} content
217
- * @param {Object} opts
218
- * @param {Number} opts.min
219
- */
220
- export declare function eachLike<T>(content: T, opts?: {
221
- min: number;
222
- }): {
223
- contents: T;
224
- getValue: () => T[];
225
- json_class: string;
226
- min: number;
227
- };
228
- /**
229
- * The somethingLike matcher
230
- * @param {any} value - the value to be somethingLike
231
- */
232
- export declare function somethingLike<T>(value: T): {
233
- contents: T;
234
- getValue: () => T;
235
- json_class: string;
236
- };
237
237
  export { somethingLike as like };
238
238
  export { term as regex };
239
239
  export interface MatcherResult {
240
240
  json_class: string;
241
241
  getValue(): any;
242
242
  }
243
- export declare function extractPayload(obj: any, stack?: any): any;
244
243
  export declare function isMatcher(x: MatcherResult | any): x is MatcherResult;
244
+ export declare function extractPayload(obj: any, stack?: any): any;
package/dsl/matchers.js CHANGED
@@ -6,6 +6,7 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  var lodash_1 = require("lodash");
9
+ var matcherError_1 = require("../errors/matcherError");
9
10
  // Note: The following regexes are Ruby formatted,
10
11
  // so attempting to parse as JS without modification is probably not going to work as intended!
11
12
  /* tslint:disable:max-line-length */
@@ -30,6 +31,52 @@ function validateExample(example, matcher) {
30
31
  return new RegExp(matcher.replace("\\\\", "\\")).test(example);
31
32
  }
32
33
  exports.validateExample = validateExample;
34
+ /**
35
+ * The eachLike matcher
36
+ * @param {any} content
37
+ * @param {Object} opts
38
+ * @param {Number} opts.min
39
+ */
40
+ function eachLike(content, opts) {
41
+ if (lodash_1.isUndefined(content)) {
42
+ throw new matcherError_1.default("Error creating a Pact eachLike. Please provide a content argument");
43
+ }
44
+ if (opts && (lodash_1.isNil(opts.min) || opts.min < 1)) {
45
+ throw new matcherError_1.default("Error creating a Pact eachLike. Please provide opts.min that is > 0");
46
+ }
47
+ var min = !lodash_1.isEmpty(opts) && opts ? opts.min : 1;
48
+ return {
49
+ contents: content,
50
+ getValue: function () {
51
+ var data = [];
52
+ for (var i = 0; i < min; i++) {
53
+ data[i] = content;
54
+ }
55
+ return data;
56
+ },
57
+ json_class: "Pact::ArrayLike",
58
+ min: min,
59
+ };
60
+ }
61
+ exports.eachLike = eachLike;
62
+ /**
63
+ * The somethingLike matcher
64
+ * @param {any} value - the value to be somethingLike
65
+ */
66
+ function somethingLike(value) {
67
+ if (lodash_1.isNil(value) || lodash_1.isFunction(value)) {
68
+ throw new matcherError_1.default("Error creating a Pact somethingLike Match. Value cannot be a function or undefined");
69
+ }
70
+ return {
71
+ contents: value,
72
+ getValue: function () {
73
+ return value;
74
+ },
75
+ json_class: "Pact::SomethingLike",
76
+ };
77
+ }
78
+ exports.somethingLike = somethingLike;
79
+ exports.like = somethingLike;
33
80
  /**
34
81
  * The term matcher. Also aliased to 'regex' for discoverability.
35
82
  * @param {Object} opts
@@ -40,10 +87,10 @@ function term(opts) {
40
87
  var generate = opts.generate;
41
88
  var matcher = opts.matcher;
42
89
  if (lodash_1.isNil(generate) || lodash_1.isNil(matcher)) {
43
- throw new Error("Error creating a Pact Term.\n Please provide an object containing \"generate\" and \"matcher\" properties");
90
+ throw new matcherError_1.default("Error creating a Pact Term.\n Please provide an object containing \"generate\" and \"matcher\" properties");
44
91
  }
45
92
  if (!validateExample(generate, matcher)) {
46
- throw new Error("Example '" + generate + "' does not match provided regular expression '" + matcher + "'");
93
+ throw new matcherError_1.default("Example '" + generate + "' does not match provided regular expression '" + matcher + "'");
47
94
  }
48
95
  return {
49
96
  data: {
@@ -181,56 +228,15 @@ exports.integer = integer;
181
228
  /**
182
229
  * Boolean Matcher.
183
230
  */
184
- function boolean() {
185
- return somethingLike(true);
231
+ function boolean(value) {
232
+ if (value === void 0) { value = true; }
233
+ return somethingLike(value);
186
234
  }
187
235
  exports.boolean = boolean;
188
- /**
189
- * The eachLike matcher
190
- * @param {any} content
191
- * @param {Object} opts
192
- * @param {Number} opts.min
193
- */
194
- function eachLike(content, opts) {
195
- if (lodash_1.isUndefined(content)) {
196
- throw new Error("Error creating a Pact eachLike. Please provide a content argument");
197
- }
198
- if (opts && (lodash_1.isNil(opts.min) || opts.min < 1)) {
199
- throw new Error("Error creating a Pact eachLike. Please provide opts.min that is > 0");
200
- }
201
- return {
202
- contents: content,
203
- getValue: function () {
204
- var data = [];
205
- var min = (!opts) ? 1 : opts.min;
206
- for (var i = 0; i < min; i++) {
207
- data[i] = content;
208
- }
209
- return data;
210
- },
211
- json_class: "Pact::ArrayLike",
212
- min: (!opts) ? 1 : opts.min,
213
- };
214
- }
215
- exports.eachLike = eachLike;
216
- /**
217
- * The somethingLike matcher
218
- * @param {any} value - the value to be somethingLike
219
- */
220
- function somethingLike(value) {
221
- if (lodash_1.isNil(value) || lodash_1.isFunction(value)) {
222
- throw new Error("Error creating a Pact somethingLike Match. Value cannot be a function or undefined");
223
- }
224
- return {
225
- contents: value,
226
- getValue: function () {
227
- return value;
228
- },
229
- json_class: "Pact::SomethingLike",
230
- };
236
+ function isMatcher(x) {
237
+ return x.getValue !== undefined;
231
238
  }
232
- exports.somethingLike = somethingLike;
233
- exports.like = somethingLike;
239
+ exports.isMatcher = isMatcher;
234
240
  // Recurse the object removing any underlying matching guff, returning
235
241
  // the raw example content
236
242
  function extractPayload(obj, stack) {
@@ -246,18 +252,14 @@ function extractPayload(obj, stack) {
246
252
  if (obj.hasOwnProperty(property)) {
247
253
  var value = obj[property];
248
254
  if (isMatcher(value)) {
249
- extractPayload(value.getValue(), stack[property] = value.getValue());
255
+ extractPayload(value.getValue(), (stack[property] = value.getValue()));
250
256
  }
251
257
  else if (typeof value === "object") {
252
- extractPayload(value, stack[property] = value);
258
+ extractPayload(value, (stack[property] = value));
253
259
  }
254
260
  }
255
261
  }
256
262
  return stack;
257
263
  }
258
264
  exports.extractPayload = extractPayload;
259
- function isMatcher(x) {
260
- return x.getValue !== undefined;
261
- }
262
- exports.isMatcher = isMatcher;
263
265
  //# sourceMappingURL=matchers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/dsl/matchers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/dsl/matchers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};