@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,98 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
-
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
|
-
});
|
|
29
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
-
var ownKeys = function(o) {
|
|
31
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
-
var ar = [];
|
|
33
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
-
return ar;
|
|
35
|
-
};
|
|
36
|
-
return ownKeys(o);
|
|
37
|
-
};
|
|
38
|
-
return function (mod) {
|
|
39
|
-
if (mod && mod.__esModule) return mod;
|
|
40
|
-
var result = {};
|
|
41
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
-
__setModuleDefault(result, mod);
|
|
43
|
-
return result;
|
|
44
|
-
};
|
|
45
|
-
})();
|
|
46
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
47
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
48
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
49
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
50
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
51
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
52
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
56
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
57
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
58
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
59
|
-
function step(op) {
|
|
60
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
61
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
62
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
63
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
64
|
-
switch (op[0]) {
|
|
65
|
-
case 0: case 1: t = op; break;
|
|
66
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
67
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
68
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
69
|
-
default:
|
|
70
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
71
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
72
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
73
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
74
|
-
if (t[2]) _.ops.pop();
|
|
75
|
-
_.trys.pop(); continue;
|
|
76
|
-
}
|
|
77
|
-
op = body.call(thisArg, _);
|
|
78
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
79
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
83
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
84
|
-
};
|
|
85
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
var _1 = require(".");
|
|
91
|
-
chai.use(sinon_chai_1.default);
|
|
92
|
-
chai.use(chai_as_promised_1.default);
|
|
93
|
-
var expect = chai.expect;
|
|
94
|
-
describe('Pact', function () {
|
|
95
|
-
var fullOpts = {
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
describe('Pact', () => {
|
|
6
|
+
const fullOpts = {
|
|
96
7
|
consumer: 'A',
|
|
97
8
|
provider: 'B',
|
|
98
9
|
port: 1234,
|
|
@@ -103,70 +14,62 @@ describe('Pact', function () {
|
|
|
103
14
|
cors: false,
|
|
104
15
|
pactfileWriteMode: 'merge',
|
|
105
16
|
};
|
|
106
|
-
afterEach(
|
|
107
|
-
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
vitest_1.vi.restoreAllMocks();
|
|
108
19
|
});
|
|
109
|
-
describe('#constructor',
|
|
110
|
-
it('throws Error when consumer not provided',
|
|
111
|
-
expect(
|
|
20
|
+
describe('#constructor', () => {
|
|
21
|
+
it('throws Error when consumer not provided', () => {
|
|
22
|
+
expect(() => {
|
|
112
23
|
new _1.Pact({ consumer: '', provider: 'provider' });
|
|
113
|
-
}).
|
|
24
|
+
}).toThrow('You must specify a Consumer for this pact.');
|
|
114
25
|
});
|
|
115
|
-
it('throws Error when provider not provided',
|
|
116
|
-
expect(
|
|
26
|
+
it('throws Error when provider not provided', () => {
|
|
27
|
+
expect(() => {
|
|
117
28
|
new _1.Pact({ consumer: 'someconsumer', provider: '' });
|
|
118
|
-
}).
|
|
29
|
+
}).toThrow('You must specify a Provider for this pact.');
|
|
119
30
|
});
|
|
120
31
|
});
|
|
121
|
-
describe('#createOptionsWithDefault',
|
|
122
|
-
|
|
32
|
+
describe('#createOptionsWithDefault', () => {
|
|
33
|
+
const constructorOpts = {
|
|
123
34
|
consumer: 'A',
|
|
124
35
|
provider: 'B',
|
|
125
36
|
};
|
|
126
|
-
it('merges options with sensible defaults',
|
|
127
|
-
|
|
128
|
-
expect(opts.consumer).
|
|
129
|
-
expect(opts.provider).
|
|
130
|
-
expect(opts.cors).
|
|
131
|
-
expect(opts.host).
|
|
132
|
-
expect(opts.logLevel).
|
|
133
|
-
expect(opts.spec).
|
|
134
|
-
expect(opts.dir).
|
|
135
|
-
expect(opts.log).
|
|
136
|
-
expect(opts.pactfileWriteMode).
|
|
137
|
-
expect(opts.ssl).
|
|
138
|
-
expect(opts.sslcert).
|
|
139
|
-
expect(opts.sslkey).
|
|
37
|
+
it('merges options with sensible defaults', () => {
|
|
38
|
+
const opts = _1.Pact.createOptionsWithDefaults(constructorOpts);
|
|
39
|
+
expect(opts.consumer).toBe('A');
|
|
40
|
+
expect(opts.provider).toBe('B');
|
|
41
|
+
expect(opts.cors).toBe(false);
|
|
42
|
+
expect(opts.host).toBe('127.0.0.1');
|
|
43
|
+
expect(opts.logLevel).toBe('info');
|
|
44
|
+
expect(opts.spec).toBe(2);
|
|
45
|
+
expect(opts.dir).toBeTruthy();
|
|
46
|
+
expect(opts.log).toBeTruthy();
|
|
47
|
+
expect(opts.pactfileWriteMode).toBe('merge');
|
|
48
|
+
expect(opts.ssl).toBe(false);
|
|
49
|
+
expect(opts.sslcert).toBeUndefined();
|
|
50
|
+
expect(opts.sslkey).toBeUndefined();
|
|
140
51
|
});
|
|
141
52
|
});
|
|
142
|
-
describe('#setup',
|
|
143
|
-
describe('when server is properly configured',
|
|
144
|
-
it('updates the mock service configuration',
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
pactfile_write_mode: 'merge',
|
|
157
|
-
consumer: {
|
|
158
|
-
name: 'A',
|
|
159
|
-
},
|
|
160
|
-
provider: { name: 'B' },
|
|
161
|
-
},
|
|
162
|
-
});
|
|
163
|
-
return [2 /*return*/];
|
|
164
|
-
}
|
|
53
|
+
describe('#setup', () => {
|
|
54
|
+
describe('when server is properly configured', () => {
|
|
55
|
+
it('updates the mock service configuration', async () => {
|
|
56
|
+
const p = new _1.Pact(fullOpts);
|
|
57
|
+
await p.setup();
|
|
58
|
+
expect(p.mockService).toEqual({
|
|
59
|
+
baseUrl: 'http://127.0.0.1:1234',
|
|
60
|
+
pactDetails: {
|
|
61
|
+
pactfile_write_mode: 'merge',
|
|
62
|
+
consumer: {
|
|
63
|
+
name: 'A',
|
|
64
|
+
},
|
|
65
|
+
provider: { name: 'B' },
|
|
66
|
+
},
|
|
165
67
|
});
|
|
166
|
-
});
|
|
167
|
-
it('returns the current configuration',
|
|
168
|
-
|
|
169
|
-
|
|
68
|
+
});
|
|
69
|
+
it('returns the current configuration', async () => {
|
|
70
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing internal setup() method not in public type
|
|
71
|
+
const p = new _1.Pact(fullOpts);
|
|
72
|
+
await expect(p.setup()).resolves.toMatchObject({
|
|
170
73
|
consumer: 'A',
|
|
171
74
|
provider: 'B',
|
|
172
75
|
port: 1234,
|
|
@@ -179,56 +82,60 @@ describe('Pact', function () {
|
|
|
179
82
|
});
|
|
180
83
|
});
|
|
181
84
|
});
|
|
182
|
-
describe('when a port is given',
|
|
183
|
-
it('checks if the port is available',
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
.eq(fullOpts.port);
|
|
85
|
+
describe('when a port is given', () => {
|
|
86
|
+
it('checks if the port is available', async () => {
|
|
87
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing internal setup() method not in public type
|
|
88
|
+
const p = new _1.Pact(fullOpts);
|
|
89
|
+
await expect(p.setup()).resolves.toHaveProperty('port', fullOpts.port);
|
|
188
90
|
});
|
|
189
91
|
});
|
|
190
|
-
describe('when no port is given',
|
|
191
|
-
it('finds a free port',
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
92
|
+
describe('when no port is given', () => {
|
|
93
|
+
it('finds a free port', async () => {
|
|
94
|
+
const opts = {
|
|
95
|
+
...fullOpts,
|
|
96
|
+
port: undefined,
|
|
97
|
+
};
|
|
98
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing internal setup() method not in public type
|
|
99
|
+
const p = new _1.Pact(opts);
|
|
100
|
+
await expect(p.setup()).resolves.toMatchObject({
|
|
101
|
+
port: expect.anything(),
|
|
102
|
+
});
|
|
196
103
|
});
|
|
197
104
|
});
|
|
198
105
|
});
|
|
199
|
-
describe('#addInteraction',
|
|
106
|
+
describe('#addInteraction', () => {
|
|
200
107
|
// This is more of an integration test, as the function has taken on a lot more
|
|
201
108
|
// responsibility previously covered by other functions during the upgrade to
|
|
202
109
|
// the rust core, to ensure the API remains backwards compatible
|
|
203
|
-
it('sets the correct request and response details on the FFI and starts the mock server',
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
createMockServer
|
|
217
|
-
};
|
|
218
|
-
|
|
219
|
-
uponReceiving
|
|
220
|
-
given
|
|
221
|
-
withRequest
|
|
222
|
-
withRequestBody
|
|
223
|
-
withRequestHeader
|
|
224
|
-
withQuery
|
|
225
|
-
withResponseBody
|
|
226
|
-
withResponseHeader
|
|
227
|
-
withStatus
|
|
228
|
-
};
|
|
229
|
-
// @ts-
|
|
110
|
+
it('sets the correct request and response details on the FFI and starts the mock server', () => {
|
|
111
|
+
const p = new _1.Pact(fullOpts);
|
|
112
|
+
const uponReceiving = vitest_1.vi.fn().mockReturnValue(true);
|
|
113
|
+
const given = vitest_1.vi.fn().mockReturnValue(true);
|
|
114
|
+
const withRequest = vitest_1.vi.fn().mockReturnValue(true);
|
|
115
|
+
const withRequestBody = vitest_1.vi.fn().mockReturnValue(true);
|
|
116
|
+
const withRequestHeader = vitest_1.vi.fn().mockReturnValue(true);
|
|
117
|
+
const withQuery = vitest_1.vi.fn().mockReturnValue(true);
|
|
118
|
+
const withResponseBody = vitest_1.vi.fn().mockReturnValue(true);
|
|
119
|
+
const withResponseHeader = vitest_1.vi.fn().mockReturnValue(true);
|
|
120
|
+
const withStatus = vitest_1.vi.fn().mockReturnValue(true);
|
|
121
|
+
const createMockServer = vitest_1.vi.fn().mockReturnValue(1234);
|
|
122
|
+
const pactMock = {
|
|
123
|
+
createMockServer,
|
|
124
|
+
};
|
|
125
|
+
const interactionMock = {
|
|
126
|
+
uponReceiving,
|
|
127
|
+
given,
|
|
128
|
+
withRequest,
|
|
129
|
+
withRequestBody,
|
|
130
|
+
withRequestHeader,
|
|
131
|
+
withQuery,
|
|
132
|
+
withResponseBody,
|
|
133
|
+
withResponseHeader,
|
|
134
|
+
withStatus,
|
|
135
|
+
};
|
|
136
|
+
// @ts-expect-error TODO refactor the class to remove the need for this
|
|
230
137
|
p.pact = pactMock;
|
|
231
|
-
// @ts-
|
|
138
|
+
// @ts-expect-error: TODO refactor the class to remove the need for this
|
|
232
139
|
p.interaction = interactionMock;
|
|
233
140
|
p.mockService = {};
|
|
234
141
|
p.addInteraction({
|
|
@@ -256,16 +163,16 @@ describe('Pact', function () {
|
|
|
256
163
|
},
|
|
257
164
|
},
|
|
258
165
|
});
|
|
259
|
-
expect(uponReceiving.
|
|
260
|
-
expect(given.
|
|
261
|
-
expect(withRequest.
|
|
262
|
-
expect(withQuery.
|
|
263
|
-
expect(withRequestHeader.
|
|
264
|
-
expect(withRequestBody.
|
|
265
|
-
expect(withResponseBody.
|
|
266
|
-
expect(withResponseHeader.
|
|
166
|
+
expect(uponReceiving).toHaveBeenCalledOnce();
|
|
167
|
+
expect(given).toHaveBeenCalledOnce();
|
|
168
|
+
expect(withRequest).toHaveBeenCalledOnce();
|
|
169
|
+
expect(withQuery).toHaveBeenCalledTimes(2);
|
|
170
|
+
expect(withRequestHeader).toHaveBeenCalledTimes(2);
|
|
171
|
+
expect(withRequestBody).toHaveBeenCalledOnce();
|
|
172
|
+
expect(withResponseBody).toHaveBeenCalledOnce();
|
|
173
|
+
expect(withResponseHeader).toHaveBeenCalledTimes(2);
|
|
267
174
|
// Pact mock server started
|
|
268
|
-
expect(createMockServer.
|
|
175
|
+
expect(createMockServer).toHaveBeenCalled();
|
|
269
176
|
});
|
|
270
177
|
});
|
|
271
178
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../src/httpPact/index.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../src/httpPact/index.spec.ts"],"names":[],"mappings":"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"}
|
package/src/httpPact/tracing.js
CHANGED
|
@@ -1,55 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
6
|
exports.traceHttpInteractions = void 0;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
7
|
+
const node_http_1 = __importDefault(require("node:http"));
|
|
8
|
+
const logger_1 = __importDefault(require("../common/logger"));
|
|
9
|
+
const traceHttpInteractions = () => {
|
|
10
|
+
const originalRequest = node_http_1.default.request;
|
|
11
|
+
node_http_1.default.request = (options, cb) => {
|
|
23
12
|
if (typeof options === 'string' || options instanceof URL) {
|
|
24
13
|
throw new Error('invoking traced requests with a string or a URL first argument is not supported');
|
|
25
14
|
}
|
|
26
15
|
if (typeof cb !== 'function') {
|
|
27
16
|
throw new Error('invoking traced requests with a non-function second argument is not supported');
|
|
28
17
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
logger_1.default.trace(
|
|
18
|
+
const requestBodyChunks = [];
|
|
19
|
+
const responseBodyChunks = [];
|
|
20
|
+
const hijackedCallback = (res) => {
|
|
21
|
+
logger_1.default.trace(`outgoing request: ${JSON.stringify({
|
|
22
|
+
...options,
|
|
23
|
+
body: Buffer.concat(requestBodyChunks).toString('utf8'),
|
|
24
|
+
})}`);
|
|
33
25
|
if (cb) {
|
|
34
26
|
cb(res);
|
|
35
27
|
}
|
|
36
28
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
clientRequest.end =
|
|
29
|
+
const clientRequest = originalRequest(options, hijackedCallback);
|
|
30
|
+
const oldWrite = clientRequest.end.bind(clientRequest);
|
|
31
|
+
clientRequest.end = (chunk) => {
|
|
40
32
|
requestBodyChunks.push(Buffer.from(chunk));
|
|
41
33
|
return oldWrite(chunk);
|
|
42
34
|
};
|
|
43
|
-
clientRequest.on('response',
|
|
44
|
-
incoming.on('readable',
|
|
35
|
+
clientRequest.on('response', (incoming) => {
|
|
36
|
+
incoming.on('readable', () => {
|
|
45
37
|
responseBodyChunks.push(Buffer.from(incoming.read()));
|
|
46
38
|
});
|
|
47
|
-
incoming.on('end',
|
|
48
|
-
logger_1.default.trace(
|
|
39
|
+
incoming.on('end', () => {
|
|
40
|
+
logger_1.default.trace(`response: ${JSON.stringify({
|
|
49
41
|
body: Buffer.concat(responseBodyChunks).toString('utf8'),
|
|
50
42
|
headers: incoming.headers,
|
|
51
43
|
statusCode: incoming.statusCode,
|
|
52
|
-
}))
|
|
44
|
+
})}`);
|
|
53
45
|
});
|
|
54
46
|
});
|
|
55
47
|
return clientRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/httpPact/tracing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/httpPact/tracing.ts"],"names":[],"mappings":";;;;;;AAAA,0DAImB;AAEnB,8DAAsC;AAE/B,MAAM,qBAAqB,GAAG,GAAS,EAAE;IAC9C,MAAM,eAAe,GAAG,mBAAI,CAAC,OAAO,CAAC;IACrC,mBAAI,CAAC,OAAO,GAAG,CACb,OAAsC,EACtC,EAAiE,EAClD,EAAE;QACjB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,YAAY,GAAG,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;QACJ,CAAC;QACD,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,MAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,MAAM,gBAAgB,GAAG,CAAC,GAAoB,EAAE,EAAE;YAChD,gBAAM,CAAC,KAAK,CACV,qBAAqB,IAAI,CAAC,SAAS,CAAC;gBAClC,GAAG,OAAO;gBACV,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;aACxD,CAAC,EAAE,CACL,CAAC;YACF,IAAI,EAAE,EAAE,CAAC;gBACP,EAAE,CAAC,GAAG,CAAC,CAAC;YACV,CAAC;QACH,CAAC,CAAC;QACF,MAAM,aAAa,GAAkB,eAAe,CAClD,OAAO,EACP,gBAAgB,CACjB,CAAC;QACF,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,aAAa,CAAC,GAAG,GAAG,CAAC,KAAgD,EAAE,EAAE;YACvE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAyB,EAAE,EAAE;YACzD,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC3B,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACtB,gBAAM,CAAC,KAAK,CACV,aAAa,IAAI,CAAC,SAAS,CAAC;oBAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACxD,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;iBAChC,CAAC,EAAE,CACL,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAvDW,QAAA,qBAAqB,yBAuDhC"}
|
package/src/index.d.ts
CHANGED
|
@@ -17,27 +17,24 @@
|
|
|
17
17
|
import * as MatchersStar from './dsl/matchers';
|
|
18
18
|
export declare const MatchersV2: typeof MatchersStar;
|
|
19
19
|
/**
|
|
20
|
-
* Exposes {@link
|
|
21
|
-
* To avoid polluting the root module's namespace, re-export
|
|
22
|
-
* Matchers as its own module
|
|
20
|
+
* Exposes {@link ApolloGraphQL}
|
|
23
21
|
* @memberof Pact
|
|
24
22
|
* @static
|
|
25
23
|
*/
|
|
26
|
-
export
|
|
27
|
-
export { InterfaceToTemplate } from './dsl/matchers';
|
|
28
|
-
export { Pact as PactV2 } from './httpPact';
|
|
24
|
+
export * from './dsl/apolloGraphql';
|
|
29
25
|
/**
|
|
30
|
-
* Exposes {@link
|
|
26
|
+
* Exposes {@link GraphQL}
|
|
31
27
|
* @memberof Pact
|
|
32
28
|
* @static
|
|
33
29
|
*/
|
|
34
|
-
export * from './
|
|
30
|
+
export * from './dsl/graphql';
|
|
35
31
|
/**
|
|
36
|
-
* Exposes {@link
|
|
32
|
+
* Exposes {@link Interaction}
|
|
37
33
|
* @memberof Pact
|
|
38
34
|
* @static
|
|
39
35
|
*/
|
|
40
|
-
export
|
|
36
|
+
export * from './dsl/interaction';
|
|
37
|
+
export { InterfaceToTemplate } from './dsl/matchers';
|
|
41
38
|
/**
|
|
42
39
|
* Exposes {@link Message}
|
|
43
40
|
* @memberof Pact
|
|
@@ -45,46 +42,49 @@ export { MessageProviderPact, providerWithMetadata, } from './messageProviderPac
|
|
|
45
42
|
*/
|
|
46
43
|
export * from './dsl/message';
|
|
47
44
|
/**
|
|
48
|
-
* Exposes {@link
|
|
45
|
+
* Exposes {@link MockService}
|
|
49
46
|
* @memberof Pact
|
|
50
47
|
* @static
|
|
51
48
|
*/
|
|
52
|
-
export * from './dsl/
|
|
53
|
-
export { VerifierOptions } from './dsl/verifier/types';
|
|
49
|
+
export * from './dsl/mockService';
|
|
54
50
|
/**
|
|
55
|
-
* Exposes {@link
|
|
51
|
+
* Exposes {@link PactV2Options}
|
|
56
52
|
* @memberof Pact
|
|
57
53
|
* @static
|
|
58
54
|
*/
|
|
59
|
-
export * from './dsl/
|
|
55
|
+
export * from './dsl/options';
|
|
56
|
+
export { VerifierOptions } from './dsl/verifier/types';
|
|
60
57
|
/**
|
|
61
|
-
* Exposes {@link
|
|
58
|
+
* Exposes {@link Verifier}
|
|
62
59
|
* @memberof Pact
|
|
63
60
|
* @static
|
|
64
61
|
*/
|
|
65
|
-
export * from './dsl/
|
|
62
|
+
export * from './dsl/verifier/verifier';
|
|
63
|
+
export { Pact as PactV2 } from './httpPact';
|
|
66
64
|
/**
|
|
67
|
-
* Exposes {@link
|
|
65
|
+
* Exposes {@link MessageConsumerPact}
|
|
68
66
|
* @memberof Pact
|
|
69
67
|
* @static
|
|
70
68
|
*/
|
|
71
|
-
export * from './
|
|
69
|
+
export * from './messageConsumerPact';
|
|
72
70
|
/**
|
|
73
|
-
* Exposes {@link
|
|
71
|
+
* Exposes {@link MessageProviderPact}
|
|
74
72
|
* @memberof Pact
|
|
75
73
|
* @static
|
|
76
74
|
*/
|
|
77
|
-
export
|
|
75
|
+
export { MessageProviderPact, providerWithMetadata, } from './messageProviderPact';
|
|
78
76
|
export * from './v3';
|
|
79
77
|
/**
|
|
80
|
-
* Exposes {@link
|
|
78
|
+
* Exposes {@link Matchers}
|
|
79
|
+
* To avoid polluting the root module's namespace, re-export
|
|
80
|
+
* Matchers as its own module
|
|
81
81
|
* @memberof Pact
|
|
82
82
|
* @static
|
|
83
83
|
*/
|
|
84
|
-
export
|
|
84
|
+
export { MatchersV3 as Matchers } from './v3';
|
|
85
85
|
/**
|
|
86
|
-
* Exposes {@link
|
|
86
|
+
* Exposes {@link Pact}
|
|
87
87
|
* @memberof Pact
|
|
88
88
|
* @static
|
|
89
89
|
*/
|
|
90
|
-
export * from './
|
|
90
|
+
export * from './v4';
|