@pact-foundation/pact 16.4.0 → 17.0.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 +35 -0
- package/README.md +41 -12
- package/package.json +19 -31
- package/scripts/ci/build-and-test.sh +0 -3
- package/scripts/install-plugins.js +104 -0
- package/src/common/graphQL/graphQL.js +1 -1
- package/src/common/graphQL/graphQL.js.map +1 -1
- package/src/common/matchingRules.d.ts +7 -1
- package/src/common/matchingRules.js +21 -1
- package/src/common/matchingRules.js.map +1 -1
- package/src/common/net.spec.js +27 -63
- package/src/common/net.spec.js.map +1 -1
- package/src/common/request.js +1 -1
- package/src/common/request.js.map +1 -1
- package/src/common/request.spec.js +14 -58
- package/src/common/request.spec.js.map +1 -1
- package/src/dsl/apolloGraphql.spec.js +3 -43
- package/src/dsl/apolloGraphql.spec.js.map +1 -1
- package/src/dsl/graphql.d.ts +1 -1
- package/src/dsl/graphql.js +4 -4
- package/src/dsl/graphql.js.map +1 -1
- package/src/dsl/graphql.spec.js +22 -62
- package/src/dsl/graphql.spec.js.map +1 -1
- package/src/dsl/interaction.d.ts +2 -2
- package/src/dsl/interaction.js +1 -1
- package/src/dsl/interaction.js.map +1 -1
- package/src/dsl/interaction.spec.js +40 -70
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +1 -2
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +95 -96
- package/src/dsl/matchers.spec.js.map +1 -1
- package/src/dsl/message.d.ts +1 -1
- package/src/dsl/options.d.ts +1 -1
- package/src/dsl/verifier/proxy/hooks.spec.js +16 -14
- package/src/dsl/verifier/proxy/hooks.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/messages.js +1 -1
- package/src/dsl/verifier/proxy/messages.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.js +1 -1
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.spec.js +14 -47
- package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.js +4 -4
- package/src/dsl/verifier/proxy/proxy.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.spec.js +6 -48
- package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.d.ts +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.js +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.spec.js +18 -53
- package/src/dsl/verifier/proxy/proxyRequest.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +16 -50
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +12 -49
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/types.d.ts +2 -2
- package/src/dsl/verifier/verifier.d.ts +4 -0
- package/src/dsl/verifier/verifier.js +6 -6
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +46 -96
- package/src/dsl/verifier/verifier.spec.js.map +1 -1
- package/src/httpPact/ffi.d.ts +1 -1
- package/src/httpPact/ffi.js +1 -1
- package/src/httpPact/ffi.js.map +1 -1
- package/src/httpPact/ffi.spec.js +18 -60
- package/src/httpPact/ffi.spec.js.map +1 -1
- package/src/httpPact/index.d.ts +1 -1
- package/src/httpPact/index.js +7 -7
- package/src/httpPact/index.js.map +1 -1
- package/src/httpPact/index.spec.js +46 -89
- package/src/httpPact/index.spec.js.map +1 -1
- package/src/index.d.ts +25 -25
- package/src/index.js +28 -28
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +3 -3
- package/src/messageConsumerPact.js +12 -5
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +15 -58
- package/src/messageConsumerPact.spec.js.map +1 -1
- package/src/messageProviderPact.js +3 -3
- package/src/messageProviderPact.js.map +1 -1
- package/src/messageProviderPact.spec.js +48 -84
- package/src/messageProviderPact.spec.js.map +1 -1
- package/src/pact.integration.spec.js +12 -51
- package/src/pact.integration.spec.js.map +1 -1
- package/src/v3/display.d.ts +1 -1
- package/src/v3/display.js.map +1 -1
- package/src/v3/ffi.js +5 -1
- package/src/v3/ffi.js.map +1 -1
- package/src/v3/ffi.spec.js +1 -36
- package/src/v3/ffi.spec.js.map +1 -1
- package/src/v3/graphql/graphQL.d.ts +2 -2
- package/src/v3/graphql/graphQL.js +2 -2
- 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 +14 -2
- package/src/v3/matchers.js +19 -1
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/matchers.spec.js +125 -57
- package/src/v3/matchers.spec.js.map +1 -1
- package/src/v3/pact.js +10 -5
- 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 +18 -2
- package/src/v3/types.js +22 -1
- package/src/v3/types.js.map +1 -1
- package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +2 -2
- package/src/v4/graphql/graphQLInteractionWithRequest.js +1 -1
- package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -1
- package/src/v4/graphql/graphQLRequestBuilder.d.ts +1 -1
- package/src/v4/graphql/index.d.ts +3 -3
- package/src/v4/graphql/index.js +1 -1
- package/src/v4/graphql/index.js.map +1 -1
- package/src/v4/graphql/types.d.ts +1 -1
- package/src/v4/http/index.js +7 -2
- 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 +2 -2
- package/src/v4/http/interactionWithPlugin.d.ts +2 -2
- package/src/v4/http/interactionWithPlugin.js +2 -2
- package/src/v4/http/interactionWithPlugin.js.map +1 -1
- package/src/v4/http/interactionWithPluginRequest.d.ts +4 -3
- package/src/v4/http/interactionWithPluginRequest.js +6 -1
- package/src/v4/http/interactionWithPluginRequest.js.map +1 -1
- package/src/v4/http/interactionWithPluginResponse.d.ts +1 -1
- package/src/v4/http/interactionWithRequest.d.ts +4 -3
- package/src/v4/http/interactionWithRequest.js +6 -1
- 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 +1 -1
- package/src/v4/http/requestBuilder.d.ts +2 -1
- package/src/v4/http/requestBuilder.js +5 -1
- 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 +1 -0
- package/src/v4/http/requestWithPluginBuilder.js +4 -0
- 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 +2 -1
- package/src/v4/http/responseBuilder.js +6 -2
- 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.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 +11 -3
- package/src/v4/http/unconfiguredInteraction.d.ts +2 -2
- package/src/v4/http/unconfiguredInteraction.js +2 -2
- package/src/v4/http/unconfiguredInteraction.js.map +1 -1
- package/src/v4/index.d.ts +4 -3
- package/src/v4/index.js +3 -2
- package/src/v4/index.js.map +1 -1
- package/src/v4/message/asynchronousMessage.d.ts +4 -4
- package/src/v4/message/asynchronousMessage.js +2 -2
- package/src/v4/message/asynchronousMessage.js.map +1 -1
- package/src/v4/message/index.d.ts +4 -4
- package/src/v4/message/index.js +2 -2
- package/src/v4/message/index.js.map +1 -1
- package/src/v4/types.d.ts +1 -1
- 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/xml/xmlBuilder.js.map +1 -0
- package/src/{v3/xml → xml}/xmlElement.d.ts +1 -1
- package/src/{v3/xml → xml}/xmlElement.js +1 -1
- package/src/xml/xmlElement.js.map +1 -0
- package/src/xml/xmlElement.spec.d.ts +1 -0
- package/src/{v3/xml → xml}/xmlElement.spec.js +41 -45
- package/src/xml/xmlElement.spec.js.map +1 -0
- package/src/xml/xmlNode.js.map +1 -0
- package/src/{v3/xml → xml}/xmlText.d.ts +1 -1
- 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.map +0 -1
- package/src/v3/xml/xmlElement.spec.js.map +0 -1
- package/src/v3/xml/xmlNode.js.map +0 -1
- 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}/xmlBuilder.d.ts +0 -0
- /package/src/{v3/xml → xml}/xmlBuilder.js +0 -0
- /package/src/{v3/xml → xml}/xmlNode.d.ts +0 -0
- /package/src/{v3/xml → xml}/xmlNode.js +0 -0
- /package/src/{v3/xml → xml}/xmlText.js +0 -0
package/src/index.js
CHANGED
|
@@ -40,7 +40,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
40
40
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
41
41
|
};
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.
|
|
43
|
+
exports.Matchers = exports.providerWithMetadata = exports.MessageProviderPact = exports.PactV2 = exports.MatchersV2 = void 0;
|
|
44
44
|
/**
|
|
45
45
|
* Exposes {@link Pact}
|
|
46
46
|
* @memberof Pact
|
|
@@ -56,30 +56,23 @@ exports.providerWithMetadata = exports.MessageProviderPact = exports.PactV2 = ex
|
|
|
56
56
|
const MatchersStar = __importStar(require("./dsl/matchers"));
|
|
57
57
|
exports.MatchersV2 = MatchersStar;
|
|
58
58
|
/**
|
|
59
|
-
* Exposes {@link
|
|
60
|
-
* To avoid polluting the root module's namespace, re-export
|
|
61
|
-
* Matchers as its own module
|
|
59
|
+
* Exposes {@link ApolloGraphQL}
|
|
62
60
|
* @memberof Pact
|
|
63
61
|
* @static
|
|
64
62
|
*/
|
|
65
|
-
|
|
66
|
-
Object.defineProperty(exports, "Matchers", { enumerable: true, get: function () { return v3_1.MatchersV3; } });
|
|
67
|
-
var httpPact_1 = require("./httpPact");
|
|
68
|
-
Object.defineProperty(exports, "PactV2", { enumerable: true, get: function () { return httpPact_1.Pact; } });
|
|
63
|
+
__exportStar(require("./dsl/apolloGraphql"), exports);
|
|
69
64
|
/**
|
|
70
|
-
* Exposes {@link
|
|
65
|
+
* Exposes {@link GraphQL}
|
|
71
66
|
* @memberof Pact
|
|
72
67
|
* @static
|
|
73
68
|
*/
|
|
74
|
-
__exportStar(require("./
|
|
69
|
+
__exportStar(require("./dsl/graphql"), exports);
|
|
75
70
|
/**
|
|
76
|
-
* Exposes {@link
|
|
71
|
+
* Exposes {@link Interaction}
|
|
77
72
|
* @memberof Pact
|
|
78
73
|
* @static
|
|
79
74
|
*/
|
|
80
|
-
|
|
81
|
-
Object.defineProperty(exports, "MessageProviderPact", { enumerable: true, get: function () { return messageProviderPact_1.MessageProviderPact; } });
|
|
82
|
-
Object.defineProperty(exports, "providerWithMetadata", { enumerable: true, get: function () { return messageProviderPact_1.providerWithMetadata; } });
|
|
75
|
+
__exportStar(require("./dsl/interaction"), exports);
|
|
83
76
|
/**
|
|
84
77
|
* Exposes {@link Message}
|
|
85
78
|
* @memberof Pact
|
|
@@ -87,46 +80,53 @@ Object.defineProperty(exports, "providerWithMetadata", { enumerable: true, get:
|
|
|
87
80
|
*/
|
|
88
81
|
__exportStar(require("./dsl/message"), exports);
|
|
89
82
|
/**
|
|
90
|
-
* Exposes {@link
|
|
83
|
+
* Exposes {@link MockService}
|
|
91
84
|
* @memberof Pact
|
|
92
85
|
* @static
|
|
93
86
|
*/
|
|
94
|
-
__exportStar(require("./dsl/
|
|
87
|
+
__exportStar(require("./dsl/mockService"), exports);
|
|
95
88
|
/**
|
|
96
|
-
* Exposes {@link
|
|
89
|
+
* Exposes {@link PactV2Options}
|
|
97
90
|
* @memberof Pact
|
|
98
91
|
* @static
|
|
99
92
|
*/
|
|
100
|
-
__exportStar(require("./dsl/
|
|
93
|
+
__exportStar(require("./dsl/options"), exports);
|
|
101
94
|
/**
|
|
102
|
-
* Exposes {@link
|
|
95
|
+
* Exposes {@link Verifier}
|
|
103
96
|
* @memberof Pact
|
|
104
97
|
* @static
|
|
105
98
|
*/
|
|
106
|
-
__exportStar(require("./dsl/
|
|
99
|
+
__exportStar(require("./dsl/verifier/verifier"), exports);
|
|
100
|
+
var httpPact_1 = require("./httpPact");
|
|
101
|
+
Object.defineProperty(exports, "PactV2", { enumerable: true, get: function () { return httpPact_1.Pact; } });
|
|
107
102
|
/**
|
|
108
|
-
* Exposes {@link
|
|
103
|
+
* Exposes {@link MessageConsumerPact}
|
|
109
104
|
* @memberof Pact
|
|
110
105
|
* @static
|
|
111
106
|
*/
|
|
112
|
-
__exportStar(require("./
|
|
107
|
+
__exportStar(require("./messageConsumerPact"), exports);
|
|
113
108
|
/**
|
|
114
|
-
* Exposes {@link
|
|
109
|
+
* Exposes {@link MessageProviderPact}
|
|
115
110
|
* @memberof Pact
|
|
116
111
|
* @static
|
|
117
112
|
*/
|
|
118
|
-
|
|
113
|
+
var messageProviderPact_1 = require("./messageProviderPact");
|
|
114
|
+
Object.defineProperty(exports, "MessageProviderPact", { enumerable: true, get: function () { return messageProviderPact_1.MessageProviderPact; } });
|
|
115
|
+
Object.defineProperty(exports, "providerWithMetadata", { enumerable: true, get: function () { return messageProviderPact_1.providerWithMetadata; } });
|
|
119
116
|
__exportStar(require("./v3"), exports);
|
|
120
117
|
/**
|
|
121
|
-
* Exposes {@link
|
|
118
|
+
* Exposes {@link Matchers}
|
|
119
|
+
* To avoid polluting the root module's namespace, re-export
|
|
120
|
+
* Matchers as its own module
|
|
122
121
|
* @memberof Pact
|
|
123
122
|
* @static
|
|
124
123
|
*/
|
|
125
|
-
|
|
124
|
+
var v3_1 = require("./v3");
|
|
125
|
+
Object.defineProperty(exports, "Matchers", { enumerable: true, get: function () { return v3_1.MatchersV3; } });
|
|
126
126
|
/**
|
|
127
|
-
* Exposes {@link
|
|
127
|
+
* Exposes {@link Pact}
|
|
128
128
|
* @memberof Pact
|
|
129
129
|
* @static
|
|
130
130
|
*/
|
|
131
|
-
__exportStar(require("./
|
|
131
|
+
__exportStar(require("./v4"), exports);
|
|
132
132
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AACH,6DAA+C;AAElC,QAAA,UAAU,GAAG,YAAY,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AACH,6DAA+C;AAElC,QAAA,UAAU,GAAG,YAAY,CAAC;AAEvC;;;;GAIG;AACH,sDAAoC;AACpC;;;;GAIG;AACH,gDAA8B;AAC9B;;;;GAIG;AACH,oDAAkC;AAElC;;;;GAIG;AACH,gDAA8B;AAC9B;;;;GAIG;AACH,oDAAkC;AAClC;;;;GAIG;AACH,gDAA8B;AAE9B;;;;GAIG;AACH,0DAAwC;AACxC,uCAA4C;AAAnC,kGAAA,IAAI,OAAU;AACvB;;;;GAIG;AACH,wDAAsC;AACtC;;;;GAIG;AACH,6DAG+B;AAF7B,0HAAA,mBAAmB,OAAA;AACnB,2HAAA,oBAAoB,OAAA;AAGtB,uCAAqB;AACrB;;;;;;GAMG;AACH,2BAA8C;AAArC,8FAAA,UAAU,OAAY;AAC/B;;;;GAIG;AACH,uCAAqB"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module Message
|
|
3
3
|
*/
|
|
4
4
|
import type { AnyJson } from './common/jsonTypes';
|
|
5
|
-
import type {
|
|
5
|
+
import type { Message, MessageConsumer, Metadata, ProviderState } from './dsl/message';
|
|
6
6
|
import type { MessageConsumerOptions } from './dsl/options';
|
|
7
7
|
/**
|
|
8
8
|
* A Message Consumer is analogous to a Provider in the HTTP Interaction model.
|
|
@@ -80,5 +80,5 @@ export declare class MessageConsumerPact {
|
|
|
80
80
|
*/
|
|
81
81
|
json(): Message;
|
|
82
82
|
}
|
|
83
|
-
export declare function synchronousBodyHandler<R>(handler: (body:
|
|
84
|
-
export declare function asynchronousBodyHandler<R>(handler: (body:
|
|
83
|
+
export declare function synchronousBodyHandler<R, B extends AnyJson | Buffer = AnyJson | Buffer>(handler: (body: B) => R): MessageConsumer;
|
|
84
|
+
export declare function asynchronousBodyHandler<R, B extends AnyJson | Buffer = AnyJson | Buffer>(handler: (body: B) => Promise<R>): MessageConsumer;
|
|
@@ -42,13 +42,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
42
42
|
exports.MessageConsumerPact = void 0;
|
|
43
43
|
exports.synchronousBodyHandler = synchronousBodyHandler;
|
|
44
44
|
exports.asynchronousBodyHandler = asynchronousBodyHandler;
|
|
45
|
-
const lodash_1 = require("lodash");
|
|
46
45
|
const pact_core_1 = __importStar(require("@pact-foundation/pact-core"));
|
|
46
|
+
const lodash_1 = require("lodash");
|
|
47
47
|
const ramda_1 = require("ramda");
|
|
48
|
-
const logger_1 = __importStar(require("./common/logger"));
|
|
49
|
-
const configurationError_1 = __importDefault(require("./errors/configurationError"));
|
|
50
48
|
const package_json_1 = require("../package.json");
|
|
49
|
+
const logger_1 = __importStar(require("./common/logger"));
|
|
51
50
|
const spec_1 = require("./common/spec");
|
|
51
|
+
const configurationError_1 = __importDefault(require("./errors/configurationError"));
|
|
52
52
|
const v3_1 = require("./v3");
|
|
53
53
|
const DEFAULT_PACT_DIR = './pacts';
|
|
54
54
|
var ContentType;
|
|
@@ -203,7 +203,13 @@ class MessageConsumerPact {
|
|
|
203
203
|
exports.MessageConsumerPact = MessageConsumerPact;
|
|
204
204
|
// TODO: create more basic adapters for API handlers
|
|
205
205
|
// bodyHandler takes a synchronous function and returns
|
|
206
|
-
// a wrapped function that accepts a Message and returns a Promise
|
|
206
|
+
// a wrapped function that accepts a Message and returns a Promise.
|
|
207
|
+
//
|
|
208
|
+
// The body type defaults to `AnyJson | Buffer` (the runtime type of
|
|
209
|
+
// `m.contents`), but callers may narrow it to a custom shape (e.g. an
|
|
210
|
+
// interface describing the JSON they expect to receive) by supplying the
|
|
211
|
+
// `B` type parameter. The narrowing is a TypeScript-only assertion; the
|
|
212
|
+
// runtime value is still whatever the producer sent.
|
|
207
213
|
function synchronousBodyHandler(handler) {
|
|
208
214
|
return (m) => {
|
|
209
215
|
const body = m.contents;
|
|
@@ -219,7 +225,8 @@ function synchronousBodyHandler(handler) {
|
|
|
219
225
|
};
|
|
220
226
|
}
|
|
221
227
|
// bodyHandler takes an asynchronous (promisified) function and returns
|
|
222
|
-
// a wrapped function that accepts a Message and returns a Promise
|
|
228
|
+
// a wrapped function that accepts a Message and returns a Promise.
|
|
229
|
+
// See `synchronousBodyHandler` for the rationale behind the `B` parameter.
|
|
223
230
|
// TODO: move this into its own package and re-export?
|
|
224
231
|
function asynchronousBodyHandler(handler) {
|
|
225
232
|
return (m) => handler(m.contents);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageConsumerPact.js","sourceRoot":"","sources":["../../src/messageConsumerPact.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"messageConsumerPact.js","sourceRoot":"","sources":["../../src/messageConsumerPact.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0OH,wDAgBC;AAMD,0DAKC;AAnQD,wEAIoC;AACpC,mCAAiC;AACjC,iCAA0C;AAC1C,kDAAgE;AAEhE,0DAAsD;AACtD,wCAA6C;AAS7C,qFAA6D;AAC7D,6BAA4C;AAE5C,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEnC,IAAK,WAIJ;AAJD,WAAK,WAAW;IACd,6CAAI,CAAA;IACJ,iDAAM,CAAA;IACN,iDAAM,CAAA;AACR,CAAC,EAJI,WAAW,KAAX,WAAW,QAIf;AAMD;;;;GAIG;AACH,MAAa,mBAAmB;IAOV;IANZ,KAAK,GAAkC,EAAE,CAAC;IAE1C,IAAI,CAAsB;IAE1B,OAAO,CAAsB;IAErC,YAAoB,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;QAChD,IAAI,CAAC,IAAI,GAAG,IAAA,wCAA4B,EACtC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,EACf,IAAA,mBAAY,EAAC,MAAM,CAAC,IAAI,EAAE,yBAAoB,CAAC,wBAAwB,CAAC,EACxE,MAAM,CAAC,QAAQ,CAChB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,sBAAkB,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC,IAAA,gBAAO,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,IAAA,oBAAW,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,mBAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,KAA6B;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,WAAmB;QACzC,IAAI,IAAA,gBAAO,EAAC,WAAW,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,4BAAkB,CAC1B,iDAAiD,CAClD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,WAAW,CAAC,OAAgB;QACjC,IAAI,IAAA,gBAAO,EAAC,OAAO,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,4BAAkB,CAC1B,sEAAsE,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACI,eAAe,CACpB,OAAe,EACf,WAAmB;QAEnB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;QAE5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,iBAAiB,CACtB,OAAe,EACf,WAAmB;QAEnB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;QAE5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,QAAkB;QACpC,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,4BAAkB,CAC1B,iEAAiE,CAClE,CAAC;QACJ,CAAC;QAED,IAAA,yBAAiB,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEb,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,OAAwB;QACpC,gBAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;aAClC,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,aAAa,CACrB,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,gBAAgB,EACnC,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,WAAW,CAC9C,CAAC;QACJ,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,cAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACxC,gBAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAClD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAkB,EAAE,QAAQ,CAAC,CAAC;QACvE,CAAC;QAED,gBAAM,CAAC,KAAK,CACV,8CAA8C,OAAO,CAAC,QAAQ,EAAE,CACjE,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,IAAI;QACT,OAAO,IAAI,CAAC,KAAgB,CAAC;IAC/B,CAAC;CACF;AArLD,kDAqLC;AAED,oDAAoD;AAEpD,uDAAuD;AACvD,mEAAmE;AACnE,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,yEAAyE;AACzE,wEAAwE;AACxE,qDAAqD;AACrD,SAAgB,sBAAsB,CAGpC,OAAuB;IACvB,OAAO,CAAC,CAAkB,EAAc,EAAE;QACxC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAa,CAAC;QAE7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,mEAAmE;AACnE,2EAA2E;AAC3E,sDAAsD;AACtD,SAAgB,uBAAuB,CAGrC,OAAgC;IAChC,OAAO,CAAC,CAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAa,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -1,48 +1,6 @@
|
|
|
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
|
-
const chai = __importStar(require("chai"));
|
|
40
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
41
|
-
const sinon_chai_1 = __importDefault(require("sinon-chai"));
|
|
42
3
|
const messageConsumerPact_1 = require("./messageConsumerPact");
|
|
43
|
-
chai.use(sinon_chai_1.default);
|
|
44
|
-
chai.use(chai_as_promised_1.default);
|
|
45
|
-
const { expect } = chai;
|
|
46
4
|
describe('MessageConsumer', () => {
|
|
47
5
|
let consumer;
|
|
48
6
|
beforeEach(() => {
|
|
@@ -58,8 +16,8 @@ describe('MessageConsumer', () => {
|
|
|
58
16
|
};
|
|
59
17
|
describe('#constructor', () => {
|
|
60
18
|
it('creates a Consumer when all mandatory parameters are provided', () => {
|
|
61
|
-
expect(consumer).
|
|
62
|
-
expect(consumer).
|
|
19
|
+
expect(consumer).toBeTypeOf('object');
|
|
20
|
+
expect(typeof consumer.verify).toBe('function');
|
|
63
21
|
});
|
|
64
22
|
});
|
|
65
23
|
describe('#dsl', () => {
|
|
@@ -67,27 +25,27 @@ describe('MessageConsumer', () => {
|
|
|
67
25
|
it('it should throw an error', () => {
|
|
68
26
|
expect(() => {
|
|
69
27
|
consumer.expectsToReceive('');
|
|
70
|
-
}).
|
|
28
|
+
}).toThrow(Error);
|
|
71
29
|
});
|
|
72
30
|
});
|
|
73
31
|
describe('when an empty content object has been given', () => {
|
|
74
32
|
it('it should throw an error', () => {
|
|
75
33
|
expect(() => {
|
|
76
34
|
consumer.withContent({});
|
|
77
|
-
}).
|
|
35
|
+
}).toThrow(Error);
|
|
78
36
|
});
|
|
79
37
|
});
|
|
80
38
|
describe('when an empty metadata object has been given', () => {
|
|
81
39
|
it('it should throw an error', () => {
|
|
82
40
|
expect(() => {
|
|
83
41
|
consumer.withMetadata({});
|
|
84
|
-
}).
|
|
42
|
+
}).toThrow(Error);
|
|
85
43
|
});
|
|
86
44
|
});
|
|
87
45
|
});
|
|
88
46
|
describe('#verify', () => {
|
|
89
47
|
describe('when given a valid handler and message', () => {
|
|
90
|
-
it('verifies the consumer message', () => {
|
|
48
|
+
it('verifies the consumer message', async () => {
|
|
91
49
|
const stubbedConsumer = new messageConsumerPact_1.MessageConsumerPact({
|
|
92
50
|
consumer: 'myconsumer',
|
|
93
51
|
provider: 'myprovider',
|
|
@@ -103,45 +61,44 @@ describe('MessageConsumer', () => {
|
|
|
103
61
|
.expectsToReceive('A message about something')
|
|
104
62
|
.withContent({ foo: 'bar' })
|
|
105
63
|
.withMetadata({ baz: 'bat' });
|
|
106
|
-
|
|
107
|
-
.eventually.be.fulfilled;
|
|
64
|
+
await stubbedConsumer.verify(() => Promise.resolve('yay!'));
|
|
108
65
|
});
|
|
109
66
|
});
|
|
110
67
|
});
|
|
111
68
|
describe('handler transformers', () => {
|
|
112
69
|
describe('#asynchronousbodyHandler', () => {
|
|
113
70
|
describe('when given a function that succeeds', () => {
|
|
114
|
-
it('returns a Handler object that returns a completed promise', () => {
|
|
71
|
+
it('returns a Handler object that returns a completed promise', async () => {
|
|
115
72
|
const failFn = () => Promise.resolve('yay!');
|
|
116
73
|
const hFn = (0, messageConsumerPact_1.asynchronousBodyHandler)(failFn);
|
|
117
|
-
|
|
74
|
+
await hFn(testMessage);
|
|
118
75
|
});
|
|
119
76
|
});
|
|
120
77
|
describe('when given a function that throws an Exception', () => {
|
|
121
|
-
it('returns a Handler object that returns a rejected promise', () => {
|
|
78
|
+
it('returns a Handler object that returns a rejected promise', async () => {
|
|
122
79
|
const failFn = () => Promise.reject(new Error('fail'));
|
|
123
80
|
const hFn = (0, messageConsumerPact_1.asynchronousBodyHandler)(failFn);
|
|
124
|
-
|
|
81
|
+
await expect(hFn(testMessage)).rejects.toThrow();
|
|
125
82
|
});
|
|
126
83
|
});
|
|
127
84
|
});
|
|
128
85
|
describe('#synchronousbodyHandler', () => {
|
|
129
86
|
describe('when given a function that succeeds', () => {
|
|
130
|
-
it('returns a Handler object that returns a completed promise', () => {
|
|
87
|
+
it('returns a Handler object that returns a completed promise', async () => {
|
|
131
88
|
const failFn = () => {
|
|
132
89
|
/* do nothing! */
|
|
133
90
|
};
|
|
134
91
|
const hFn = (0, messageConsumerPact_1.synchronousBodyHandler)(failFn);
|
|
135
|
-
|
|
92
|
+
await hFn(testMessage);
|
|
136
93
|
});
|
|
137
94
|
});
|
|
138
95
|
describe('when given a function that throws an Exception', () => {
|
|
139
|
-
it('returns a Handler object that returns a rejected promise', () => {
|
|
96
|
+
it('returns a Handler object that returns a rejected promise', async () => {
|
|
140
97
|
const failFn = () => {
|
|
141
98
|
throw new Error('fail');
|
|
142
99
|
};
|
|
143
100
|
const hFn = (0, messageConsumerPact_1.synchronousBodyHandler)(failFn);
|
|
144
|
-
|
|
101
|
+
await expect(hFn(testMessage)).rejects.toThrow();
|
|
145
102
|
});
|
|
146
103
|
});
|
|
147
104
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageConsumerPact.spec.js","sourceRoot":"","sources":["../../src/messageConsumerPact.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"messageConsumerPact.spec.js","sourceRoot":"","sources":["../../src/messageConsumerPact.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,12 +40,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
40
40
|
};
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.MessageProviderPact = exports.providerWithMetadata = exports.setupProxyServer = exports.waitForServerReady = void 0;
|
|
43
|
-
const lodash_1 = require("lodash");
|
|
44
|
-
const pact_core_1 = __importDefault(require("@pact-foundation/pact-core"));
|
|
45
|
-
const express_1 = __importDefault(require("express"));
|
|
46
43
|
const node_http_1 = __importDefault(require("node:http"));
|
|
44
|
+
const pact_core_1 = __importDefault(require("@pact-foundation/pact-core"));
|
|
47
45
|
const body_parser_1 = __importDefault(require("body-parser"));
|
|
46
|
+
const express_1 = __importDefault(require("express"));
|
|
48
47
|
const js_base64_1 = require("js-base64");
|
|
48
|
+
const lodash_1 = require("lodash");
|
|
49
49
|
const logger_1 = __importStar(require("./common/logger"));
|
|
50
50
|
// Listens for the server start event
|
|
51
51
|
// Converts event Emitter to a Promise
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageProviderPact.js","sourceRoot":"","sources":["../../src/messageProviderPact.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,
|
|
1
|
+
{"version":3,"file":"messageProviderPact.js","sourceRoot":"","sources":["../../src/messageProviderPact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +1,11 @@
|
|
|
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
38
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const chai = __importStar(require("chai"));
|
|
40
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
41
|
-
const sinon_chai_1 = __importDefault(require("sinon-chai"));
|
|
42
|
-
const express_1 = __importDefault(require("express"));
|
|
43
6
|
const node_http_1 = __importDefault(require("node:http"));
|
|
7
|
+
const express_1 = __importDefault(require("express"));
|
|
44
8
|
const messageProviderPact_1 = require("./messageProviderPact");
|
|
45
|
-
chai.use(sinon_chai_1.default);
|
|
46
|
-
chai.use(chai_as_promised_1.default);
|
|
47
|
-
const { expect } = chai;
|
|
48
9
|
describe('MessageProvider', () => {
|
|
49
10
|
let provider;
|
|
50
11
|
const successfulRequest = 'successfulRequest';
|
|
@@ -80,103 +41,106 @@ describe('MessageProvider', () => {
|
|
|
80
41
|
});
|
|
81
42
|
describe('#constructor', () => {
|
|
82
43
|
it('creates a Provider when all mandatory parameters are provided', () => {
|
|
83
|
-
expect(provider).
|
|
84
|
-
expect(provider).
|
|
44
|
+
expect(provider).toBeTypeOf('object');
|
|
45
|
+
expect(typeof provider.verify).toBe('function');
|
|
85
46
|
});
|
|
86
47
|
it('creates a Provider with default log level if not specified', () => {
|
|
87
48
|
provider = new messageProviderPact_1.MessageProviderPact({
|
|
88
49
|
messageProviders: {},
|
|
89
50
|
provider: 'myprovider',
|
|
90
51
|
});
|
|
91
|
-
expect(provider).
|
|
92
|
-
expect(provider).
|
|
52
|
+
expect(provider).toBeTypeOf('object');
|
|
53
|
+
expect(typeof provider.verify).toBe('function');
|
|
93
54
|
});
|
|
94
55
|
});
|
|
95
56
|
describe('#setupVerificationHandler', () => {
|
|
96
57
|
describe('when their is a valid setup', () => {
|
|
97
|
-
it('creates a valid express handler', (
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
58
|
+
it('creates a valid express handler', () => {
|
|
59
|
+
return new Promise((resolve) => {
|
|
60
|
+
const setupVerificationHandler =
|
|
61
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage
|
|
62
|
+
provider.setupVerificationHandler.bind(provider)();
|
|
63
|
+
const req = { body: successfulMessage };
|
|
64
|
+
const res = {
|
|
65
|
+
json: () => resolve(),
|
|
66
|
+
};
|
|
67
|
+
setupVerificationHandler(req, res);
|
|
68
|
+
});
|
|
106
69
|
});
|
|
107
70
|
});
|
|
108
71
|
describe('when their is an invalid setup', () => {
|
|
109
|
-
it('creates a valid express handler that rejects the message', (
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
72
|
+
it('creates a valid express handler that rejects the message', () => {
|
|
73
|
+
return new Promise((resolve) => {
|
|
74
|
+
const setupVerificationHandler =
|
|
75
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage
|
|
76
|
+
provider.setupVerificationHandler.bind(provider)();
|
|
77
|
+
const req = { body: nonExistentMessage };
|
|
78
|
+
const res = {
|
|
79
|
+
status: (status) => {
|
|
80
|
+
expect(status).toBe(500);
|
|
81
|
+
return {
|
|
82
|
+
send: () => resolve(),
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
setupVerificationHandler(req, res);
|
|
87
|
+
});
|
|
123
88
|
});
|
|
124
89
|
});
|
|
125
90
|
});
|
|
126
91
|
describe('#findHandler', () => {
|
|
127
92
|
describe('when given a handler that exists', () => {
|
|
128
|
-
it('returns a Handler object', () => {
|
|
93
|
+
it('returns a Handler object', async () => {
|
|
129
94
|
// biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage
|
|
130
95
|
const findHandler = provider.findHandler.bind(provider);
|
|
131
|
-
|
|
96
|
+
await expect(findHandler(successfulMessage)).resolves.toBeTypeOf('function');
|
|
132
97
|
});
|
|
133
98
|
});
|
|
134
99
|
describe('when given a handler that does not exist', () => {
|
|
135
|
-
it('returns a failed promise', () => {
|
|
100
|
+
it('returns a failed promise', async () => {
|
|
136
101
|
// biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage
|
|
137
102
|
const findHandler = provider.findHandler.bind(provider);
|
|
138
|
-
|
|
103
|
+
await expect(findHandler('doesnotexist')).rejects.toBeDefined();
|
|
139
104
|
});
|
|
140
105
|
});
|
|
141
106
|
});
|
|
142
107
|
describe('#setupStates', () => {
|
|
143
108
|
describe('when given a handler that exists', () => {
|
|
144
|
-
it('returns values of all resolved handlers', () => {
|
|
109
|
+
it('returns values of all resolved handlers', async () => {
|
|
145
110
|
// biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage
|
|
146
111
|
const setupStates = provider.setupStates.bind(provider);
|
|
147
|
-
|
|
148
|
-
'yay',
|
|
149
|
-
]);
|
|
112
|
+
await expect(setupStates(successfulMessage)).resolves.toEqual(['yay']);
|
|
150
113
|
});
|
|
151
|
-
it('passes params to the handler', () => {
|
|
114
|
+
it('passes params to the handler', async () => {
|
|
152
115
|
// biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage
|
|
153
116
|
const setupStates = provider.setupStates.bind(provider);
|
|
154
|
-
|
|
117
|
+
await expect(setupStates({
|
|
155
118
|
providerStates: [
|
|
156
119
|
{ name: 'some state with params', params: { foo: 'bar' } },
|
|
157
120
|
],
|
|
158
|
-
})).
|
|
121
|
+
})).resolves.toEqual([
|
|
159
122
|
'name: some state with params, params: {"foo":"bar"}',
|
|
160
123
|
]);
|
|
161
124
|
});
|
|
162
125
|
});
|
|
163
126
|
describe('when given a state that does not have a handler', () => {
|
|
164
|
-
it('returns an empty promise', () => {
|
|
127
|
+
it('returns an empty promise', async () => {
|
|
165
128
|
provider = new messageProviderPact_1.MessageProviderPact({
|
|
166
129
|
messageProviders: {},
|
|
167
130
|
provider: 'myprovider',
|
|
168
131
|
});
|
|
169
132
|
// biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage
|
|
170
133
|
const findStateHandler = provider.setupStates.bind(provider);
|
|
171
|
-
|
|
134
|
+
await expect(findStateHandler(unsuccessfulMessage)).resolves.toEqual([]);
|
|
172
135
|
});
|
|
173
136
|
});
|
|
174
137
|
});
|
|
175
138
|
describe('#waitForServerReady', () => {
|
|
176
139
|
describe('when the http server starts up', () => {
|
|
177
|
-
it('returns a resolved promise', () => {
|
|
140
|
+
it('returns a resolved promise', async () => {
|
|
178
141
|
const server = node_http_1.default.createServer(() => { }).listen();
|
|
179
|
-
|
|
142
|
+
await (0, messageProviderPact_1.waitForServerReady)(server);
|
|
143
|
+
server.close();
|
|
180
144
|
});
|
|
181
145
|
});
|
|
182
146
|
});
|
|
@@ -184,7 +148,7 @@ describe('MessageProvider', () => {
|
|
|
184
148
|
describe('when the http server starts up', () => {
|
|
185
149
|
it('returns a resolved promise', () => {
|
|
186
150
|
const app = (0, express_1.default)();
|
|
187
|
-
expect((0, messageProviderPact_1.setupProxyServer)(app)).
|
|
151
|
+
expect((0, messageProviderPact_1.setupProxyServer)(app)).toBeInstanceOf(node_http_1.default.Server);
|
|
188
152
|
});
|
|
189
153
|
});
|
|
190
154
|
});
|
|
@@ -193,7 +157,7 @@ describe('MessageProvider', () => {
|
|
|
193
157
|
const setupProxyApplication =
|
|
194
158
|
// biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage
|
|
195
159
|
provider.setupProxyApplication.bind(provider);
|
|
196
|
-
expect(setupProxyApplication().listen).
|
|
160
|
+
expect(setupProxyApplication().listen).toBeTypeOf('function');
|
|
197
161
|
});
|
|
198
162
|
});
|
|
199
163
|
});
|