@pact-foundation/pact 16.3.1 → 16.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/CONTRIBUTING.md +2 -2
- package/README.md +22 -12
- package/package.json +26 -47
- package/scripts/ci/build-and-test.sh +0 -3
- package/scripts/install-plugins.js +104 -0
- 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 +7 -1
- package/src/common/matchingRules.js +42 -22
- 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 +39 -87
- 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 +29 -73
- 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 -58
- 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 +92 -117
- 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 +109 -132
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +2 -3
- package/src/dsl/matchers.js +19 -31
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +279 -289
- 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 +86 -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 +3 -3
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.spec.js +35 -113
- 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 +11 -53
- 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 +54 -104
- 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 -193
- 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 -122
- 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 +5 -1
- package/src/dsl/verifier/verifier.js +53 -60
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +84 -151
- 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 +40 -83
- 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 +102 -195
- 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.d.ts +25 -25
- package/src/index.js +29 -29
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +5 -5
- package/src/messageConsumerPact.js +59 -53
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +55 -97
- 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 +96 -123
- package/src/messageProviderPact.spec.js.map +1 -1
- package/src/pact.integration.spec.js +242 -351
- 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 +20 -16
- package/src/v3/ffi.js.map +1 -1
- package/src/v3/ffi.spec.js +7 -42
- 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/graphql/index.d.ts +1 -1
- package/src/v3/graphql/index.js +1 -1
- package/src/v3/graphql/index.js.map +1 -1
- package/src/v3/index.d.ts +4 -12
- package/src/v3/index.js +4 -12
- package/src/v3/index.js.map +1 -1
- package/src/v3/matchers.d.ts +15 -3
- package/src/v3/matchers.js +131 -148
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/matchers.spec.js +281 -232
- package/src/v3/matchers.spec.js.map +1 -1
- package/src/v3/pact.d.ts +2 -2
- package/src/v3/pact.js +108 -151
- package/src/v3/pact.js.map +1 -1
- package/src/v3/pact.spec.js +94 -0
- package/src/v3/pact.spec.js.map +1 -0
- package/src/v3/types.d.ts +19 -3
- package/src/v3/types.js +22 -1
- package/src/v3/types.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 +53 -93
- package/src/v4/http/index.js.map +1 -1
- package/src/v4/http/index.spec.d.ts +1 -0
- package/src/v4/http/index.spec.js +73 -0
- package/src/v4/http/index.spec.js.map +1 -0
- 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 +4 -3
- package/src/v4/http/interactionWithPluginRequest.js +17 -9
- 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 +4 -3
- package/src/v4/http/interactionWithRequest.js +17 -9
- package/src/v4/http/interactionWithRequest.js.map +1 -1
- package/src/v4/http/interactionWithRequest.spec.d.ts +1 -0
- package/src/v4/http/interactionWithRequest.spec.js +82 -0
- package/src/v4/http/interactionWithRequest.spec.js.map +1 -0
- 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 +4 -3
- package/src/v4/http/requestBuilder.js +36 -34
- package/src/v4/http/requestBuilder.js.map +1 -1
- package/src/v4/http/requestBuilder.spec.d.ts +1 -0
- package/src/v4/http/requestBuilder.spec.js +42 -0
- package/src/v4/http/requestBuilder.spec.js.map +1 -0
- package/src/v4/http/requestWithPluginBuilder.d.ts +3 -2
- package/src/v4/http/requestWithPluginBuilder.js +30 -46
- package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
- package/src/v4/http/requestWithPluginBuilder.spec.d.ts +1 -0
- package/src/v4/http/requestWithPluginBuilder.spec.js +34 -0
- package/src/v4/http/requestWithPluginBuilder.spec.js.map +1 -0
- package/src/v4/http/responseBuilder.d.ts +4 -3
- package/src/v4/http/responseBuilder.js +28 -25
- package/src/v4/http/responseBuilder.js.map +1 -1
- package/src/v4/http/responseBuilder.spec.d.ts +1 -0
- package/src/v4/http/responseBuilder.spec.js +42 -0
- package/src/v4/http/responseBuilder.spec.js.map +1 -0
- 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/responseWithPluginBuilder.spec.d.ts +1 -0
- package/src/v4/http/responseWithPluginBuilder.spec.js +34 -0
- package/src/v4/http/responseWithPluginBuilder.spec.js.map +1 -0
- package/src/v4/http/types.d.ts +13 -4
- 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 +6 -5
- package/src/v4/index.js +32 -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
- package/src/xml/index.d.ts +4 -0
- package/src/xml/index.js +21 -0
- package/src/xml/index.js.map +1 -0
- package/src/{v3/xml → xml}/xmlBuilder.d.ts +1 -3
- package/src/{v3/xml → xml}/xmlBuilder.js +7 -9
- package/src/xml/xmlBuilder.js.map +1 -0
- package/src/{v3/xml → xml}/xmlElement.d.ts +2 -2
- package/src/xml/xmlElement.js +73 -0
- package/src/xml/xmlElement.js.map +1 -0
- package/src/xml/xmlElement.spec.d.ts +1 -0
- package/src/xml/xmlElement.spec.js +107 -0
- package/src/xml/xmlElement.spec.js.map +1 -0
- package/src/xml/xmlNode.js +7 -0
- package/src/xml/xmlNode.js.map +1 -0
- package/src/{v3/xml → xml}/xmlText.d.ts +1 -1
- package/src/xml/xmlText.js +15 -0
- package/src/xml/xmlText.js.map +1 -0
- package/scripts/install-plugins +0 -106
- package/src/v3/xml/xmlBuilder.js.map +0 -1
- package/src/v3/xml/xmlElement.js +0 -90
- package/src/v3/xml/xmlElement.js.map +0 -1
- package/src/v3/xml/xmlElement.spec.js +0 -113
- package/src/v3/xml/xmlElement.spec.js.map +0 -1
- package/src/v3/xml/xmlNode.js +0 -10
- package/src/v3/xml/xmlNode.js.map +0 -1
- package/src/v3/xml/xmlText.js +0 -31
- package/src/v3/xml/xmlText.js.map +0 -1
- /package/src/v3/{xml/xmlElement.spec.d.ts → pact.spec.d.ts} +0 -0
- /package/src/{v3/xml → xml}/xmlNode.d.ts +0 -0
|
@@ -1,215 +1,190 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
describe('Interaction', function () {
|
|
47
|
-
describe('#given', function () {
|
|
48
|
-
it('creates Interaction with provider state', function () {
|
|
49
|
-
var actual = new interaction_1.Interaction()
|
|
3
|
+
const request_1 = require("../common/request");
|
|
4
|
+
const interaction_1 = require("./interaction");
|
|
5
|
+
const matchers_1 = require("./matchers");
|
|
6
|
+
describe('Interaction', () => {
|
|
7
|
+
describe('#given', () => {
|
|
8
|
+
it('creates Interaction with provider state', () => {
|
|
9
|
+
const actual = new interaction_1.Interaction()
|
|
50
10
|
.uponReceiving('r')
|
|
51
11
|
.given('provider state');
|
|
52
|
-
expect(actual.state).
|
|
12
|
+
expect(actual.state).toEqual({
|
|
53
13
|
description: 'r',
|
|
54
14
|
providerState: 'provider state',
|
|
55
15
|
});
|
|
56
16
|
});
|
|
57
|
-
describe('without provider state',
|
|
58
|
-
it('creates Interaction when blank',
|
|
59
|
-
|
|
60
|
-
expect(actual).
|
|
17
|
+
describe('without provider state', () => {
|
|
18
|
+
it('creates Interaction when blank', () => {
|
|
19
|
+
const actual = new interaction_1.Interaction().uponReceiving('r').given('').state;
|
|
20
|
+
expect(actual).toEqual({ description: 'r' });
|
|
61
21
|
});
|
|
62
|
-
it('creates Interaction when nothing is passed',
|
|
63
|
-
|
|
64
|
-
expect(actual).
|
|
22
|
+
it('creates Interaction when nothing is passed', () => {
|
|
23
|
+
const actual = new interaction_1.Interaction().uponReceiving('r').state;
|
|
24
|
+
expect(actual).toEqual({ description: 'r' });
|
|
65
25
|
});
|
|
66
26
|
});
|
|
67
27
|
});
|
|
68
|
-
describe('#uponReceiving',
|
|
69
|
-
|
|
70
|
-
it('throws error when no description provided',
|
|
71
|
-
expect(interaction.uponReceiving).
|
|
28
|
+
describe('#uponReceiving', () => {
|
|
29
|
+
const interaction = new interaction_1.Interaction();
|
|
30
|
+
it('throws error when no description provided', () => {
|
|
31
|
+
expect(interaction.uponReceiving).toThrow('You must provide a description for the interaction.');
|
|
72
32
|
});
|
|
73
|
-
it('has a state with description',
|
|
33
|
+
it('has a state with description', () => {
|
|
74
34
|
interaction.uponReceiving('an interaction description');
|
|
75
|
-
expect(interaction.state).
|
|
35
|
+
expect(interaction.state).toEqual({
|
|
76
36
|
description: 'an interaction description',
|
|
77
37
|
});
|
|
78
38
|
});
|
|
79
39
|
});
|
|
80
|
-
describe('#withRequest',
|
|
81
|
-
|
|
82
|
-
it('throws error when method is not provided',
|
|
83
|
-
expect(interaction.withRequest.bind(interaction, {})).
|
|
40
|
+
describe('#withRequest', () => {
|
|
41
|
+
const interaction = new interaction_1.Interaction();
|
|
42
|
+
it('throws error when method is not provided', () => {
|
|
43
|
+
expect(interaction.withRequest.bind(interaction, {})).toThrow('You must provide an HTTP method.');
|
|
84
44
|
});
|
|
85
|
-
it('throws error when an invalid method is provided',
|
|
86
|
-
expect(interaction.withRequest.bind(interaction, {
|
|
45
|
+
it('throws error when an invalid method is provided', () => {
|
|
46
|
+
expect(interaction.withRequest.bind(interaction, {
|
|
47
|
+
method: 'FOO',
|
|
48
|
+
})).toThrow('You must provide a valid HTTP method: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, COPY, LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH, UNLOCK, REPORT.');
|
|
87
49
|
});
|
|
88
|
-
it('throws error when method is not provided but path is provided',
|
|
89
|
-
expect(interaction.withRequest.bind(interaction, {
|
|
50
|
+
it('throws error when method is not provided but path is provided', () => {
|
|
51
|
+
expect(interaction.withRequest.bind(interaction, {
|
|
52
|
+
path: '/',
|
|
53
|
+
})).toThrow('You must provide an HTTP method.');
|
|
90
54
|
});
|
|
91
|
-
it('throws error when path is not provided',
|
|
92
|
-
expect(interaction.withRequest.bind(interaction, {
|
|
55
|
+
it('throws error when path is not provided', () => {
|
|
56
|
+
expect(interaction.withRequest.bind(interaction, {
|
|
57
|
+
method: request_1.HTTPMethods.GET,
|
|
58
|
+
})).toThrow('You must provide a path.');
|
|
93
59
|
});
|
|
94
|
-
it('throws error when query object is not a string',
|
|
60
|
+
it('throws error when query object is not a string', () => {
|
|
95
61
|
expect(interaction.withRequest.bind(interaction, {
|
|
96
62
|
method: request_1.HTTPMethods.GET,
|
|
97
63
|
path: '/',
|
|
98
64
|
query: { string: false, query: 'false' },
|
|
99
|
-
})).
|
|
65
|
+
})).toThrow('Query must only contain strings.');
|
|
100
66
|
});
|
|
101
|
-
describe('with only mandatory params',
|
|
102
|
-
|
|
67
|
+
describe('with only mandatory params', () => {
|
|
68
|
+
const actual = new interaction_1.Interaction()
|
|
103
69
|
.uponReceiving('a request')
|
|
104
70
|
.withRequest({ method: request_1.HTTPMethods.GET, path: '/search' }).state;
|
|
105
|
-
it('has a state containing only the given keys',
|
|
106
|
-
expect(actual).
|
|
107
|
-
expect(actual.request).
|
|
71
|
+
it('has a state containing only the given keys', () => {
|
|
72
|
+
expect(actual).toHaveProperty('request');
|
|
73
|
+
expect(actual.request).toHaveProperty('method');
|
|
74
|
+
expect(actual.request).toHaveProperty('path');
|
|
108
75
|
});
|
|
109
|
-
it('request has no other keys',
|
|
110
|
-
expect(actual.request).
|
|
76
|
+
it('request has no other keys', () => {
|
|
77
|
+
expect(actual.request).not.toHaveProperty('query');
|
|
78
|
+
expect(actual.request).not.toHaveProperty('headers');
|
|
79
|
+
expect(actual.request).not.toHaveProperty('body');
|
|
111
80
|
});
|
|
112
81
|
});
|
|
113
|
-
describe('with all other parameters',
|
|
114
|
-
|
|
82
|
+
describe('with all other parameters', () => {
|
|
83
|
+
const actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
115
84
|
body: { id: 1, name: 'Test', due: 'tomorrow' },
|
|
116
85
|
headers: { 'Content-Type': 'application/json' },
|
|
117
86
|
method: request_1.HTTPMethods.GET,
|
|
118
87
|
path: '/search',
|
|
119
88
|
query: 'q=test',
|
|
120
89
|
}).state;
|
|
121
|
-
it('has a full state all available keys',
|
|
122
|
-
expect(actual).
|
|
123
|
-
expect(actual.request).
|
|
90
|
+
it('has a full state all available keys', () => {
|
|
91
|
+
expect(actual).toHaveProperty('request');
|
|
92
|
+
expect(actual.request).toHaveProperty('method');
|
|
93
|
+
expect(actual.request).toHaveProperty('path');
|
|
94
|
+
expect(actual.request).toHaveProperty('query');
|
|
95
|
+
expect(actual.request).toHaveProperty('headers');
|
|
96
|
+
expect(actual.request).toHaveProperty('body');
|
|
124
97
|
});
|
|
125
98
|
});
|
|
126
|
-
describe('query type',
|
|
127
|
-
|
|
99
|
+
describe('query type', () => {
|
|
100
|
+
const request = {
|
|
128
101
|
body: { id: 1, name: 'Test', due: 'tomorrow' },
|
|
129
102
|
headers: { 'Content-Type': 'application/json' },
|
|
130
103
|
method: request_1.HTTPMethods.GET,
|
|
131
104
|
path: '/search',
|
|
132
105
|
query: {},
|
|
133
106
|
};
|
|
134
|
-
it('is passed with matcher',
|
|
107
|
+
it('is passed with matcher', () => {
|
|
135
108
|
request.query = (0, matchers_1.term)({
|
|
136
109
|
generate: 'limit=50&status=finished&order=desc',
|
|
137
110
|
matcher: '^limit=[0-9]+&status=(finished)&order=(desc|asc)$',
|
|
138
111
|
});
|
|
139
112
|
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
140
|
-
.request).
|
|
113
|
+
.request).toHaveProperty('query');
|
|
141
114
|
});
|
|
142
|
-
it('is passed with matcher as the value',
|
|
115
|
+
it('is passed with matcher as the value', () => {
|
|
143
116
|
request.query = {
|
|
144
117
|
'id[]': (0, matchers_1.eachLike)('1'),
|
|
145
118
|
};
|
|
146
119
|
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
147
|
-
.request).
|
|
120
|
+
.request).toHaveProperty('query');
|
|
148
121
|
});
|
|
149
|
-
it('is passed with object',
|
|
122
|
+
it('is passed with object', () => {
|
|
150
123
|
request.query = {
|
|
151
124
|
id: '1',
|
|
152
125
|
};
|
|
153
126
|
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
154
|
-
.request).
|
|
127
|
+
.request).toHaveProperty('query');
|
|
155
128
|
});
|
|
156
|
-
it('is passed with array',
|
|
157
|
-
var _a;
|
|
129
|
+
it('is passed with array', () => {
|
|
158
130
|
request.query = {
|
|
159
131
|
id: ['1', '2'],
|
|
160
132
|
};
|
|
161
|
-
expect(
|
|
162
|
-
.request
|
|
133
|
+
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
134
|
+
.request?.query).toEqual({ id: ['1', '2'] });
|
|
163
135
|
});
|
|
164
136
|
});
|
|
165
|
-
describe('request body',
|
|
166
|
-
it('is included when an empty string is specified',
|
|
167
|
-
|
|
137
|
+
describe('request body', () => {
|
|
138
|
+
it('is included when an empty string is specified', () => {
|
|
139
|
+
const actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
168
140
|
body: '',
|
|
169
141
|
method: request_1.HTTPMethods.GET,
|
|
170
142
|
path: '/path',
|
|
171
143
|
}).state;
|
|
172
|
-
expect(actual.request).
|
|
144
|
+
expect(actual.request).toHaveProperty('body');
|
|
173
145
|
});
|
|
174
|
-
it('is not included when explicitly set to undefined',
|
|
175
|
-
|
|
146
|
+
it('is not included when explicitly set to undefined', () => {
|
|
147
|
+
const actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
176
148
|
body: undefined,
|
|
177
149
|
method: request_1.HTTPMethods.GET,
|
|
178
150
|
path: '/path',
|
|
179
151
|
}).state;
|
|
180
|
-
expect(actual.request).not.
|
|
152
|
+
expect(actual.request).not.toHaveProperty('body');
|
|
181
153
|
});
|
|
182
154
|
});
|
|
183
155
|
});
|
|
184
|
-
describe('#willRespondWith',
|
|
185
|
-
|
|
186
|
-
beforeEach(
|
|
156
|
+
describe('#willRespondWith', () => {
|
|
157
|
+
let interaction;
|
|
158
|
+
beforeEach(() => {
|
|
187
159
|
interaction = new interaction_1.Interaction();
|
|
188
160
|
});
|
|
189
|
-
it('throws error when status is not provided',
|
|
190
|
-
expect(interaction.willRespondWith.bind(interaction, {})).
|
|
161
|
+
it('throws error when status is not provided', () => {
|
|
162
|
+
expect(interaction.willRespondWith.bind(interaction, {})).toThrow('You must provide a status code.');
|
|
191
163
|
});
|
|
192
|
-
it('throws error when status is blank',
|
|
193
|
-
expect(interaction.willRespondWith.bind(interaction, {
|
|
164
|
+
it('throws error when status is blank', () => {
|
|
165
|
+
expect(interaction.willRespondWith.bind(interaction, {
|
|
166
|
+
status: '',
|
|
167
|
+
})).toThrow('You must provide a status code.');
|
|
194
168
|
});
|
|
195
|
-
describe('with only mandatory params',
|
|
196
|
-
|
|
197
|
-
beforeEach(
|
|
169
|
+
describe('with only mandatory params', () => {
|
|
170
|
+
let actual;
|
|
171
|
+
beforeEach(() => {
|
|
198
172
|
interaction.uponReceiving('request');
|
|
199
173
|
interaction.willRespondWith({ status: 200 });
|
|
200
174
|
actual = interaction.state;
|
|
201
175
|
});
|
|
202
|
-
it('has a state compacted with only present keys',
|
|
203
|
-
expect(actual).
|
|
204
|
-
expect(actual.response).
|
|
176
|
+
it('has a state compacted with only present keys', () => {
|
|
177
|
+
expect(actual).toHaveProperty('response');
|
|
178
|
+
expect(actual.response).toHaveProperty('status');
|
|
205
179
|
});
|
|
206
|
-
it('request has no other keys',
|
|
207
|
-
expect(actual.response).
|
|
180
|
+
it('request has no other keys', () => {
|
|
181
|
+
expect(actual.response).not.toHaveProperty('headers');
|
|
182
|
+
expect(actual.response).not.toHaveProperty('body');
|
|
208
183
|
});
|
|
209
184
|
});
|
|
210
|
-
describe('with all other parameters',
|
|
211
|
-
|
|
212
|
-
beforeEach(
|
|
185
|
+
describe('with all other parameters', () => {
|
|
186
|
+
let actual;
|
|
187
|
+
beforeEach(() => {
|
|
213
188
|
interaction.uponReceiving('request');
|
|
214
189
|
interaction.willRespondWith({
|
|
215
190
|
body: { id: 1, name: 'Test', due: 'tomorrow' },
|
|
@@ -218,27 +193,29 @@ describe('Interaction', function () {
|
|
|
218
193
|
});
|
|
219
194
|
actual = interaction.state;
|
|
220
195
|
});
|
|
221
|
-
it('has a full state all available keys',
|
|
222
|
-
expect(actual).
|
|
223
|
-
expect(actual.response).
|
|
196
|
+
it('has a full state all available keys', () => {
|
|
197
|
+
expect(actual).toHaveProperty('response');
|
|
198
|
+
expect(actual.response).toHaveProperty('status');
|
|
199
|
+
expect(actual.response).toHaveProperty('headers');
|
|
200
|
+
expect(actual.response).toHaveProperty('body');
|
|
224
201
|
});
|
|
225
202
|
});
|
|
226
|
-
describe('response body',
|
|
227
|
-
it('is included when an empty string is specified',
|
|
203
|
+
describe('response body', () => {
|
|
204
|
+
it('is included when an empty string is specified', () => {
|
|
228
205
|
interaction.uponReceiving('request').willRespondWith({
|
|
229
206
|
body: '',
|
|
230
207
|
status: 204,
|
|
231
208
|
});
|
|
232
|
-
|
|
233
|
-
expect(actual.response).
|
|
209
|
+
const actual = interaction.state;
|
|
210
|
+
expect(actual.response).toHaveProperty('body');
|
|
234
211
|
});
|
|
235
|
-
it('is not included when explicitly set to undefined',
|
|
212
|
+
it('is not included when explicitly set to undefined', () => {
|
|
236
213
|
interaction.uponReceiving('request').willRespondWith({
|
|
237
214
|
body: undefined,
|
|
238
215
|
status: 204,
|
|
239
216
|
});
|
|
240
|
-
|
|
241
|
-
expect(actual.response).not.
|
|
217
|
+
const actual = interaction.state;
|
|
218
|
+
expect(actual.response).not.toHaveProperty('body');
|
|
242
219
|
});
|
|
243
220
|
});
|
|
244
221
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.spec.js","sourceRoot":"","sources":["../../../src/dsl/interaction.spec.ts"],"names":[],"mappings":"
|
|
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)$";
|
|
@@ -137,7 +137,6 @@ export declare function boolean(value?: boolean): MatcherV2<boolean>;
|
|
|
137
137
|
* String MatcherV2.
|
|
138
138
|
*/
|
|
139
139
|
export declare function string(value?: string): MatcherV2<string>;
|
|
140
|
-
export { somethingLike as like };
|
|
141
|
-
export { term as regex };
|
|
140
|
+
export { somethingLike as like, term as regex };
|
|
142
141
|
export declare function extractPayload(value: AnyTemplate): AnyJson;
|
|
143
142
|
export declare function matcherValueOrString(obj: unknown): string;
|
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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"}
|