@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.
- package/CHANGELOG.md +44 -0
- package/CONTRIBUTING.md +22 -9
- package/LICENSE +1 -2
- package/README.md +253 -157
- package/common/logger.js +10 -5
- package/common/logger.js.map +1 -1
- package/common/metadata.js.map +1 -1
- package/common/net.js +3 -2
- package/common/net.js.map +1 -1
- package/common/net.spec.d.ts +1 -0
- package/common/net.spec.js +47 -0
- package/common/net.spec.js.map +1 -0
- package/common/request.js +1 -2
- package/common/request.js.map +1 -1
- package/common/request.spec.d.ts +1 -0
- package/common/request.spec.js +71 -0
- package/common/request.spec.js.map +1 -0
- package/common/utils.js +1 -2
- package/common/utils.js.map +1 -1
- package/dsl/apolloGraphql.d.ts +1 -1
- package/dsl/apolloGraphql.js +6 -3
- package/dsl/apolloGraphql.js.map +1 -1
- package/dsl/apolloGraphql.spec.d.ts +1 -0
- package/dsl/apolloGraphql.spec.js +47 -0
- package/dsl/apolloGraphql.spec.js.map +1 -0
- package/dsl/graphql.js +19 -9
- package/dsl/graphql.js.map +1 -1
- package/dsl/graphql.spec.d.ts +1 -0
- package/dsl/graphql.spec.js +141 -0
- package/dsl/graphql.spec.js.map +1 -0
- package/dsl/interaction.js +9 -7
- package/dsl/interaction.js.map +1 -1
- package/dsl/interaction.spec.d.ts +1 -0
- package/dsl/interaction.spec.js +172 -0
- package/dsl/interaction.spec.js.map +1 -0
- package/dsl/matchers.d.ts +25 -25
- package/dsl/matchers.js +57 -55
- package/dsl/matchers.js.map +1 -1
- package/dsl/matchers.spec.d.ts +1 -0
- package/dsl/matchers.spec.js +537 -0
- package/dsl/matchers.spec.js.map +1 -0
- package/dsl/message.d.ts +29 -3
- package/dsl/mockService.d.ts +6 -0
- package/dsl/mockService.js +10 -4
- package/dsl/mockService.js.map +1 -1
- package/dsl/mockService.spec.d.ts +1 -0
- package/dsl/mockService.spec.js +126 -0
- package/dsl/mockService.spec.js.map +1 -0
- package/dsl/verifier.d.ts +48 -2
- package/dsl/verifier.js +142 -3
- package/dsl/verifier.js.map +1 -1
- package/dsl/verifier.spec.d.ts +1 -0
- package/dsl/verifier.spec.js +299 -0
- package/dsl/verifier.spec.js.map +1 -0
- package/errors/configurationError.d.ts +2 -0
- package/errors/configurationError.js +24 -0
- package/errors/configurationError.js.map +1 -0
- package/errors/graphQLQueryError.d.ts +2 -0
- package/errors/graphQLQueryError.js +24 -0
- package/errors/graphQLQueryError.js.map +1 -0
- package/errors/matcherError.d.ts +2 -0
- package/errors/matcherError.js +24 -0
- package/errors/matcherError.js.map +1 -0
- package/errors/verificationError.d.ts +2 -0
- package/errors/verificationError.js +24 -0
- package/errors/verificationError.js.map +1 -0
- package/httpPact.d.ts +69 -0
- package/httpPact.js +206 -0
- package/httpPact.js.map +1 -0
- package/httpPact.spec.d.ts +1 -0
- package/httpPact.spec.js +337 -0
- package/httpPact.spec.js.map +1 -0
- package/messageConsumerPact.d.ts +3 -3
- package/messageConsumerPact.js +5 -4
- package/messageConsumerPact.js.map +1 -1
- package/messageConsumerPact.spec.d.ts +1 -0
- package/messageConsumerPact.spec.js +161 -0
- package/messageConsumerPact.spec.js.map +1 -0
- package/messageProviderPact.d.ts +0 -1
- package/messageProviderPact.js +11 -11
- package/messageProviderPact.js.map +1 -1
- package/messageProviderPact.spec.d.ts +1 -0
- package/messageProviderPact.spec.js +146 -0
- package/messageProviderPact.spec.js.map +1 -0
- package/package.json +24 -26
- package/pact-web.d.ts +2 -2
- package/pact-web.js +20 -10
- package/pact-web.js.map +1 -1
- package/pact-web.spec.d.ts +1 -0
- package/pact-web.spec.js +205 -0
- package/pact-web.spec.js.map +1 -0
- package/pact.d.ts +28 -65
- package/pact.integration.spec.d.ts +0 -0
- package/pact.integration.spec.js +292 -0
- package/pact.integration.spec.js.map +1 -0
- package/pact.js +21 -189
- package/pact.js.map +1 -1
package/dsl/interaction.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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) ||
|
|
68
|
-
|
|
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
|
|
85
|
+
throw new configurationError_1.default("You must provide a description for the Interaction");
|
|
84
86
|
}
|
|
85
87
|
return this.state;
|
|
86
88
|
};
|
package/dsl/interaction.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/dsl/interaction.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,
|
|
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
|
|
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
|
|
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
|
-
|
|
231
|
+
function boolean(value) {
|
|
232
|
+
if (value === void 0) { value = true; }
|
|
233
|
+
return somethingLike(value);
|
|
186
234
|
}
|
|
187
235
|
exports.boolean = boolean;
|
|
188
|
-
|
|
189
|
-
|
|
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.
|
|
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
|
package/dsl/matchers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/dsl/matchers.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAEH,
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/dsl/matchers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|