@pact-foundation/pact 16.3.1 → 16.4.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.
- package/CHANGELOG.md +7 -0
- package/CONTRIBUTING.md +2 -2
- package/package.json +16 -24
- package/src/common/graphQL/configurationError.js +2 -22
- package/src/common/graphQL/configurationError.js.map +1 -1
- package/src/common/graphQL/graphQL.d.ts +2 -2
- package/src/common/graphQL/graphQL.js +11 -14
- package/src/common/graphQL/graphQL.js.map +1 -1
- package/src/common/graphQL/graphQLQueryError.js +2 -22
- package/src/common/graphQL/graphQLQueryError.js.map +1 -1
- package/src/common/logger.js +9 -9
- package/src/common/logger.js.map +1 -1
- package/src/common/matchingRules.d.ts +1 -1
- package/src/common/matchingRules.js +21 -21
- package/src/common/matchingRules.js.map +1 -1
- package/src/common/net.js +36 -42
- package/src/common/net.js.map +1 -1
- package/src/common/net.spec.js +41 -53
- package/src/common/net.spec.js.map +1 -1
- package/src/common/request.js +33 -82
- package/src/common/request.js.map +1 -1
- package/src/common/request.spec.js +26 -26
- package/src/common/request.spec.js.map +1 -1
- package/src/common/spec.js +3 -4
- package/src/common/spec.js.map +1 -1
- package/src/dsl/apolloGraphql.js +7 -25
- package/src/dsl/apolloGraphql.js.map +1 -1
- package/src/dsl/apolloGraphql.spec.js +21 -18
- package/src/dsl/apolloGraphql.spec.js.map +1 -1
- package/src/dsl/graphql.d.ts +2 -2
- package/src/dsl/graphql.js +29 -48
- package/src/dsl/graphql.js.map +1 -1
- package/src/dsl/graphql.spec.js +81 -66
- package/src/dsl/graphql.spec.js.map +1 -1
- package/src/dsl/interaction.d.ts +2 -2
- package/src/dsl/interaction.js +41 -48
- package/src/dsl/interaction.js.map +1 -1
- package/src/dsl/interaction.spec.js +77 -70
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +1 -1
- package/src/dsl/matchers.js +19 -31
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +199 -208
- package/src/dsl/matchers.spec.js.map +1 -1
- package/src/dsl/message.d.ts +3 -3
- package/src/dsl/options.d.ts +3 -3
- package/src/dsl/verifier/proxy/hooks.d.ts +2 -2
- package/src/dsl/verifier/proxy/hooks.js +42 -112
- package/src/dsl/verifier/proxy/hooks.js.map +1 -1
- package/src/dsl/verifier/proxy/hooks.spec.js +84 -199
- package/src/dsl/verifier/proxy/hooks.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/messages.d.ts +2 -2
- package/src/dsl/verifier/proxy/messages.js +88 -106
- package/src/dsl/verifier/proxy/messages.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.d.ts +1 -1
- package/src/dsl/verifier/proxy/parseBody.js +2 -2
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.spec.js +31 -76
- package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.d.ts +2 -2
- package/src/dsl/verifier/proxy/proxy.js +22 -26
- package/src/dsl/verifier/proxy/proxy.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.spec.js +14 -14
- package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.d.ts +3 -3
- package/src/dsl/verifier/proxy/proxyRequest.js +7 -7
- package/src/dsl/verifier/proxy/proxyRequest.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.spec.js +49 -64
- package/src/dsl/verifier/proxy/proxyRequest.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +3 -3
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js +14 -18
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +76 -159
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.d.ts +2 -2
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +23 -72
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +37 -85
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/tracer.d.ts +1 -1
- package/src/dsl/verifier/proxy/tracer.js +42 -35
- package/src/dsl/verifier/proxy/tracer.js.map +1 -1
- package/src/dsl/verifier/proxy/types.d.ts +5 -5
- package/src/dsl/verifier/types.d.ts +3 -3
- package/src/dsl/verifier/verifier.d.ts +1 -1
- package/src/dsl/verifier/verifier.js +49 -56
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +76 -93
- package/src/dsl/verifier/verifier.spec.js.map +1 -1
- package/src/errors/configurationError.js +2 -22
- package/src/errors/configurationError.js.map +1 -1
- package/src/errors/graphQLQueryError.js +2 -22
- package/src/errors/graphQLQueryError.js.map +1 -1
- package/src/errors/matcherError.js +2 -22
- package/src/errors/matcherError.js.map +1 -1
- package/src/errors/verificationError.js +2 -22
- package/src/errors/verificationError.js.map +1 -1
- package/src/httpPact/ffi.d.ts +2 -2
- package/src/httpPact/ffi.js +28 -29
- package/src/httpPact/ffi.js.map +1 -1
- package/src/httpPact/ffi.spec.js +30 -31
- package/src/httpPact/ffi.spec.js.map +1 -1
- package/src/httpPact/index.d.ts +3 -3
- package/src/httpPact/index.js +92 -149
- package/src/httpPact/index.js.map +1 -1
- package/src/httpPact/index.spec.js +75 -125
- package/src/httpPact/index.spec.js.map +1 -1
- package/src/httpPact/tracing.js +20 -28
- package/src/httpPact/tracing.js.map +1 -1
- package/src/index.js +1 -1
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +3 -3
- package/src/messageConsumerPact.js +50 -51
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +50 -49
- package/src/messageConsumerPact.spec.js.map +1 -1
- package/src/messageProviderPact.d.ts +3 -3
- package/src/messageProviderPact.js +68 -85
- package/src/messageProviderPact.js.map +1 -1
- package/src/messageProviderPact.spec.js +75 -66
- package/src/messageProviderPact.spec.js.map +1 -1
- package/src/pact.integration.spec.js +243 -313
- package/src/pact.integration.spec.js.map +1 -1
- package/src/v3/display.d.ts +1 -1
- package/src/v3/display.js +44 -58
- package/src/v3/display.js.map +1 -1
- package/src/v3/ffi.js +15 -15
- package/src/v3/ffi.js.map +1 -1
- package/src/v3/ffi.spec.js +8 -8
- package/src/v3/ffi.spec.js.map +1 -1
- package/src/v3/graphql/graphQL.d.ts +4 -4
- package/src/v3/graphql/graphQL.js +50 -75
- package/src/v3/graphql/graphQL.js.map +1 -1
- package/src/v3/matchers.d.ts +2 -2
- package/src/v3/matchers.js +112 -147
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/matchers.spec.js +168 -187
- package/src/v3/matchers.spec.js.map +1 -1
- package/src/v3/pact.d.ts +2 -2
- package/src/v3/pact.js +103 -151
- package/src/v3/pact.js.map +1 -1
- package/src/v3/types.d.ts +1 -1
- package/src/v3/xml/xmlBuilder.d.ts +1 -3
- package/src/v3/xml/xmlBuilder.js +7 -9
- package/src/v3/xml/xmlBuilder.js.map +1 -1
- package/src/v3/xml/xmlElement.d.ts +2 -2
- package/src/v3/xml/xmlElement.js +24 -41
- package/src/v3/xml/xmlElement.js.map +1 -1
- package/src/v3/xml/xmlElement.spec.js +23 -25
- package/src/v3/xml/xmlElement.spec.js.map +1 -1
- package/src/v3/xml/xmlNode.js +2 -5
- package/src/v3/xml/xmlNode.js.map +1 -1
- package/src/v3/xml/xmlText.d.ts +1 -1
- package/src/v3/xml/xmlText.js +9 -25
- package/src/v3/xml/xmlText.js.map +1 -1
- package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +4 -4
- package/src/v4/graphql/graphQLInteractionWithRequest.js +21 -17
- package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -1
- package/src/v4/graphql/graphQLRequestBuilder.d.ts +3 -3
- package/src/v4/graphql/graphQLRequestBuilder.js +18 -20
- package/src/v4/graphql/graphQLRequestBuilder.js.map +1 -1
- package/src/v4/graphql/index.d.ts +6 -6
- package/src/v4/graphql/index.js +21 -17
- package/src/v4/graphql/index.js.map +1 -1
- package/src/v4/graphql/types.d.ts +5 -5
- package/src/v4/http/index.d.ts +2 -2
- package/src/v4/http/index.js +48 -93
- package/src/v4/http/index.js.map +1 -1
- package/src/v4/http/interactionWithCompleteRequest.d.ts +4 -7
- package/src/v4/http/interactionWithCompleteRequest.js +6 -10
- package/src/v4/http/interactionWithCompleteRequest.js.map +1 -1
- package/src/v4/http/interactionWithPlugin.d.ts +3 -3
- package/src/v4/http/interactionWithPlugin.js +14 -11
- package/src/v4/http/interactionWithPlugin.js.map +1 -1
- package/src/v4/http/interactionWithPluginRequest.d.ts +2 -2
- package/src/v4/http/interactionWithPluginRequest.js +11 -8
- package/src/v4/http/interactionWithPluginRequest.js.map +1 -1
- package/src/v4/http/interactionWithPluginResponse.d.ts +2 -2
- package/src/v4/http/interactionWithPluginResponse.js +10 -48
- package/src/v4/http/interactionWithPluginResponse.js.map +1 -1
- package/src/v4/http/interactionWithRequest.d.ts +2 -2
- package/src/v4/http/interactionWithRequest.js +11 -8
- package/src/v4/http/interactionWithRequest.js.map +1 -1
- package/src/v4/http/interactionWithResponse.d.ts +2 -2
- package/src/v4/http/interactionWithResponse.js +10 -48
- package/src/v4/http/interactionWithResponse.js.map +1 -1
- package/src/v4/http/requestBuilder.d.ts +3 -3
- package/src/v4/http/requestBuilder.js +32 -34
- package/src/v4/http/requestBuilder.js.map +1 -1
- package/src/v4/http/requestWithPluginBuilder.d.ts +2 -2
- package/src/v4/http/requestWithPluginBuilder.js +26 -46
- package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
- package/src/v4/http/responseBuilder.d.ts +3 -3
- package/src/v4/http/responseBuilder.js +24 -25
- package/src/v4/http/responseBuilder.js.map +1 -1
- package/src/v4/http/responseWithPluginBuilder.d.ts +1 -1
- package/src/v4/http/responseWithPluginBuilder.js +5 -25
- package/src/v4/http/responseWithPluginBuilder.js.map +1 -1
- package/src/v4/http/types.d.ts +3 -2
- package/src/v4/http/unconfiguredInteraction.d.ts +6 -5
- package/src/v4/http/unconfiguredInteraction.js +31 -26
- package/src/v4/http/unconfiguredInteraction.js.map +1 -1
- package/src/v4/index.d.ts +4 -4
- package/src/v4/index.js +31 -35
- package/src/v4/index.js.map +1 -1
- package/src/v4/message/asynchronousMessage.d.ts +7 -6
- package/src/v4/message/asynchronousMessage.js +157 -190
- package/src/v4/message/asynchronousMessage.js.map +1 -1
- package/src/v4/message/index.d.ts +7 -6
- package/src/v4/message/index.js +188 -217
- package/src/v4/message/index.js.map +1 -1
- package/src/v4/message/types.d.ts +5 -3
- package/src/v4/types.d.ts +3 -3
|
@@ -36,17 +36,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
const chai = __importStar(require("chai"));
|
|
40
|
+
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
41
|
+
const request_1 = require("../common/request");
|
|
42
|
+
const interaction_1 = require("./interaction");
|
|
43
|
+
const matchers_1 = require("./matchers");
|
|
44
44
|
chai.use(chai_as_promised_1.default);
|
|
45
|
-
|
|
46
|
-
describe('Interaction',
|
|
47
|
-
describe('#given',
|
|
48
|
-
it('creates Interaction with provider state',
|
|
49
|
-
|
|
45
|
+
const { expect } = chai;
|
|
46
|
+
describe('Interaction', () => {
|
|
47
|
+
describe('#given', () => {
|
|
48
|
+
it('creates Interaction with provider state', () => {
|
|
49
|
+
const actual = new interaction_1.Interaction()
|
|
50
50
|
.uponReceiving('r')
|
|
51
51
|
.given('provider state');
|
|
52
52
|
expect(actual.state).to.eql({
|
|
@@ -54,84 +54,90 @@ describe('Interaction', function () {
|
|
|
54
54
|
providerState: 'provider state',
|
|
55
55
|
});
|
|
56
56
|
});
|
|
57
|
-
describe('without provider state',
|
|
58
|
-
it('creates Interaction when blank',
|
|
59
|
-
|
|
57
|
+
describe('without provider state', () => {
|
|
58
|
+
it('creates Interaction when blank', () => {
|
|
59
|
+
const actual = new interaction_1.Interaction().uponReceiving('r').given('').state;
|
|
60
60
|
expect(actual).to.eql({ description: 'r' });
|
|
61
61
|
});
|
|
62
|
-
it('creates Interaction when nothing is passed',
|
|
63
|
-
|
|
62
|
+
it('creates Interaction when nothing is passed', () => {
|
|
63
|
+
const actual = new interaction_1.Interaction().uponReceiving('r').state;
|
|
64
64
|
expect(actual).to.eql({ description: 'r' });
|
|
65
65
|
});
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
|
-
describe('#uponReceiving',
|
|
69
|
-
|
|
70
|
-
it('throws error when no description provided',
|
|
68
|
+
describe('#uponReceiving', () => {
|
|
69
|
+
const interaction = new interaction_1.Interaction();
|
|
70
|
+
it('throws error when no description provided', () => {
|
|
71
71
|
expect(interaction.uponReceiving).to.throw(Error, 'You must provide a description for the interaction.');
|
|
72
72
|
});
|
|
73
|
-
it('has a state with description',
|
|
73
|
+
it('has a state with description', () => {
|
|
74
74
|
interaction.uponReceiving('an interaction description');
|
|
75
75
|
expect(interaction.state).to.eql({
|
|
76
76
|
description: 'an interaction description',
|
|
77
77
|
});
|
|
78
78
|
});
|
|
79
79
|
});
|
|
80
|
-
describe('#withRequest',
|
|
81
|
-
|
|
82
|
-
it('throws error when method is not provided',
|
|
80
|
+
describe('#withRequest', () => {
|
|
81
|
+
const interaction = new interaction_1.Interaction();
|
|
82
|
+
it('throws error when method is not provided', () => {
|
|
83
83
|
expect(interaction.withRequest.bind(interaction, {})).to.throw(Error, 'You must provide an HTTP method.');
|
|
84
84
|
});
|
|
85
|
-
it('throws error when an invalid method is provided',
|
|
86
|
-
expect(interaction.withRequest.bind(interaction, {
|
|
85
|
+
it('throws error when an invalid method is provided', () => {
|
|
86
|
+
expect(interaction.withRequest.bind(interaction, {
|
|
87
|
+
method: 'FOO',
|
|
88
|
+
})).to.throw(Error, 'You must provide a valid HTTP method: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, COPY, LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH, UNLOCK, REPORT.');
|
|
87
89
|
});
|
|
88
|
-
it('throws error when method is not provided but path is provided',
|
|
89
|
-
expect(interaction.withRequest.bind(interaction, {
|
|
90
|
+
it('throws error when method is not provided but path is provided', () => {
|
|
91
|
+
expect(interaction.withRequest.bind(interaction, {
|
|
92
|
+
path: '/',
|
|
93
|
+
})).to.throw(Error, 'You must provide an HTTP method.');
|
|
90
94
|
});
|
|
91
|
-
it('throws error when path is not provided',
|
|
92
|
-
expect(interaction.withRequest.bind(interaction, {
|
|
95
|
+
it('throws error when path is not provided', () => {
|
|
96
|
+
expect(interaction.withRequest.bind(interaction, {
|
|
97
|
+
method: request_1.HTTPMethods.GET,
|
|
98
|
+
})).to.throw(Error, 'You must provide a path.');
|
|
93
99
|
});
|
|
94
|
-
it('throws error when query object is not a string',
|
|
100
|
+
it('throws error when query object is not a string', () => {
|
|
95
101
|
expect(interaction.withRequest.bind(interaction, {
|
|
96
102
|
method: request_1.HTTPMethods.GET,
|
|
97
103
|
path: '/',
|
|
98
104
|
query: { string: false, query: 'false' },
|
|
99
105
|
})).to.throw(Error, 'Query must only contain strings.');
|
|
100
106
|
});
|
|
101
|
-
describe('with only mandatory params',
|
|
102
|
-
|
|
107
|
+
describe('with only mandatory params', () => {
|
|
108
|
+
const actual = new interaction_1.Interaction()
|
|
103
109
|
.uponReceiving('a request')
|
|
104
110
|
.withRequest({ method: request_1.HTTPMethods.GET, path: '/search' }).state;
|
|
105
|
-
it('has a state containing only the given keys',
|
|
111
|
+
it('has a state containing only the given keys', () => {
|
|
106
112
|
expect(actual).to.have.property('request');
|
|
107
113
|
expect(actual.request).to.have.keys('method', 'path');
|
|
108
114
|
});
|
|
109
|
-
it('request has no other keys',
|
|
115
|
+
it('request has no other keys', () => {
|
|
110
116
|
expect(actual.request).to.not.have.keys('query', 'headers', 'body');
|
|
111
117
|
});
|
|
112
118
|
});
|
|
113
|
-
describe('with all other parameters',
|
|
114
|
-
|
|
119
|
+
describe('with all other parameters', () => {
|
|
120
|
+
const actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
115
121
|
body: { id: 1, name: 'Test', due: 'tomorrow' },
|
|
116
122
|
headers: { 'Content-Type': 'application/json' },
|
|
117
123
|
method: request_1.HTTPMethods.GET,
|
|
118
124
|
path: '/search',
|
|
119
125
|
query: 'q=test',
|
|
120
126
|
}).state;
|
|
121
|
-
it('has a full state all available keys',
|
|
127
|
+
it('has a full state all available keys', () => {
|
|
122
128
|
expect(actual).to.have.property('request');
|
|
123
129
|
expect(actual.request).to.have.keys('method', 'path', 'query', 'headers', 'body');
|
|
124
130
|
});
|
|
125
131
|
});
|
|
126
|
-
describe('query type',
|
|
127
|
-
|
|
132
|
+
describe('query type', () => {
|
|
133
|
+
const request = {
|
|
128
134
|
body: { id: 1, name: 'Test', due: 'tomorrow' },
|
|
129
135
|
headers: { 'Content-Type': 'application/json' },
|
|
130
136
|
method: request_1.HTTPMethods.GET,
|
|
131
137
|
path: '/search',
|
|
132
138
|
query: {},
|
|
133
139
|
};
|
|
134
|
-
it('is passed with matcher',
|
|
140
|
+
it('is passed with matcher', () => {
|
|
135
141
|
request.query = (0, matchers_1.term)({
|
|
136
142
|
generate: 'limit=50&status=finished&order=desc',
|
|
137
143
|
matcher: '^limit=[0-9]+&status=(finished)&order=(desc|asc)$',
|
|
@@ -139,40 +145,39 @@ describe('Interaction', function () {
|
|
|
139
145
|
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
140
146
|
.request).to.have.any.keys('query');
|
|
141
147
|
});
|
|
142
|
-
it('is passed with matcher as the value',
|
|
148
|
+
it('is passed with matcher as the value', () => {
|
|
143
149
|
request.query = {
|
|
144
150
|
'id[]': (0, matchers_1.eachLike)('1'),
|
|
145
151
|
};
|
|
146
152
|
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
147
153
|
.request).to.have.any.keys('query');
|
|
148
154
|
});
|
|
149
|
-
it('is passed with object',
|
|
155
|
+
it('is passed with object', () => {
|
|
150
156
|
request.query = {
|
|
151
157
|
id: '1',
|
|
152
158
|
};
|
|
153
159
|
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
154
160
|
.request).to.have.any.keys('query');
|
|
155
161
|
});
|
|
156
|
-
it('is passed with array',
|
|
157
|
-
var _a;
|
|
162
|
+
it('is passed with array', () => {
|
|
158
163
|
request.query = {
|
|
159
164
|
id: ['1', '2'],
|
|
160
165
|
};
|
|
161
|
-
expect(
|
|
162
|
-
.request
|
|
166
|
+
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
167
|
+
.request?.query).to.deep.eq({ id: ['1', '2'] });
|
|
163
168
|
});
|
|
164
169
|
});
|
|
165
|
-
describe('request body',
|
|
166
|
-
it('is included when an empty string is specified',
|
|
167
|
-
|
|
170
|
+
describe('request body', () => {
|
|
171
|
+
it('is included when an empty string is specified', () => {
|
|
172
|
+
const actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
168
173
|
body: '',
|
|
169
174
|
method: request_1.HTTPMethods.GET,
|
|
170
175
|
path: '/path',
|
|
171
176
|
}).state;
|
|
172
177
|
expect(actual.request).to.have.any.keys('body');
|
|
173
178
|
});
|
|
174
|
-
it('is not included when explicitly set to undefined',
|
|
175
|
-
|
|
179
|
+
it('is not included when explicitly set to undefined', () => {
|
|
180
|
+
const actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
176
181
|
body: undefined,
|
|
177
182
|
method: request_1.HTTPMethods.GET,
|
|
178
183
|
path: '/path',
|
|
@@ -181,35 +186,37 @@ describe('Interaction', function () {
|
|
|
181
186
|
});
|
|
182
187
|
});
|
|
183
188
|
});
|
|
184
|
-
describe('#willRespondWith',
|
|
185
|
-
|
|
186
|
-
beforeEach(
|
|
189
|
+
describe('#willRespondWith', () => {
|
|
190
|
+
let interaction;
|
|
191
|
+
beforeEach(() => {
|
|
187
192
|
interaction = new interaction_1.Interaction();
|
|
188
193
|
});
|
|
189
|
-
it('throws error when status is not provided',
|
|
194
|
+
it('throws error when status is not provided', () => {
|
|
190
195
|
expect(interaction.willRespondWith.bind(interaction, {})).to.throw(Error, 'You must provide a status code.');
|
|
191
196
|
});
|
|
192
|
-
it('throws error when status is blank',
|
|
193
|
-
expect(interaction.willRespondWith.bind(interaction, {
|
|
197
|
+
it('throws error when status is blank', () => {
|
|
198
|
+
expect(interaction.willRespondWith.bind(interaction, {
|
|
199
|
+
status: '',
|
|
200
|
+
})).to.throw(Error, 'You must provide a status code.');
|
|
194
201
|
});
|
|
195
|
-
describe('with only mandatory params',
|
|
196
|
-
|
|
197
|
-
beforeEach(
|
|
202
|
+
describe('with only mandatory params', () => {
|
|
203
|
+
let actual;
|
|
204
|
+
beforeEach(() => {
|
|
198
205
|
interaction.uponReceiving('request');
|
|
199
206
|
interaction.willRespondWith({ status: 200 });
|
|
200
207
|
actual = interaction.state;
|
|
201
208
|
});
|
|
202
|
-
it('has a state compacted with only present keys',
|
|
209
|
+
it('has a state compacted with only present keys', () => {
|
|
203
210
|
expect(actual).to.have.property('response');
|
|
204
211
|
expect(actual.response).to.have.keys('status');
|
|
205
212
|
});
|
|
206
|
-
it('request has no other keys',
|
|
213
|
+
it('request has no other keys', () => {
|
|
207
214
|
expect(actual.response).to.not.have.keys('headers', 'body');
|
|
208
215
|
});
|
|
209
216
|
});
|
|
210
|
-
describe('with all other parameters',
|
|
211
|
-
|
|
212
|
-
beforeEach(
|
|
217
|
+
describe('with all other parameters', () => {
|
|
218
|
+
let actual;
|
|
219
|
+
beforeEach(() => {
|
|
213
220
|
interaction.uponReceiving('request');
|
|
214
221
|
interaction.willRespondWith({
|
|
215
222
|
body: { id: 1, name: 'Test', due: 'tomorrow' },
|
|
@@ -218,26 +225,26 @@ describe('Interaction', function () {
|
|
|
218
225
|
});
|
|
219
226
|
actual = interaction.state;
|
|
220
227
|
});
|
|
221
|
-
it('has a full state all available keys',
|
|
228
|
+
it('has a full state all available keys', () => {
|
|
222
229
|
expect(actual).to.have.property('response');
|
|
223
230
|
expect(actual.response).to.have.keys('status', 'headers', 'body');
|
|
224
231
|
});
|
|
225
232
|
});
|
|
226
|
-
describe('response body',
|
|
227
|
-
it('is included when an empty string is specified',
|
|
233
|
+
describe('response body', () => {
|
|
234
|
+
it('is included when an empty string is specified', () => {
|
|
228
235
|
interaction.uponReceiving('request').willRespondWith({
|
|
229
236
|
body: '',
|
|
230
237
|
status: 204,
|
|
231
238
|
});
|
|
232
|
-
|
|
239
|
+
const actual = interaction.state;
|
|
233
240
|
expect(actual.response).to.have.any.keys('body');
|
|
234
241
|
});
|
|
235
|
-
it('is not included when explicitly set to undefined',
|
|
242
|
+
it('is not included when explicitly set to undefined', () => {
|
|
236
243
|
interaction.uponReceiving('request').willRespondWith({
|
|
237
244
|
body: undefined,
|
|
238
245
|
status: 204,
|
|
239
246
|
});
|
|
240
|
-
|
|
247
|
+
const actual = interaction.state;
|
|
241
248
|
expect(actual.response).not.to.have.any.keys('body');
|
|
242
249
|
});
|
|
243
250
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.spec.js","sourceRoot":"","sources":["../../../src/dsl/interaction.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* For specific matcher types (e.g. IpV6), the values generated are not random
|
|
4
4
|
* but are fixed, to prevent contract invalidation after each run of the consumer test.
|
|
5
5
|
*/
|
|
6
|
-
import { AnyJson } from '../common/jsonTypes';
|
|
6
|
+
import type { AnyJson } from '../common/jsonTypes';
|
|
7
7
|
export declare const EMAIL_FORMAT = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$";
|
|
8
8
|
export declare const ISO8601_DATE_FORMAT = "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))?)$";
|
|
9
9
|
export declare const ISO8601_DATETIME_FORMAT = "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)$";
|
package/src/dsl/matchers.js
CHANGED
|
@@ -4,17 +4,6 @@
|
|
|
4
4
|
* For specific matcher types (e.g. IpV6), the values generated are not random
|
|
5
5
|
* but are fixed, to prevent contract invalidation after each run of the consumer test.
|
|
6
6
|
*/
|
|
7
|
-
var __assign = (this && this.__assign) || function () {
|
|
8
|
-
__assign = Object.assign || function(t) {
|
|
9
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
10
|
-
s = arguments[i];
|
|
11
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
12
|
-
t[p] = s[p];
|
|
13
|
-
}
|
|
14
|
-
return t;
|
|
15
|
-
};
|
|
16
|
-
return __assign.apply(this, arguments);
|
|
17
|
-
};
|
|
18
7
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
8
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
9
|
};
|
|
@@ -43,9 +32,9 @@ exports.boolean = boolean;
|
|
|
43
32
|
exports.string = string;
|
|
44
33
|
exports.extractPayload = extractPayload;
|
|
45
34
|
exports.matcherValueOrString = matcherValueOrString;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
35
|
+
const lodash_1 = require("lodash");
|
|
36
|
+
const ramda_1 = require("ramda");
|
|
37
|
+
const matcherError_1 = __importDefault(require("../errors/matcherError"));
|
|
49
38
|
// Note: The following regexes are Ruby formatted,
|
|
50
39
|
// so attempting to parse as JS without modification is probably not going to work as intended!
|
|
51
40
|
exports.EMAIL_FORMAT = '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$';
|
|
@@ -84,12 +73,12 @@ function eachLike(template, opts) {
|
|
|
84
73
|
if (opts && ((0, lodash_1.isNil)(opts.min) || opts.min < 1)) {
|
|
85
74
|
throw new matcherError_1.default('Error creating a Pact eachLike. Please provide opts.min that is > 0');
|
|
86
75
|
}
|
|
87
|
-
|
|
76
|
+
const min = !(0, lodash_1.isEmpty)(opts) && opts ? opts.min : 1;
|
|
88
77
|
return {
|
|
89
|
-
value: (0, ramda_1.times)(
|
|
90
|
-
getValue:
|
|
78
|
+
value: (0, ramda_1.times)(() => template, min),
|
|
79
|
+
getValue: () => (0, ramda_1.times)(() => template, min),
|
|
91
80
|
'pact:matcher:type': 'type',
|
|
92
|
-
min
|
|
81
|
+
min,
|
|
93
82
|
};
|
|
94
83
|
}
|
|
95
84
|
/**
|
|
@@ -101,8 +90,8 @@ function somethingLike(value) {
|
|
|
101
90
|
throw new matcherError_1.default('Error creating a Pact somethingLike Match. Value cannot be a function or undefined');
|
|
102
91
|
}
|
|
103
92
|
return {
|
|
104
|
-
value
|
|
105
|
-
getValue:
|
|
93
|
+
value,
|
|
94
|
+
getValue: () => value,
|
|
106
95
|
'pact:matcher:type': 'type',
|
|
107
96
|
};
|
|
108
97
|
}
|
|
@@ -113,15 +102,16 @@ function somethingLike(value) {
|
|
|
113
102
|
* @param {string} opts.matcher - a Regex representing the value
|
|
114
103
|
*/
|
|
115
104
|
function term(opts) {
|
|
116
|
-
|
|
105
|
+
const { generate, matcher } = opts;
|
|
117
106
|
if ((0, lodash_1.isNil)(generate) || (0, lodash_1.isNil)(matcher)) {
|
|
118
|
-
throw new matcherError_1.default(
|
|
107
|
+
throw new matcherError_1.default(`Error creating a Pact Term.
|
|
108
|
+
Please provide an object containing "generate" and "matcher" properties`);
|
|
119
109
|
}
|
|
120
110
|
if (!validateExample(generate, matcher)) {
|
|
121
|
-
throw new matcherError_1.default(
|
|
111
|
+
throw new matcherError_1.default(`Example '${generate}' does not match provided regular expression '${matcher}'`);
|
|
122
112
|
}
|
|
123
113
|
return {
|
|
124
|
-
getValue:
|
|
114
|
+
getValue: () => generate,
|
|
125
115
|
value: generate,
|
|
126
116
|
regex: matcher,
|
|
127
117
|
'pact:matcher:type': 'regex',
|
|
@@ -246,15 +236,13 @@ function integer(int) {
|
|
|
246
236
|
/**
|
|
247
237
|
* Boolean MatcherV2.
|
|
248
238
|
*/
|
|
249
|
-
function boolean(value) {
|
|
250
|
-
if (value === void 0) { value = true; }
|
|
239
|
+
function boolean(value = true) {
|
|
251
240
|
return somethingLike(value);
|
|
252
241
|
}
|
|
253
242
|
/**
|
|
254
243
|
* String MatcherV2.
|
|
255
244
|
*/
|
|
256
|
-
function string(value) {
|
|
257
|
-
if (value === void 0) { value = 'iloveorange'; }
|
|
245
|
+
function string(value = 'iloveorange') {
|
|
258
246
|
return somethingLike(value);
|
|
259
247
|
}
|
|
260
248
|
// Recurse the object removing any underlying matching guff, returning
|
|
@@ -267,9 +255,9 @@ function extractPayload(value) {
|
|
|
267
255
|
return value.map(extractPayload);
|
|
268
256
|
}
|
|
269
257
|
if (value !== null && typeof value === 'object') {
|
|
270
|
-
return Object.keys(value).reduce(
|
|
271
|
-
|
|
272
|
-
return
|
|
258
|
+
return Object.keys(value).reduce((acc, propName) => {
|
|
259
|
+
acc[propName] = extractPayload(value[propName]);
|
|
260
|
+
return acc;
|
|
273
261
|
}, {});
|
|
274
262
|
}
|
|
275
263
|
return value;
|
package/src/dsl/matchers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/dsl/matchers.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/dsl/matchers.ts"],"names":[],"mappings":"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"}
|