@pact-foundation/pact 10.0.0-beta.59 → 10.0.0-beta.62
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 +33 -2
- package/MIGRATION.md +24 -1
- package/README.md +174 -1371
- package/package.json +26 -38
- package/src/common/logger.js +5 -1
- package/src/common/logger.js.map +1 -1
- package/src/common/net.d.ts +1 -0
- package/src/common/net.js +16 -2
- package/src/common/net.js.map +1 -1
- package/src/common/request.d.ts +0 -1
- package/src/common/request.js +78 -40
- package/src/common/request.js.map +1 -1
- package/src/common/spec.d.ts +2 -0
- package/src/common/spec.js +22 -0
- package/src/common/spec.js.map +1 -0
- package/src/dsl/apolloGraphql.spec.js +24 -0
- package/src/dsl/apolloGraphql.spec.js.map +1 -1
- package/src/dsl/graphql.d.ts +2 -2
- package/src/dsl/graphql.js +1 -0
- package/src/dsl/graphql.js.map +1 -1
- package/src/dsl/graphql.spec.js +77 -2
- package/src/dsl/graphql.spec.js.map +1 -1
- package/src/dsl/interaction.d.ts +13 -7
- package/src/dsl/interaction.js +30 -1
- package/src/dsl/interaction.js.map +1 -1
- package/src/dsl/interaction.spec.js +21 -31
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +27 -32
- package/src/dsl/matchers.js +24 -23
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +101 -96
- package/src/dsl/matchers.spec.js.map +1 -1
- package/src/dsl/message.d.ts +19 -13
- package/src/dsl/mockService.d.ts +1 -46
- package/src/dsl/mockService.js +0 -72
- package/src/dsl/mockService.js.map +1 -1
- package/src/dsl/verifier/index.js +5 -1
- package/src/dsl/verifier/index.js.map +1 -1
- package/src/dsl/verifier/proxy/index.js +5 -1
- package/src/dsl/verifier/proxy/index.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.d.ts +7 -0
- package/src/dsl/verifier/proxy/parseBody.js +22 -0
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -0
- package/src/dsl/{mockService.spec.d.ts → verifier/proxy/parseBody.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/parseBody.spec.js +118 -0
- package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/proxy.js +19 -4
- package/src/dsl/verifier/proxy/proxy.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/index.js +5 -1
- package/src/dsl/verifier/proxy/stateHandler/index.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +5 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/types.d.ts +1 -0
- package/src/dsl/verifier/verifier.js +8 -1
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +6 -2
- package/src/dsl/verifier/verifier.spec.js.map +1 -1
- package/src/httpPact/ffi.d.ts +15 -0
- package/src/httpPact/ffi.js +91 -0
- package/src/httpPact/ffi.js.map +1 -0
- package/src/{dsl/publisher.spec.d.ts → httpPact/ffi.spec.d.ts} +0 -0
- package/src/httpPact/ffi.spec.js +81 -0
- package/src/httpPact/ffi.spec.js.map +1 -0
- package/src/httpPact/index.d.ts +10 -10
- package/src/httpPact/index.js +146 -81
- package/src/httpPact/index.js.map +1 -1
- package/src/httpPact/index.spec.js +117 -220
- package/src/httpPact/index.spec.js.map +1 -1
- package/src/httpPact/tracing.js +4 -4
- package/src/httpPact/tracing.js.map +1 -1
- package/src/index.d.ts +1 -7
- package/src/index.js +8 -9
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +34 -17
- package/src/messageConsumerPact.js +90 -67
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +0 -46
- package/src/messageConsumerPact.spec.js.map +1 -1
- package/src/messageProviderPact.js +6 -2
- package/src/messageProviderPact.js.map +1 -1
- package/src/messageProviderPact.spec.js +22 -3
- package/src/messageProviderPact.spec.js.map +1 -1
- package/src/v3/display.d.ts +6 -0
- package/src/v3/display.js +83 -0
- package/src/v3/display.js.map +1 -0
- package/src/v3/index.d.ts +1 -6
- package/src/v3/index.js +6 -7
- package/src/v3/index.js.map +1 -1
- package/src/v3/matchers.d.ts +6 -5
- package/src/v3/matchers.js +7 -1
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/matchers.spec.js +5 -1
- package/src/v3/matchers.spec.js.map +1 -1
- package/src/v3/pact.d.ts +4 -70
- package/src/v3/pact.js +68 -133
- package/src/v3/pact.js.map +1 -1
- package/src/v3/types.d.ts +81 -0
- package/src/v3/types.js +11 -0
- package/src/v3/types.js.map +1 -0
- package/src/v3/xml/xmlElement.spec.js +36 -49
- package/src/v3/xml/xmlElement.spec.js.map +1 -1
- package/test/helper.js +5 -1
- package/test/helper.js.map +1 -1
- package/src/dsl/mockService.spec.js +0 -124
- package/src/dsl/mockService.spec.js.map +0 -1
- package/src/dsl/publisher.d.ts +0 -10
- package/src/dsl/publisher.js +0 -22
- package/src/dsl/publisher.js.map +0 -1
- package/src/dsl/publisher.spec.js +0 -43
- package/src/dsl/publisher.spec.js.map +0 -1
- package/src/v3/verifier.d.ts +0 -12
- package/src/v3/verifier.js +0 -23
- package/src/v3/verifier.js.map +0 -1
- package/v3/index.d.ts +0 -1
- package/v3/index.js +0 -16
- package/v3/index.js.map +0 -1
package/src/dsl/graphql.spec.js
CHANGED
|
@@ -18,8 +18,16 @@ describe('GraphQLInteraction', function () {
|
|
|
18
18
|
describe('when given a valid operation', function () {
|
|
19
19
|
it('creates a GraphQL Interaction', function () {
|
|
20
20
|
interaction.uponReceiving('a request');
|
|
21
|
+
interaction.withRequest({
|
|
22
|
+
path: '/graphql',
|
|
23
|
+
method: 'POST',
|
|
24
|
+
});
|
|
21
25
|
interaction.withOperation('query');
|
|
22
26
|
interaction.withQuery('{ hello }');
|
|
27
|
+
interaction.willRespondWith({
|
|
28
|
+
status: 200,
|
|
29
|
+
body: { data: {} },
|
|
30
|
+
});
|
|
23
31
|
var json = interaction.json();
|
|
24
32
|
expect(json.request.body.operationName).to.eq('query');
|
|
25
33
|
});
|
|
@@ -32,8 +40,16 @@ describe('GraphQLInteraction', function () {
|
|
|
32
40
|
describe('when given a null operation', function () {
|
|
33
41
|
it('creates a GrphQL Interaction', function () {
|
|
34
42
|
interaction.uponReceiving('a request');
|
|
43
|
+
interaction.withRequest({
|
|
44
|
+
path: '/graphql',
|
|
45
|
+
method: 'POST',
|
|
46
|
+
});
|
|
35
47
|
interaction.withOperation(null);
|
|
36
48
|
interaction.withQuery('{ hello }');
|
|
49
|
+
interaction.willRespondWith({
|
|
50
|
+
status: 200,
|
|
51
|
+
body: { data: {} },
|
|
52
|
+
});
|
|
37
53
|
var json = interaction.json();
|
|
38
54
|
expect(json.request.body.operationName).to.eq(null);
|
|
39
55
|
});
|
|
@@ -43,11 +59,19 @@ describe('GraphQLInteraction', function () {
|
|
|
43
59
|
describe('when given a set of variables', function () {
|
|
44
60
|
it('adds the variables to the payload', function () {
|
|
45
61
|
interaction.uponReceiving('a request');
|
|
62
|
+
interaction.withRequest({
|
|
63
|
+
path: '/graphql',
|
|
64
|
+
method: 'POST',
|
|
65
|
+
});
|
|
46
66
|
interaction.withOperation('query');
|
|
47
67
|
interaction.withQuery('{ hello }');
|
|
48
68
|
interaction.withVariables({
|
|
49
69
|
foo: 'bar',
|
|
50
70
|
});
|
|
71
|
+
interaction.willRespondWith({
|
|
72
|
+
status: 200,
|
|
73
|
+
body: { data: {} },
|
|
74
|
+
});
|
|
51
75
|
var json = interaction.json();
|
|
52
76
|
expect(json.request.body.variables).to.deep.eq({ foo: 'bar' });
|
|
53
77
|
});
|
|
@@ -55,8 +79,16 @@ describe('GraphQLInteraction', function () {
|
|
|
55
79
|
describe('when no variables are provided', function () {
|
|
56
80
|
it('does not add the variables property to the payload', function () {
|
|
57
81
|
interaction.uponReceiving('a request');
|
|
82
|
+
interaction.withRequest({
|
|
83
|
+
path: '/graphql',
|
|
84
|
+
method: 'POST',
|
|
85
|
+
});
|
|
58
86
|
interaction.withOperation('query');
|
|
59
87
|
interaction.withQuery('{ hello }');
|
|
88
|
+
interaction.willRespondWith({
|
|
89
|
+
status: 200,
|
|
90
|
+
body: { data: {} },
|
|
91
|
+
});
|
|
60
92
|
var json = interaction.json();
|
|
61
93
|
expect(json.request.body).to.not.have.property('variables');
|
|
62
94
|
});
|
|
@@ -64,9 +96,17 @@ describe('GraphQLInteraction', function () {
|
|
|
64
96
|
describe('when an empty variables object is presented', function () {
|
|
65
97
|
it('adds the variables property to the payload', function () {
|
|
66
98
|
interaction.uponReceiving('a request');
|
|
99
|
+
interaction.withRequest({
|
|
100
|
+
path: '/graphql',
|
|
101
|
+
method: 'POST',
|
|
102
|
+
});
|
|
67
103
|
interaction.withOperation('query');
|
|
68
104
|
interaction.withQuery('{ hello }');
|
|
69
105
|
interaction.withVariables({});
|
|
106
|
+
interaction.willRespondWith({
|
|
107
|
+
status: 200,
|
|
108
|
+
body: { data: {} },
|
|
109
|
+
});
|
|
70
110
|
var json = interaction.json();
|
|
71
111
|
expect(json.request.body).to.have.property('variables');
|
|
72
112
|
});
|
|
@@ -75,11 +115,19 @@ describe('GraphQLInteraction', function () {
|
|
|
75
115
|
describe('#withQuery', function () {
|
|
76
116
|
beforeEach(function () {
|
|
77
117
|
interaction.uponReceiving('a request');
|
|
118
|
+
interaction.withRequest({
|
|
119
|
+
path: '/graphql',
|
|
120
|
+
method: 'POST',
|
|
121
|
+
});
|
|
78
122
|
interaction.withOperation('query');
|
|
79
123
|
interaction.withQuery('{ hello }');
|
|
80
124
|
interaction.withVariables({
|
|
81
125
|
foo: 'bar',
|
|
82
126
|
});
|
|
127
|
+
interaction.willRespondWith({
|
|
128
|
+
status: 200,
|
|
129
|
+
body: { data: {} },
|
|
130
|
+
});
|
|
83
131
|
});
|
|
84
132
|
describe('when given an empty query', function () {
|
|
85
133
|
it('fails with an error', function () {
|
|
@@ -96,9 +144,20 @@ describe('GraphQLInteraction', function () {
|
|
|
96
144
|
describe('when given a valid query', function () {
|
|
97
145
|
describe('without variables', function () {
|
|
98
146
|
it('adds regular expressions for the whitespace in the query', function () {
|
|
147
|
+
interaction.uponReceiving('a request');
|
|
148
|
+
interaction.withRequest({
|
|
149
|
+
path: '/graphql',
|
|
150
|
+
method: 'POST',
|
|
151
|
+
});
|
|
152
|
+
interaction.withOperation('query');
|
|
153
|
+
interaction.withQuery('{ hello }');
|
|
154
|
+
interaction.willRespondWith({
|
|
155
|
+
status: 200,
|
|
156
|
+
body: { data: {} },
|
|
157
|
+
});
|
|
99
158
|
var json = interaction.json();
|
|
100
159
|
expect((0, matchers_1.isMatcher)(json.request.body.query)).to.eq(true);
|
|
101
|
-
var r = new RegExp(json.request.body.query.
|
|
160
|
+
var r = new RegExp(json.request.body.query.regex, 'g');
|
|
102
161
|
var lotsOfWhitespace = "{ hello\n\n }";
|
|
103
162
|
expect(r.test(lotsOfWhitespace)).to.eq(true);
|
|
104
163
|
});
|
|
@@ -111,7 +170,7 @@ describe('GraphQLInteraction', function () {
|
|
|
111
170
|
});
|
|
112
171
|
var json = interaction.json();
|
|
113
172
|
expect((0, matchers_1.isMatcher)(json.request.body.query)).to.eq(true);
|
|
114
|
-
var r = new RegExp(json.request.body.query.
|
|
173
|
+
var r = new RegExp(json.request.body.query.regex, 'g');
|
|
115
174
|
// eslint-disable-next-line no-useless-escape
|
|
116
175
|
var lotsOfWhitespace = "{ Hello(id: $id) { name } }";
|
|
117
176
|
expect(r.test(lotsOfWhitespace)).to.eq(true);
|
|
@@ -134,7 +193,15 @@ describe('GraphQLInteraction', function () {
|
|
|
134
193
|
describe('when no operation is provided', function () {
|
|
135
194
|
it('does not be present in unmarshaled body', function () {
|
|
136
195
|
interaction.uponReceiving('a request');
|
|
196
|
+
interaction.withRequest({
|
|
197
|
+
path: '/graphql',
|
|
198
|
+
method: 'POST',
|
|
199
|
+
});
|
|
137
200
|
interaction.withQuery('{ hello }');
|
|
201
|
+
interaction.willRespondWith({
|
|
202
|
+
status: 200,
|
|
203
|
+
body: { data: {} },
|
|
204
|
+
});
|
|
138
205
|
var json = interaction.json();
|
|
139
206
|
expect(json.request.body).to.not.have.property('operationName');
|
|
140
207
|
});
|
|
@@ -143,8 +210,16 @@ describe('GraphQLInteraction', function () {
|
|
|
143
210
|
context('when given a valid query', function () {
|
|
144
211
|
it('marshals the query to JSON', function () {
|
|
145
212
|
interaction.uponReceiving('a request');
|
|
213
|
+
interaction.withRequest({
|
|
214
|
+
path: '/graphql',
|
|
215
|
+
method: 'POST',
|
|
216
|
+
});
|
|
146
217
|
interaction.withOperation('query');
|
|
147
218
|
interaction.withQuery('{ hello }');
|
|
219
|
+
interaction.willRespondWith({
|
|
220
|
+
status: 200,
|
|
221
|
+
body: { data: {} },
|
|
222
|
+
});
|
|
148
223
|
var json = interaction.json();
|
|
149
224
|
expect((0, matchers_1.isMatcher)(json.request.body.query)).to.eq(true);
|
|
150
225
|
expect(json.request.body.query.getValue()).to.eq('{ hello }');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.spec.js","sourceRoot":"","sources":["../../../src/dsl/graphql.spec.ts"],"names":[],"mappings":";;;;;AAAA,8CAAwB;AACxB,sEAA8C;AAC9C,qCAA+C;AAC/C,uCAAuC;AAEvC,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,oBAAoB,EAAE;IAC7B,IAAI,WAA+B,CAAC;IAEpC,UAAU,CAAC;QACT,WAAW,GAAG,IAAI,4BAAkB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE;QACzB,QAAQ,CAAC,8BAA8B,EAAE;YACvC,EAAE,CAAC,+BAA+B,EAAE;gBAClC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACvC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACnC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"graphql.spec.js","sourceRoot":"","sources":["../../../src/dsl/graphql.spec.ts"],"names":[],"mappings":"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"}
|
package/src/dsl/interaction.d.ts
CHANGED
|
@@ -8,20 +8,19 @@ interface QueryObject {
|
|
|
8
8
|
[name: string]: string | Matcher<string> | string[];
|
|
9
9
|
}
|
|
10
10
|
export declare type Query = string | QueryObject;
|
|
11
|
+
export declare type Headers = {
|
|
12
|
+
[header: string]: string | Matcher<string>;
|
|
13
|
+
};
|
|
11
14
|
export interface RequestOptions {
|
|
12
15
|
method: HTTPMethods | HTTPMethod;
|
|
13
16
|
path: string | Matcher<string>;
|
|
14
17
|
query?: Query;
|
|
15
|
-
headers?:
|
|
16
|
-
[name: string]: string | Matcher<string>;
|
|
17
|
-
};
|
|
18
|
+
headers?: Headers;
|
|
18
19
|
body?: AnyTemplate;
|
|
19
20
|
}
|
|
20
21
|
export interface ResponseOptions {
|
|
21
22
|
status: number;
|
|
22
|
-
headers?:
|
|
23
|
-
[name: string]: string | Matcher<string>;
|
|
24
|
-
};
|
|
23
|
+
headers?: Headers;
|
|
25
24
|
body?: AnyTemplate;
|
|
26
25
|
}
|
|
27
26
|
export interface InteractionObject {
|
|
@@ -36,6 +35,12 @@ export interface InteractionState {
|
|
|
36
35
|
request?: RequestOptions;
|
|
37
36
|
response?: ResponseOptions;
|
|
38
37
|
}
|
|
38
|
+
export interface InteractionStateComplete {
|
|
39
|
+
providerState?: string;
|
|
40
|
+
description: string;
|
|
41
|
+
request: RequestOptions;
|
|
42
|
+
response: ResponseOptions;
|
|
43
|
+
}
|
|
39
44
|
export declare class Interaction {
|
|
40
45
|
protected state: InteractionState;
|
|
41
46
|
/**
|
|
@@ -74,6 +79,7 @@ export declare class Interaction {
|
|
|
74
79
|
* Returns the interaction object created.
|
|
75
80
|
* @returns {Object}
|
|
76
81
|
*/
|
|
77
|
-
json():
|
|
82
|
+
json(): InteractionStateComplete;
|
|
78
83
|
}
|
|
84
|
+
export declare const interactionToInteractionObject: (interaction: InteractionStateComplete) => InteractionObject;
|
|
79
85
|
export {};
|
package/src/dsl/interaction.js
CHANGED
|
@@ -7,7 +7,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
7
7
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
8
|
};
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.Interaction = void 0;
|
|
10
|
+
exports.interactionToInteractionObject = exports.Interaction = void 0;
|
|
11
11
|
var lodash_1 = require("lodash");
|
|
12
12
|
var request_1 = require("../common/request");
|
|
13
13
|
var matchers_1 = require("./matchers");
|
|
@@ -104,12 +104,41 @@ var Interaction = /** @class */ (function () {
|
|
|
104
104
|
* @returns {Object}
|
|
105
105
|
*/
|
|
106
106
|
Interaction.prototype.json = function () {
|
|
107
|
+
var _a, _b, _c, _d, _e, _f;
|
|
107
108
|
if ((0, lodash_1.isNil)(this.state.description)) {
|
|
108
109
|
throw new configurationError_1.default('You must provide a description for the Interaction');
|
|
109
110
|
}
|
|
111
|
+
if ((0, lodash_1.isNil)(this.state.request) ||
|
|
112
|
+
(0, lodash_1.isNil)((_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.method) ||
|
|
113
|
+
(0, lodash_1.isNil)((_d = (_c = this.state) === null || _c === void 0 ? void 0 : _c.request) === null || _d === void 0 ? void 0 : _d.path)) {
|
|
114
|
+
throw new configurationError_1.default('You must provide a request with at least a method and path for the Interaction');
|
|
115
|
+
}
|
|
116
|
+
if ((0, lodash_1.isNil)(this.state.response) || (0, lodash_1.isNil)((_f = (_e = this.state) === null || _e === void 0 ? void 0 : _e.response) === null || _f === void 0 ? void 0 : _f.status)) {
|
|
117
|
+
throw new configurationError_1.default('You must provide a response with a status for the Interaction');
|
|
118
|
+
}
|
|
110
119
|
return this.state;
|
|
111
120
|
};
|
|
112
121
|
return Interaction;
|
|
113
122
|
}());
|
|
114
123
|
exports.Interaction = Interaction;
|
|
124
|
+
var interactionToInteractionObject = function (interaction) {
|
|
125
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
126
|
+
return {
|
|
127
|
+
state: interaction.providerState,
|
|
128
|
+
uponReceiving: interaction.description,
|
|
129
|
+
withRequest: {
|
|
130
|
+
method: (_a = interaction.request) === null || _a === void 0 ? void 0 : _a.method,
|
|
131
|
+
path: (_b = interaction.request) === null || _b === void 0 ? void 0 : _b.path,
|
|
132
|
+
query: (_c = interaction.request) === null || _c === void 0 ? void 0 : _c.query,
|
|
133
|
+
body: (_d = interaction.request) === null || _d === void 0 ? void 0 : _d.body,
|
|
134
|
+
headers: (_e = interaction.request) === null || _e === void 0 ? void 0 : _e.headers,
|
|
135
|
+
},
|
|
136
|
+
willRespondWith: {
|
|
137
|
+
status: (_f = interaction.response) === null || _f === void 0 ? void 0 : _f.status,
|
|
138
|
+
body: (_g = interaction.response) === null || _g === void 0 ? void 0 : _g.body,
|
|
139
|
+
headers: (_h = interaction.response) === null || _h === void 0 ? void 0 : _h.headers,
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
exports.interactionToInteractionObject = interactionToInteractionObject;
|
|
115
144
|
//# sourceMappingURL=interaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../src/dsl/interaction.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,iCAA6C;AAC7C,6CAA4D;AAC5D,uCAA6D;AAC7D,oFAA8D;
|
|
1
|
+
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../src/dsl/interaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// @ts-nocheck
|
|
6
7
|
var chai_1 = __importDefault(require("chai"));
|
|
7
8
|
var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
8
9
|
var request_1 = require("../common/request");
|
|
@@ -15,20 +16,19 @@ describe('Interaction', function () {
|
|
|
15
16
|
it('creates Interaction with provider state', function () {
|
|
16
17
|
var actual = new interaction_1.Interaction()
|
|
17
18
|
.uponReceiving('r')
|
|
18
|
-
.given('provider state')
|
|
19
|
-
|
|
20
|
-
expect(actual).to.eql({
|
|
19
|
+
.given('provider state');
|
|
20
|
+
expect(actual.state).to.eql({
|
|
21
21
|
description: 'r',
|
|
22
22
|
providerState: 'provider state',
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
25
|
describe('without provider state', function () {
|
|
26
26
|
it('creates Interaction when blank', function () {
|
|
27
|
-
var actual = new interaction_1.Interaction().uponReceiving('r').given('').
|
|
27
|
+
var actual = new interaction_1.Interaction().uponReceiving('r').given('').state;
|
|
28
28
|
expect(actual).to.eql({ description: 'r' });
|
|
29
29
|
});
|
|
30
30
|
it('creates Interaction when nothing is passed', function () {
|
|
31
|
-
var actual = new interaction_1.Interaction().uponReceiving('r').
|
|
31
|
+
var actual = new interaction_1.Interaction().uponReceiving('r').state;
|
|
32
32
|
expect(actual).to.eql({ description: 'r' });
|
|
33
33
|
});
|
|
34
34
|
});
|
|
@@ -40,7 +40,7 @@ describe('Interaction', function () {
|
|
|
40
40
|
});
|
|
41
41
|
it('has a state with description', function () {
|
|
42
42
|
interaction.uponReceiving('an interaction description');
|
|
43
|
-
expect(interaction.
|
|
43
|
+
expect(interaction.state).to.eql({
|
|
44
44
|
description: 'an interaction description',
|
|
45
45
|
});
|
|
46
46
|
});
|
|
@@ -69,8 +69,7 @@ describe('Interaction', function () {
|
|
|
69
69
|
describe('with only mandatory params', function () {
|
|
70
70
|
var actual = new interaction_1.Interaction()
|
|
71
71
|
.uponReceiving('a request')
|
|
72
|
-
.withRequest({ method: request_1.HTTPMethods.GET, path: '/search' })
|
|
73
|
-
.json();
|
|
72
|
+
.withRequest({ method: request_1.HTTPMethods.GET, path: '/search' }).state;
|
|
74
73
|
it('has a state containing only the given keys', function () {
|
|
75
74
|
expect(actual).to.have.property('request');
|
|
76
75
|
expect(actual.request).to.have.keys('method', 'path');
|
|
@@ -80,16 +79,13 @@ describe('Interaction', function () {
|
|
|
80
79
|
});
|
|
81
80
|
});
|
|
82
81
|
describe('with all other parameters', function () {
|
|
83
|
-
var actual = new interaction_1.Interaction()
|
|
84
|
-
.uponReceiving('request')
|
|
85
|
-
.withRequest({
|
|
82
|
+
var actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
86
83
|
body: { id: 1, name: 'Test', due: 'tomorrow' },
|
|
87
84
|
headers: { 'Content-Type': 'application/json' },
|
|
88
85
|
method: request_1.HTTPMethods.GET,
|
|
89
86
|
path: '/search',
|
|
90
87
|
query: 'q=test',
|
|
91
|
-
})
|
|
92
|
-
.json();
|
|
88
|
+
}).state;
|
|
93
89
|
it('has a full state all available keys', function () {
|
|
94
90
|
expect(actual).to.have.property('request');
|
|
95
91
|
expect(actual.request).to.have.keys('method', 'path', 'query', 'headers', 'body');
|
|
@@ -108,21 +104,21 @@ describe('Interaction', function () {
|
|
|
108
104
|
generate: 'limit=50&status=finished&order=desc',
|
|
109
105
|
matcher: '^limit=[0-9]+&status=(finished)&order=(desc|asc)$',
|
|
110
106
|
});
|
|
111
|
-
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).
|
|
107
|
+
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
112
108
|
.request).to.have.any.keys('query');
|
|
113
109
|
});
|
|
114
110
|
it('is passed with matcher as the value', function () {
|
|
115
111
|
request.query = {
|
|
116
112
|
'id[]': (0, matchers_1.eachLike)('1'),
|
|
117
113
|
};
|
|
118
|
-
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).
|
|
114
|
+
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
119
115
|
.request).to.have.any.keys('query');
|
|
120
116
|
});
|
|
121
117
|
it('is passed with object', function () {
|
|
122
118
|
request.query = {
|
|
123
119
|
id: '1',
|
|
124
120
|
};
|
|
125
|
-
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).
|
|
121
|
+
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
126
122
|
.request).to.have.any.keys('query');
|
|
127
123
|
});
|
|
128
124
|
it('is passed with array', function () {
|
|
@@ -130,31 +126,25 @@ describe('Interaction', function () {
|
|
|
130
126
|
request.query = {
|
|
131
127
|
id: ['1', '2'],
|
|
132
128
|
};
|
|
133
|
-
expect((_a = new interaction_1.Interaction().uponReceiving('request').withRequest(request).
|
|
129
|
+
expect((_a = new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
134
130
|
.request) === null || _a === void 0 ? void 0 : _a.query).to.deep.eq({ id: ['1', '2'] });
|
|
135
131
|
});
|
|
136
132
|
});
|
|
137
133
|
describe('request body', function () {
|
|
138
134
|
it('is included when an empty string is specified', function () {
|
|
139
|
-
var actual = new interaction_1.Interaction()
|
|
140
|
-
.uponReceiving('request')
|
|
141
|
-
.withRequest({
|
|
135
|
+
var actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
142
136
|
body: '',
|
|
143
137
|
method: request_1.HTTPMethods.GET,
|
|
144
138
|
path: '/path',
|
|
145
|
-
})
|
|
146
|
-
.json();
|
|
139
|
+
}).state;
|
|
147
140
|
expect(actual.request).to.have.any.keys('body');
|
|
148
141
|
});
|
|
149
142
|
it('is not included when explicitly set to undefined', function () {
|
|
150
|
-
var actual = new interaction_1.Interaction()
|
|
151
|
-
.uponReceiving('request')
|
|
152
|
-
.withRequest({
|
|
143
|
+
var actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
153
144
|
body: undefined,
|
|
154
145
|
method: request_1.HTTPMethods.GET,
|
|
155
146
|
path: '/path',
|
|
156
|
-
})
|
|
157
|
-
.json();
|
|
147
|
+
}).state;
|
|
158
148
|
expect(actual.request).not.to.have.any.keys('body');
|
|
159
149
|
});
|
|
160
150
|
});
|
|
@@ -175,7 +165,7 @@ describe('Interaction', function () {
|
|
|
175
165
|
beforeEach(function () {
|
|
176
166
|
interaction.uponReceiving('request');
|
|
177
167
|
interaction.willRespondWith({ status: 200 });
|
|
178
|
-
actual = interaction.
|
|
168
|
+
actual = interaction.state;
|
|
179
169
|
});
|
|
180
170
|
it('has a state compacted with only present keys', function () {
|
|
181
171
|
expect(actual).to.have.property('response');
|
|
@@ -194,7 +184,7 @@ describe('Interaction', function () {
|
|
|
194
184
|
headers: { 'Content-Type': 'application/json' },
|
|
195
185
|
status: 404,
|
|
196
186
|
});
|
|
197
|
-
actual = interaction.
|
|
187
|
+
actual = interaction.state;
|
|
198
188
|
});
|
|
199
189
|
it('has a full state all available keys', function () {
|
|
200
190
|
expect(actual).to.have.property('response');
|
|
@@ -207,7 +197,7 @@ describe('Interaction', function () {
|
|
|
207
197
|
body: '',
|
|
208
198
|
status: 204,
|
|
209
199
|
});
|
|
210
|
-
var actual = interaction.
|
|
200
|
+
var actual = interaction.state;
|
|
211
201
|
expect(actual.response).to.have.any.keys('body');
|
|
212
202
|
});
|
|
213
203
|
it('is not included when explicitly set to undefined', function () {
|
|
@@ -215,7 +205,7 @@ describe('Interaction', function () {
|
|
|
215
205
|
body: undefined,
|
|
216
206
|
status: 204,
|
|
217
207
|
});
|
|
218
|
-
var actual = interaction.
|
|
208
|
+
var actual = interaction.state;
|
|
219
209
|
expect(actual.response).not.to.have.any.keys('body');
|
|
220
210
|
});
|
|
221
211
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.spec.js","sourceRoot":"","sources":["../../../src/dsl/interaction.spec.ts"],"names":[],"mappings":";;;;;AAAA,8CAAwB;AACxB,sEAA8C;AAC9C,6CAAgD;AAChD,6CAA8D;AAC9D,uCAA4C;AAE5C,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,aAAa,EAAE;IACtB,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,CAAC,yCAAyC,EAAE;YAC5C,IAAM,MAAM,GAAG,IAAI,yBAAW,EAAE;iBAC7B,aAAa,CAAC,GAAG,CAAC;iBAClB,KAAK,CAAC,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"interaction.spec.js","sourceRoot":"","sources":["../../../src/dsl/interaction.spec.ts"],"names":[],"mappings":"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"}
|
package/src/dsl/matchers.d.ts
CHANGED
|
@@ -14,6 +14,25 @@ export declare const UUID_V4_FORMAT = "^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12
|
|
|
14
14
|
export declare const IPV4_FORMAT = "^(\\d{1,3}\\.)+\\d{1,3}$";
|
|
15
15
|
export declare const IPV6_FORMAT = "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$";
|
|
16
16
|
export declare const HEX_FORMAT = "^[0-9a-fA-F]+$";
|
|
17
|
+
export interface Matcher<T> {
|
|
18
|
+
value?: T;
|
|
19
|
+
'pact:matcher:type': string;
|
|
20
|
+
getValue(): T;
|
|
21
|
+
}
|
|
22
|
+
export interface ArrayMatcher<T> extends Matcher<T> {
|
|
23
|
+
'pact:matcher:type': string;
|
|
24
|
+
min?: number;
|
|
25
|
+
max?: number;
|
|
26
|
+
}
|
|
27
|
+
export declare function isMatcher(x: AnyTemplate): x is Matcher<AnyTemplate>;
|
|
28
|
+
export declare type AnyTemplate = AnyJson | Matcher<AnyTemplate> | ArrayMatcher<AnyTemplate> | TemplateMap | ArrayTemplate;
|
|
29
|
+
export declare type InterfaceToTemplate<O> = {
|
|
30
|
+
[K in keyof O]: AnyTemplate;
|
|
31
|
+
};
|
|
32
|
+
interface TemplateMap {
|
|
33
|
+
[key: string]: AnyTemplate;
|
|
34
|
+
}
|
|
35
|
+
declare type ArrayTemplate = Array<AnyTemplate>;
|
|
17
36
|
/**
|
|
18
37
|
* Validates the given example against the regex.
|
|
19
38
|
*
|
|
@@ -23,18 +42,21 @@ export declare const HEX_FORMAT = "^[0-9a-fA-F]+$";
|
|
|
23
42
|
export declare function validateExample(example: string, matcher: string): boolean;
|
|
24
43
|
/**
|
|
25
44
|
* The eachLike matcher
|
|
26
|
-
* @param {any}
|
|
45
|
+
* @param {any} template
|
|
27
46
|
* @param {Object} opts
|
|
28
47
|
* @param {Number} opts.min
|
|
29
48
|
*/
|
|
30
|
-
export declare function eachLike<T>(
|
|
49
|
+
export declare function eachLike<T>(template: T, opts?: {
|
|
31
50
|
min: number;
|
|
32
|
-
}): ArrayMatcher<T>;
|
|
51
|
+
}): ArrayMatcher<T[]>;
|
|
33
52
|
/**
|
|
34
53
|
* The somethingLike matcher
|
|
35
54
|
* @param {any} value - the value to be somethingLike
|
|
36
55
|
*/
|
|
37
56
|
export declare function somethingLike<T>(value: T): Matcher<T>;
|
|
57
|
+
export interface RegexMatcher<T> extends Matcher<T> {
|
|
58
|
+
regex: string;
|
|
59
|
+
}
|
|
38
60
|
/**
|
|
39
61
|
* The term matcher. Also aliased to 'regex' for discoverability.
|
|
40
62
|
* @param {Object} opts
|
|
@@ -44,7 +66,7 @@ export declare function somethingLike<T>(value: T): Matcher<T>;
|
|
|
44
66
|
export declare function term(opts: {
|
|
45
67
|
generate: string;
|
|
46
68
|
matcher: string;
|
|
47
|
-
}):
|
|
69
|
+
}): RegexMatcher<string>;
|
|
48
70
|
/**
|
|
49
71
|
* Email address matcher.
|
|
50
72
|
* @param {string} address - a email address to use as an example
|
|
@@ -117,32 +139,5 @@ export declare function boolean(value?: boolean): Matcher<boolean>;
|
|
|
117
139
|
export declare function string(value?: string): Matcher<string>;
|
|
118
140
|
export { somethingLike as like };
|
|
119
141
|
export { term as regex };
|
|
120
|
-
export interface Matcher<T> {
|
|
121
|
-
data?: {
|
|
122
|
-
generate: string;
|
|
123
|
-
matcher: {
|
|
124
|
-
json_class: string;
|
|
125
|
-
o: number;
|
|
126
|
-
s: string;
|
|
127
|
-
};
|
|
128
|
-
};
|
|
129
|
-
contents?: T;
|
|
130
|
-
json_class: string;
|
|
131
|
-
getValue(): T;
|
|
132
|
-
}
|
|
133
|
-
export interface ArrayMatcher<T> {
|
|
134
|
-
contents: T;
|
|
135
|
-
json_class: string;
|
|
136
|
-
getValue(): T[];
|
|
137
|
-
min: number;
|
|
138
|
-
}
|
|
139
|
-
export declare function isMatcher(x: AnyTemplate): x is Matcher<AnyTemplate>;
|
|
140
|
-
export declare type AnyTemplate = AnyJson | Matcher<AnyTemplate> | ArrayMatcher<AnyTemplate> | TemplateMap | ArrayTemplate;
|
|
141
|
-
export declare type InterfaceToTemplate<O> = {
|
|
142
|
-
[K in keyof O]: AnyTemplate;
|
|
143
|
-
};
|
|
144
|
-
interface TemplateMap {
|
|
145
|
-
[key: string]: AnyTemplate;
|
|
146
|
-
}
|
|
147
|
-
declare type ArrayTemplate = Array<AnyTemplate>;
|
|
148
142
|
export declare function extractPayload(value: AnyTemplate): AnyJson;
|
|
143
|
+
export declare function matcherValueOrString(obj: unknown): string;
|