@pact-foundation/pact 10.0.0-beta.9 → 10.0.2
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 +2456 -1
- package/CODE_OF_CONDUCT.md +1 -1
- package/CONTRIBUTING.md +49 -12
- package/MIGRATION.md +77 -0
- package/README.md +179 -1273
- package/RELEASING.md +63 -59
- package/package.json +96 -98
- package/src/common/jsonTypes.d.ts +5 -0
- package/src/common/jsonTypes.js +3 -0
- package/src/common/jsonTypes.js.map +1 -0
- package/src/common/logger.d.ts +10 -0
- package/src/common/logger.js +32 -0
- package/src/common/logger.js.map +1 -0
- package/src/common/net.d.ts +9 -0
- package/src/common/net.js +82 -0
- package/src/common/net.js.map +1 -0
- package/{common → src/common}/net.spec.d.ts +0 -0
- package/src/common/net.spec.js +69 -0
- package/src/common/net.spec.js.map +1 -0
- package/src/common/request.d.ts +21 -0
- package/src/common/request.js +110 -0
- package/src/common/request.js.map +1 -0
- package/{common → src/common}/request.spec.d.ts +0 -0
- package/src/common/request.spec.js +69 -0
- package/src/common/request.spec.js.map +1 -0
- package/src/common/spec.d.ts +2 -0
- package/src/common/spec.js +22 -0
- package/src/common/spec.js.map +1 -0
- package/{dsl → src/dsl}/apolloGraphql.d.ts +1 -1
- package/{dsl → src/dsl}/apolloGraphql.js +4 -1
- package/src/dsl/apolloGraphql.js.map +1 -0
- package/{dsl → src/dsl}/apolloGraphql.spec.d.ts +0 -0
- package/src/dsl/apolloGraphql.spec.js +74 -0
- package/src/dsl/apolloGraphql.spec.js.map +1 -0
- package/{dsl → src/dsl}/graphql.d.ts +19 -8
- package/{dsl → src/dsl}/graphql.js +59 -31
- package/src/dsl/graphql.js.map +1 -0
- package/{dsl → src/dsl}/graphql.spec.d.ts +0 -0
- package/src/dsl/graphql.spec.js +229 -0
- package/src/dsl/graphql.spec.js.map +1 -0
- package/{dsl → src/dsl}/interaction.d.ts +22 -20
- package/src/dsl/interaction.js +144 -0
- package/src/dsl/interaction.js.map +1 -0
- package/{dsl → src/dsl}/interaction.spec.d.ts +0 -0
- package/src/dsl/interaction.spec.js +214 -0
- package/src/dsl/interaction.spec.js.map +1 -0
- package/src/dsl/matchers.d.ts +143 -0
- package/{dsl → src/dsl}/matchers.js +92 -93
- package/src/dsl/matchers.js.map +1 -0
- package/{dsl → src/dsl}/matchers.spec.d.ts +0 -0
- package/src/dsl/matchers.spec.js +668 -0
- package/src/dsl/matchers.spec.js.map +1 -0
- package/{dsl → src/dsl}/message.d.ts +32 -12
- package/{dsl → src/dsl}/message.js +0 -0
- package/{dsl → src/dsl}/message.js.map +1 -1
- package/src/dsl/mockService.d.ts +13 -0
- package/src/dsl/mockService.js +3 -0
- package/src/dsl/mockService.js.map +1 -0
- package/{dsl → src/dsl}/options.d.ts +7 -6
- package/{dsl → src/dsl}/options.js +0 -0
- package/{dsl → src/dsl}/options.js.map +1 -1
- package/src/dsl/verifier/index.d.ts +1 -0
- package/src/dsl/verifier/index.js +18 -0
- package/src/dsl/verifier/index.js.map +1 -0
- package/src/dsl/verifier/proxy/hooks.d.ts +4 -0
- package/src/dsl/verifier/proxy/hooks.js +109 -0
- package/src/dsl/verifier/proxy/hooks.js.map +1 -0
- package/src/dsl/verifier/proxy/index.d.ts +1 -0
- package/src/dsl/verifier/proxy/index.js +18 -0
- package/src/dsl/verifier/proxy/index.js.map +1 -0
- package/src/dsl/verifier/proxy/parseBody.d.ts +7 -0
- package/src/dsl/verifier/proxy/parseBody.js +22 -0
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -0
- package/{dsl/mockService.spec.d.ts → src/dsl/verifier/proxy/parseBody.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/parseBody.spec.js +118 -0
- package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/proxy.d.ts +4 -0
- package/src/dsl/verifier/proxy/proxy.js +92 -0
- package/src/dsl/verifier/proxy/proxy.js.map +1 -0
- package/{dsl/publisher.spec.d.ts → src/dsl/verifier/proxy/proxy.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/proxy.spec.js +33 -0
- package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/stateHandler/index.d.ts +1 -0
- package/src/dsl/verifier/proxy/stateHandler/index.js +18 -0
- package/src/dsl/verifier/proxy/stateHandler/index.js.map +1 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +3 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js +48 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -0
- package/{dsl/verifier.spec.d.ts → src/dsl/verifier/proxy/stateHandler/setupStates.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +191 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.d.ts +3 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +14 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -0
- package/{httpPact.spec.d.ts → src/dsl/verifier/proxy/stateHandler/stateHandler.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +130 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/tracer.d.ts +3 -0
- package/src/dsl/verifier/proxy/tracer.js +52 -0
- package/src/dsl/verifier/proxy/tracer.js.map +1 -0
- package/src/dsl/verifier/proxy/types.d.ts +48 -0
- package/src/dsl/verifier/proxy/types.js +3 -0
- package/src/dsl/verifier/proxy/types.js.map +1 -0
- package/src/dsl/verifier/types.d.ts +3 -0
- package/src/dsl/verifier/types.js +3 -0
- package/src/dsl/verifier/types.js.map +1 -0
- package/src/dsl/verifier/verifier.d.ts +16 -0
- package/src/dsl/verifier/verifier.js +129 -0
- package/src/dsl/verifier/verifier.js.map +1 -0
- package/{messageConsumerPact.spec.d.ts → src/dsl/verifier/verifier.spec.d.ts} +0 -0
- package/src/dsl/verifier/verifier.spec.js +172 -0
- package/src/dsl/verifier/verifier.spec.js.map +1 -0
- package/{errors → src/errors}/configurationError.d.ts +0 -0
- package/{errors → src/errors}/configurationError.js +3 -1
- package/src/errors/configurationError.js.map +1 -0
- package/{errors → src/errors}/graphQLQueryError.d.ts +0 -0
- package/{errors → src/errors}/graphQLQueryError.js +3 -1
- package/src/errors/graphQLQueryError.js.map +1 -0
- package/{errors → src/errors}/matcherError.d.ts +0 -0
- package/{errors → src/errors}/matcherError.js +3 -1
- package/src/errors/matcherError.js.map +1 -0
- package/{errors → src/errors}/verificationError.d.ts +0 -0
- package/{errors → src/errors}/verificationError.js +3 -1
- package/src/errors/verificationError.js.map +1 -0
- package/src/httpPact/ffi.d.ts +15 -0
- package/src/httpPact/ffi.js +91 -0
- package/src/httpPact/ffi.js.map +1 -0
- package/{messageProviderPact.spec.d.ts → src/httpPact/ffi.spec.d.ts} +0 -0
- package/src/httpPact/ffi.spec.js +81 -0
- package/src/httpPact/ffi.spec.js.map +1 -0
- package/{httpPact.d.ts → src/httpPact/index.d.ts} +12 -12
- package/src/httpPact/index.js +311 -0
- package/src/httpPact/index.js.map +1 -0
- package/{pact-web.spec.d.ts → src/httpPact/index.spec.d.ts} +0 -0
- package/src/httpPact/index.spec.js +238 -0
- package/src/httpPact/index.spec.js.map +1 -0
- package/src/httpPact/tracing.d.ts +1 -0
- package/src/httpPact/tracing.js +53 -0
- package/src/httpPact/tracing.js.map +1 -0
- package/{pact.d.ts → src/index.d.ts} +22 -21
- package/src/index.js +107 -0
- package/src/index.js.map +1 -0
- package/src/messageConsumerPact.d.ts +86 -0
- package/src/messageConsumerPact.js +222 -0
- package/src/messageConsumerPact.js.map +1 -0
- package/src/messageConsumerPact.spec.d.ts +1 -0
- package/src/messageConsumerPact.spec.js +117 -0
- package/src/messageConsumerPact.spec.js.map +1 -0
- package/{messageProviderPact.d.ts → src/messageProviderPact.d.ts} +7 -4
- package/src/messageProviderPact.js +190 -0
- package/src/messageProviderPact.js.map +1 -0
- package/src/messageProviderPact.spec.d.ts +1 -0
- package/src/messageProviderPact.spec.js +183 -0
- package/src/messageProviderPact.spec.js.map +1 -0
- package/{pact.integration.spec.d.ts → src/pact.integration.spec.d.ts} +0 -0
- package/{pact.integration.spec.js → src/pact.integration.spec.js} +0 -0
- package/src/pact.integration.spec.js.map +1 -0
- package/src/v3/display.d.ts +6 -0
- package/src/v3/display.js +83 -0
- package/src/v3/display.js.map +1 -0
- package/src/v3/index.d.ts +17 -0
- package/src/v3/index.js +47 -0
- package/src/v3/index.js.map +1 -0
- package/src/v3/matchers.d.ts +182 -0
- package/src/v3/matchers.js +443 -0
- package/src/v3/matchers.js.map +1 -0
- package/src/v3/matchers.spec.d.ts +1 -0
- package/src/v3/matchers.spec.js +461 -0
- package/src/v3/matchers.spec.js.map +1 -0
- package/src/v3/pact.d.ts +21 -0
- package/src/v3/pact.js +236 -0
- package/src/v3/pact.js.map +1 -0
- package/src/v3/types.d.ts +81 -0
- package/src/v3/types.js +11 -0
- package/src/v3/types.js.map +1 -0
- package/{v3 → src/v3}/xml/xmlBuilder.d.ts +2 -2
- package/{v3 → src/v3}/xml/xmlBuilder.js +2 -1
- package/src/v3/xml/xmlBuilder.js.map +1 -0
- package/src/v3/xml/xmlElement.d.ts +27 -0
- package/{v3 → src/v3}/xml/xmlElement.js +21 -15
- package/src/v3/xml/xmlElement.js.map +1 -0
- package/src/v3/xml/xmlElement.spec.d.ts +1 -0
- package/src/v3/xml/xmlElement.spec.js +102 -0
- package/src/v3/xml/xmlElement.spec.js.map +1 -0
- package/{v3 → src/v3}/xml/xmlNode.d.ts +0 -0
- package/{v3 → src/v3}/xml/xmlNode.js +1 -0
- package/src/v3/xml/xmlNode.js.map +1 -0
- package/src/v3/xml/xmlText.d.ts +7 -0
- package/{v3 → src/v3}/xml/xmlText.js +4 -1
- package/src/v3/xml/xmlText.js.map +1 -0
- package/test/helper.d.ts +1 -0
- package/test/helper.js +37 -0
- package/test/helper.js.map +1 -0
- package/ROADMAP.md +0 -20
- package/common/logger.d.ts +0 -7
- package/common/logger.js +0 -56
- package/common/logger.js.map +0 -1
- package/common/metadata.d.ts +0 -0
- package/common/metadata.js +0 -2
- package/common/metadata.js.map +0 -1
- package/common/net.d.ts +0 -9
- package/common/net.js +0 -48
- package/common/net.js.map +0 -1
- package/common/net.spec.js +0 -67
- package/common/net.spec.js.map +0 -1
- package/common/request.d.ts +0 -14
- package/common/request.js +0 -47
- package/common/request.js.map +0 -1
- package/common/request.spec.js +0 -71
- package/common/request.spec.js.map +0 -1
- package/common/utils.d.ts +0 -2
- package/common/utils.js +0 -10
- package/common/utils.js.map +0 -1
- package/dsl/apolloGraphql.js.map +0 -1
- package/dsl/apolloGraphql.spec.js +0 -47
- package/dsl/apolloGraphql.spec.js.map +0 -1
- package/dsl/graphql.js.map +0 -1
- package/dsl/graphql.spec.js +0 -150
- package/dsl/graphql.spec.js.map +0 -1
- package/dsl/interaction.js +0 -112
- package/dsl/interaction.js.map +0 -1
- package/dsl/interaction.spec.js +0 -217
- package/dsl/interaction.spec.js.map +0 -1
- package/dsl/matchers.d.ts +0 -269
- package/dsl/matchers.js.map +0 -1
- package/dsl/matchers.spec.js +0 -563
- package/dsl/matchers.spec.js.map +0 -1
- package/dsl/mockService.d.ts +0 -58
- package/dsl/mockService.js +0 -74
- package/dsl/mockService.js.map +0 -1
- package/dsl/mockService.spec.js +0 -126
- package/dsl/mockService.spec.js.map +0 -1
- package/dsl/publisher.d.ts +0 -6
- package/dsl/publisher.js +0 -19
- package/dsl/publisher.js.map +0 -1
- package/dsl/publisher.spec.js +0 -21
- package/dsl/publisher.spec.js.map +0 -1
- package/dsl/verifier.d.ts +0 -39
- package/dsl/verifier.js +0 -173
- package/dsl/verifier.js.map +0 -1
- package/dsl/verifier.spec.js +0 -299
- package/dsl/verifier.spec.js.map +0 -1
- package/errors/configurationError.js.map +0 -1
- package/errors/graphQLQueryError.js.map +0 -1
- package/errors/matcherError.js.map +0 -1
- package/errors/verificationError.js.map +0 -1
- package/httpPact.js +0 -206
- package/httpPact.js.map +0 -1
- package/httpPact.spec.js +0 -337
- package/httpPact.spec.js.map +0 -1
- package/messageConsumerPact.d.ts +0 -67
- package/messageConsumerPact.js +0 -161
- package/messageConsumerPact.js.map +0 -1
- package/messageConsumerPact.spec.js +0 -161
- package/messageConsumerPact.spec.js.map +0 -1
- package/messageProviderPact.js +0 -139
- package/messageProviderPact.js.map +0 -1
- package/messageProviderPact.spec.js +0 -143
- package/messageProviderPact.spec.js.map +0 -1
- package/pact-web.d.ts +0 -100
- package/pact-web.js +0 -151
- package/pact-web.js.map +0 -1
- package/pact-web.spec.js +0 -191
- package/pact-web.spec.js.map +0 -1
- package/pact.integration.spec.js.map +0 -1
- package/pact.js +0 -74
- package/pact.js.map +0 -1
- package/v3/index.d.ts +0 -23
- package/v3/index.js +0 -33
- package/v3/index.js.map +0 -1
- package/v3/matchers.d.ts +0 -199
- package/v3/matchers.js +0 -305
- package/v3/matchers.js.map +0 -1
- package/v3/pact.d.ts +0 -47
- package/v3/pact.js +0 -101
- package/v3/pact.js.map +0 -1
- package/v3/verifier.d.ts +0 -27
- package/v3/verifier.js +0 -46
- package/v3/verifier.js.map +0 -1
- package/v3/xml/xmlBuilder.js.map +0 -1
- package/v3/xml/xmlElement.d.ts +0 -34
- package/v3/xml/xmlElement.js.map +0 -1
- package/v3/xml/xmlNode.js.map +0 -1
- package/v3/xml/xmlText.d.ts +0 -6
- package/v3/xml/xmlText.js.map +0 -1
|
@@ -0,0 +1,238 @@
|
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
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;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
// @ts-nocheck
|
|
54
|
+
var chai_1 = __importDefault(require("chai"));
|
|
55
|
+
var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
56
|
+
var sinon_1 = __importDefault(require("sinon"));
|
|
57
|
+
var sinon_chai_1 = __importDefault(require("sinon-chai"));
|
|
58
|
+
var _1 = require(".");
|
|
59
|
+
chai_1.default.use(sinon_chai_1.default);
|
|
60
|
+
chai_1.default.use(chai_as_promised_1.default);
|
|
61
|
+
var expect = chai_1.default.expect;
|
|
62
|
+
describe('Pact', function () {
|
|
63
|
+
var fullOpts = {
|
|
64
|
+
consumer: 'A',
|
|
65
|
+
provider: 'B',
|
|
66
|
+
port: 1234,
|
|
67
|
+
host: '127.0.0.1',
|
|
68
|
+
ssl: false,
|
|
69
|
+
logLevel: 'info',
|
|
70
|
+
spec: 2,
|
|
71
|
+
cors: false,
|
|
72
|
+
pactfileWriteMode: 'merge',
|
|
73
|
+
};
|
|
74
|
+
afterEach(function () {
|
|
75
|
+
sinon_1.default.restore();
|
|
76
|
+
});
|
|
77
|
+
describe('#constructor', function () {
|
|
78
|
+
it('throws Error when consumer not provided', function () {
|
|
79
|
+
expect(function () {
|
|
80
|
+
new _1.Pact({ consumer: '', provider: 'provider' });
|
|
81
|
+
}).to.throw(Error, 'You must specify a Consumer for this pact.');
|
|
82
|
+
});
|
|
83
|
+
it('throws Error when provider not provided', function () {
|
|
84
|
+
expect(function () {
|
|
85
|
+
new _1.Pact({ consumer: 'someconsumer', provider: '' });
|
|
86
|
+
}).to.throw(Error, 'You must specify a Provider for this pact.');
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('#createOptionsWithDefault', function () {
|
|
90
|
+
var constructorOpts = {
|
|
91
|
+
consumer: 'A',
|
|
92
|
+
provider: 'B',
|
|
93
|
+
};
|
|
94
|
+
it('merges options with sensible defaults', function () {
|
|
95
|
+
var opts = _1.Pact.createOptionsWithDefaults(constructorOpts);
|
|
96
|
+
expect(opts.consumer).to.eq('A');
|
|
97
|
+
expect(opts.provider).to.eq('B');
|
|
98
|
+
expect(opts.cors).to.eq(false);
|
|
99
|
+
expect(opts.host).to.eq('127.0.0.1');
|
|
100
|
+
expect(opts.logLevel).to.eq('info');
|
|
101
|
+
expect(opts.spec).to.eq(2);
|
|
102
|
+
expect(opts.dir).not.to.be.empty;
|
|
103
|
+
expect(opts.log).not.to.be.empty;
|
|
104
|
+
expect(opts.pactfileWriteMode).to.eq('merge');
|
|
105
|
+
expect(opts.ssl).to.eq(false);
|
|
106
|
+
expect(opts.sslcert).to.eq(undefined);
|
|
107
|
+
expect(opts.sslkey).to.eq(undefined);
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
describe('#setup', function () {
|
|
111
|
+
describe('when server is properly configured', function () {
|
|
112
|
+
it('updates the mock service configuration', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
113
|
+
var p;
|
|
114
|
+
return __generator(this, function (_a) {
|
|
115
|
+
switch (_a.label) {
|
|
116
|
+
case 0:
|
|
117
|
+
p = new _1.Pact(fullOpts);
|
|
118
|
+
return [4 /*yield*/, p.setup()];
|
|
119
|
+
case 1:
|
|
120
|
+
_a.sent();
|
|
121
|
+
expect(p.mockService).to.deep.equal({
|
|
122
|
+
baseUrl: 'http://127.0.0.1:1234',
|
|
123
|
+
pactDetails: {
|
|
124
|
+
pactfile_write_mode: 'merge',
|
|
125
|
+
consumer: {
|
|
126
|
+
name: 'A',
|
|
127
|
+
},
|
|
128
|
+
provider: { name: 'B' },
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
return [2 /*return*/];
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}); });
|
|
135
|
+
it('returns the current configuration', function () {
|
|
136
|
+
var p = new _1.Pact(fullOpts);
|
|
137
|
+
return expect(p.setup()).to.eventually.include({
|
|
138
|
+
consumer: 'A',
|
|
139
|
+
provider: 'B',
|
|
140
|
+
port: 1234,
|
|
141
|
+
host: '127.0.0.1',
|
|
142
|
+
ssl: false,
|
|
143
|
+
logLevel: 'info',
|
|
144
|
+
spec: 2,
|
|
145
|
+
cors: false,
|
|
146
|
+
pactfileWriteMode: 'merge',
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
describe('when a port is given', function () {
|
|
151
|
+
it('checks if the port is available', function () {
|
|
152
|
+
var p = new _1.Pact(fullOpts);
|
|
153
|
+
return expect(p.setup())
|
|
154
|
+
.to.eventually.have.property('port')
|
|
155
|
+
.eq(fullOpts.port);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
describe('when no port is given', function () {
|
|
159
|
+
it('finds a free port', function () {
|
|
160
|
+
var opts = __assign(__assign({}, fullOpts), { port: undefined });
|
|
161
|
+
var p = new _1.Pact(opts);
|
|
162
|
+
return expect(p.setup()).to.eventually.have.property('port').not
|
|
163
|
+
.undefined;
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
describe('#addInteraction', function () {
|
|
168
|
+
// This is more of an integration test, as the function has taken on a lot more
|
|
169
|
+
// responsibility previously covered by other functions during the upgrade to
|
|
170
|
+
// the rust core, to ensure the API remains backwards compatible
|
|
171
|
+
it('sets the correct request and response details on the FFI and starts the mock server', function () {
|
|
172
|
+
var p = new _1.Pact(fullOpts);
|
|
173
|
+
var uponReceiving = sinon_1.default.stub().returns(true);
|
|
174
|
+
var given = sinon_1.default.stub().returns(true);
|
|
175
|
+
var withRequest = sinon_1.default.stub().returns(true);
|
|
176
|
+
var withRequestBody = sinon_1.default.stub().returns(true);
|
|
177
|
+
var withRequestHeader = sinon_1.default.stub().returns(true);
|
|
178
|
+
var withQuery = sinon_1.default.stub().returns(true);
|
|
179
|
+
var withResponseBody = sinon_1.default.stub().returns(true);
|
|
180
|
+
var withResponseHeader = sinon_1.default.stub().returns(true);
|
|
181
|
+
var withStatus = sinon_1.default.stub().returns(true);
|
|
182
|
+
var createMockServer = sinon_1.default.stub().returns(1234);
|
|
183
|
+
var pactMock = {
|
|
184
|
+
createMockServer: createMockServer,
|
|
185
|
+
};
|
|
186
|
+
var interactionMock = {
|
|
187
|
+
uponReceiving: uponReceiving,
|
|
188
|
+
given: given,
|
|
189
|
+
withRequest: withRequest,
|
|
190
|
+
withRequestBody: withRequestBody,
|
|
191
|
+
withRequestHeader: withRequestHeader,
|
|
192
|
+
withQuery: withQuery,
|
|
193
|
+
withResponseBody: withResponseBody,
|
|
194
|
+
withResponseHeader: withResponseHeader,
|
|
195
|
+
withStatus: withStatus,
|
|
196
|
+
};
|
|
197
|
+
p.pact = pactMock;
|
|
198
|
+
p.interaction = interactionMock;
|
|
199
|
+
p.mockService = {};
|
|
200
|
+
p.addInteraction({
|
|
201
|
+
state: 'some state',
|
|
202
|
+
uponReceiving: 'some description',
|
|
203
|
+
withRequest: {
|
|
204
|
+
method: 'GET',
|
|
205
|
+
path: '/',
|
|
206
|
+
body: { foo: 'bar' },
|
|
207
|
+
headers: {
|
|
208
|
+
'content-type': 'application/json',
|
|
209
|
+
foo: 'bar',
|
|
210
|
+
},
|
|
211
|
+
query: {
|
|
212
|
+
query: 'string',
|
|
213
|
+
foo: 'bar',
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
willRespondWith: {
|
|
217
|
+
status: 200,
|
|
218
|
+
body: { baz: 'bat' },
|
|
219
|
+
headers: {
|
|
220
|
+
'content-type': 'application/hal+json',
|
|
221
|
+
foo: 'bar',
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
expect(uponReceiving.calledOnce).to.be.true;
|
|
226
|
+
expect(given.calledOnce).to.be.true;
|
|
227
|
+
expect(withRequest.calledOnce).to.be.true;
|
|
228
|
+
expect(withQuery.calledTwice).to.be.true;
|
|
229
|
+
expect(withRequestHeader.calledTwice).to.be.true;
|
|
230
|
+
expect(withRequestBody.calledOnce).to.be.true;
|
|
231
|
+
expect(withResponseBody.calledOnce).to.be.true;
|
|
232
|
+
expect(withResponseHeader.calledTwice).to.be.true;
|
|
233
|
+
// Pact mock server started
|
|
234
|
+
expect(createMockServer.called).to.be.true;
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
//# sourceMappingURL=index.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../src/httpPact/index.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,8CAAwB;AACxB,sEAA8C;AAC9C,gDAA0B;AAC1B,0DAAmC;AAEnC,sBAAyB;AAGzB,cAAI,CAAC,GAAG,CAAC,oBAAS,CAAC,CAAC;AACpB,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,MAAM,EAAE;IACf,IAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,KAAK;QACX,iBAAiB,EAAE,OAAO;KACJ,CAAC;IAEzB,SAAS,CAAC;QACR,eAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE;QACvB,EAAE,CAAC,yCAAyC,EAAE;YAC5C,MAAM,CAAC;gBACL,IAAI,OAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,4CAA4C,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE;YAC5C,MAAM,CAAC;gBACL,IAAI,OAAI,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,4CAA4C,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE;QACpC,IAAM,eAAe,GAAgB;YACnC,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,GAAG;SACd,CAAC;QAEF,EAAE,CAAC,uCAAuC,EAAE;YAC1C,IAAM,IAAI,GAAG,OAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,oCAAoC,EAAE;YAC7C,EAAE,CAAC,wCAAwC,EAAE;;;;;4BACrC,CAAC,GAAS,IAAI,OAAI,CAAC,QAAQ,CAAC,CAAC;4BAEnC,qBAAM,CAAC,CAAC,KAAK,EAAE,EAAA;;4BAAf,SAAe,CAAC;4BAChB,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gCAClC,OAAO,EAAE,uBAAuB;gCAChC,WAAW,EAAE;oCACX,mBAAmB,EAAE,OAAO;oCAC5B,QAAQ,EAAE;wCACR,IAAI,EAAE,GAAG;qCACV;oCACD,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;iCACxB;6BACF,CAAC,CAAC;;;;iBACJ,CAAC,CAAC;YAEH,EAAE,CAAC,mCAAmC,EAAE;gBACtC,IAAM,CAAC,GAAQ,IAAI,OAAI,CAAC,QAAQ,CAAC,CAAC;gBAElC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;oBAC7C,QAAQ,EAAE,GAAG;oBACb,QAAQ,EAAE,GAAG;oBACb,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,WAAW;oBACjB,GAAG,EAAE,KAAK;oBACV,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,CAAC;oBACP,IAAI,EAAE,KAAK;oBACX,iBAAiB,EAAE,OAAO;iBAC3B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sBAAsB,EAAE;YAC/B,EAAE,CAAC,iCAAiC,EAAE;gBACpC,IAAM,CAAC,GAAQ,IAAI,OAAI,CAAC,QAAQ,CAAC,CAAC;gBAElC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;qBACrB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;qBACnC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE;YAChC,EAAE,CAAC,mBAAmB,EAAE;gBACtB,IAAM,IAAI,yBACL,QAAQ,KACX,IAAI,EAAE,SAAS,GAChB,CAAC;gBACF,IAAM,CAAC,GAAQ,IAAI,OAAI,CAAC,IAAI,CAAC,CAAC;gBAE9B,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG;qBAC7D,SAAS,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,+EAA+E;QAC/E,6EAA6E;QAC7E,gEAAgE;QAChE,EAAE,CAAC,qFAAqF,EAAE;YACxF,IAAM,CAAC,GAAS,IAAI,OAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAM,aAAa,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,IAAM,KAAK,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,IAAM,WAAW,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAM,eAAe,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnD,IAAM,iBAAiB,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,IAAM,SAAS,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAM,gBAAgB,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,IAAM,kBAAkB,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtD,IAAM,UAAU,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAM,gBAAgB,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,IAAM,QAAQ,GAAiB;gBAC7B,gBAAgB,kBAAA;aACjB,CAAC;YACF,IAAM,eAAe,GAAwB;gBAC3C,aAAa,eAAA;gBACb,KAAK,OAAA;gBACL,WAAW,aAAA;gBACX,eAAe,iBAAA;gBACf,iBAAiB,mBAAA;gBACjB,SAAS,WAAA;gBACT,gBAAgB,kBAAA;gBAChB,kBAAkB,oBAAA;gBAClB,UAAU,YAAA;aACX,CAAC;YACF,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;YAClB,CAAC,CAAC,WAAW,GAAG,eAAe,CAAC;YAChC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC;YAEnB,CAAC,CAAC,cAAc,CAAC;gBACf,KAAK,EAAE,YAAY;gBACnB,aAAa,EAAE,kBAAkB;gBACjC,WAAW,EAAE;oBACX,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;oBACpB,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,GAAG,EAAE,KAAK;qBACX;oBACD,KAAK,EAAE;wBACL,KAAK,EAAE,QAAQ;wBACf,GAAG,EAAE,KAAK;qBACX;iBACF;gBACD,eAAe,EAAE;oBACf,MAAM,EAAE,GAAG;oBACX,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;oBACpB,OAAO,EAAE;wBACP,cAAc,EAAE,sBAAsB;wBACtC,GAAG,EAAE,KAAK;qBACX;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACpC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC1C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjD,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC9C,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/C,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAElD,2BAA2B;YAC3B,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const traceHttpInteractions: () => void;
|
|
@@ -0,0 +1,53 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.traceHttpInteractions = void 0;
|
|
18
|
+
var http_1 = __importDefault(require("http"));
|
|
19
|
+
var logger_1 = __importDefault(require("../common/logger"));
|
|
20
|
+
var traceHttpInteractions = function () {
|
|
21
|
+
var originalRequest = http_1.default.request;
|
|
22
|
+
http_1.default.request = function (options, cb) {
|
|
23
|
+
var requestBodyChunks = [];
|
|
24
|
+
var responseBodyChunks = [];
|
|
25
|
+
var hijackedCallback = function (res) {
|
|
26
|
+
logger_1.default.trace("outgoing request: ".concat(JSON.stringify(__assign(__assign({}, options), { body: Buffer.concat(requestBodyChunks).toString('utf8') }))));
|
|
27
|
+
if (cb) {
|
|
28
|
+
cb(res);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var clientRequest = originalRequest(options, hijackedCallback);
|
|
32
|
+
var oldWrite = clientRequest.end.bind(clientRequest);
|
|
33
|
+
clientRequest.end = function (chunk) {
|
|
34
|
+
requestBodyChunks.push(Buffer.from(chunk));
|
|
35
|
+
return oldWrite(chunk);
|
|
36
|
+
};
|
|
37
|
+
clientRequest.on('response', function (incoming) {
|
|
38
|
+
incoming.on('readable', function () {
|
|
39
|
+
responseBodyChunks.push(Buffer.from(incoming.read()));
|
|
40
|
+
});
|
|
41
|
+
incoming.on('end', function () {
|
|
42
|
+
logger_1.default.trace("response: ".concat(JSON.stringify({
|
|
43
|
+
body: Buffer.concat(responseBodyChunks).toString('utf8'),
|
|
44
|
+
headers: incoming.headers,
|
|
45
|
+
statusCode: incoming.statusCode,
|
|
46
|
+
})));
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
return clientRequest;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
exports.traceHttpInteractions = traceHttpInteractions;
|
|
53
|
+
//# sourceMappingURL=tracing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/httpPact/tracing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA4E;AAE5E,4DAAsC;AAE/B,IAAM,qBAAqB,GAAG;IACnC,IAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC;IACrC,cAAI,CAAC,OAAO,GAAG,UACb,OAAuB,EACvB,EAAkC;QAElC,IAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,IAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,IAAM,gBAAgB,GAAG,UAAC,GAAoB;YAC5C,gBAAM,CAAC,KAAK,CACV,4BAAqB,IAAI,CAAC,SAAS,uBAC9B,OAAO,KACV,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IACvD,CAAE,CACL,CAAC;YACF,IAAI,EAAE,EAAE;gBACN,EAAE,CAAC,GAAG,CAAC,CAAC;aACT;QACH,CAAC,CAAC;QACF,IAAM,aAAa,GAAkB,eAAe,CAClD,OAAO,EACP,gBAAgB,CACjB,CAAC;QACF,IAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,aAAa,CAAC,GAAG,GAAG,UAAC,KAAgD;YACnE,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,UAAC,QAAyB;YACrD,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE;gBACtB,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;gBACjB,gBAAM,CAAC,KAAK,CACV,oBAAa,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,CAAE,CACL,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,qBAAqB,yBA6ChC"}
|
|
@@ -7,68 +7,69 @@
|
|
|
7
7
|
* @memberof Pact
|
|
8
8
|
* @static
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Exposes {@link Matchers}
|
|
12
|
+
* To avoid polluting the root module's namespace, re-export
|
|
13
|
+
* Matchers as its own module
|
|
14
|
+
* @memberof Pact
|
|
15
|
+
* @static
|
|
16
|
+
*/
|
|
17
|
+
import * as MatchersStar from './dsl/matchers';
|
|
18
|
+
export declare const Matchers: typeof MatchersStar;
|
|
19
|
+
export { InterfaceToTemplate } from './dsl/matchers';
|
|
20
|
+
export { Pact } from './httpPact';
|
|
11
21
|
/**
|
|
12
22
|
* Exposes {@link MessageConsumerPact}
|
|
13
23
|
* @memberof Pact
|
|
14
24
|
* @static
|
|
15
25
|
*/
|
|
16
|
-
export * from
|
|
26
|
+
export * from './messageConsumerPact';
|
|
17
27
|
/**
|
|
18
28
|
* Exposes {@link MessageProviderPact}
|
|
19
29
|
* @memberof Pact
|
|
20
30
|
* @static
|
|
21
31
|
*/
|
|
22
|
-
export
|
|
32
|
+
export { MessageProviderPact, providerWithMetadata, } from './messageProviderPact';
|
|
23
33
|
/**
|
|
24
34
|
* Exposes {@link Message}
|
|
25
35
|
* @memberof Pact
|
|
26
36
|
* @static
|
|
27
37
|
*/
|
|
28
|
-
export * from
|
|
38
|
+
export * from './dsl/message';
|
|
29
39
|
/**
|
|
30
40
|
* Exposes {@link Verifier}
|
|
31
41
|
* @memberof Pact
|
|
32
42
|
* @static
|
|
33
43
|
*/
|
|
34
|
-
export * from
|
|
44
|
+
export * from './dsl/verifier/verifier';
|
|
35
45
|
/**
|
|
36
46
|
* Exposes {@link GraphQL}
|
|
37
47
|
* @memberof Pact
|
|
38
48
|
* @static
|
|
39
49
|
*/
|
|
40
|
-
export * from
|
|
50
|
+
export * from './dsl/graphql';
|
|
41
51
|
/**
|
|
42
52
|
* Exposes {@link ApolloGraphQL}
|
|
43
53
|
* @memberof Pact
|
|
44
54
|
* @static
|
|
45
55
|
*/
|
|
46
|
-
export * from
|
|
47
|
-
/**
|
|
48
|
-
* Exposes {@link Matchers}
|
|
49
|
-
* To avoid polluting the root module's namespace, re-export
|
|
50
|
-
* Matchers as its owns module
|
|
51
|
-
* @memberof Pact
|
|
52
|
-
* @static
|
|
53
|
-
*/
|
|
54
|
-
import * as Matchers from "./dsl/matchers";
|
|
55
|
-
export import Matchers = Matchers;
|
|
56
|
+
export * from './dsl/apolloGraphql';
|
|
56
57
|
/**
|
|
57
58
|
* Exposes {@link Interaction}
|
|
58
59
|
* @memberof Pact
|
|
59
60
|
* @static
|
|
60
61
|
*/
|
|
61
|
-
export * from
|
|
62
|
+
export * from './dsl/interaction';
|
|
62
63
|
/**
|
|
63
64
|
* Exposes {@link MockService}
|
|
64
65
|
* @memberof Pact
|
|
65
66
|
* @static
|
|
66
67
|
*/
|
|
67
|
-
export * from
|
|
68
|
-
export * from
|
|
68
|
+
export * from './dsl/mockService';
|
|
69
|
+
export * from './v3';
|
|
69
70
|
/**
|
|
70
|
-
* Exposes {@link
|
|
71
|
+
* Exposes {@link PactOptions}
|
|
71
72
|
* @memberof Pact
|
|
72
73
|
* @static
|
|
73
74
|
*/
|
|
74
|
-
export * from
|
|
75
|
+
export * from './dsl/options';
|
package/src/index.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Pact module meta package.
|
|
4
|
+
* @module Pact
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
30
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.providerWithMetadata = exports.MessageProviderPact = exports.Pact = exports.Matchers = void 0;
|
|
34
|
+
/**
|
|
35
|
+
* Exposes {@link Pact}
|
|
36
|
+
* @memberof Pact
|
|
37
|
+
* @static
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* Exposes {@link Matchers}
|
|
41
|
+
* To avoid polluting the root module's namespace, re-export
|
|
42
|
+
* Matchers as its own module
|
|
43
|
+
* @memberof Pact
|
|
44
|
+
* @static
|
|
45
|
+
*/
|
|
46
|
+
var MatchersStar = __importStar(require("./dsl/matchers"));
|
|
47
|
+
exports.Matchers = MatchersStar;
|
|
48
|
+
var httpPact_1 = require("./httpPact");
|
|
49
|
+
Object.defineProperty(exports, "Pact", { enumerable: true, get: function () { return httpPact_1.Pact; } });
|
|
50
|
+
/**
|
|
51
|
+
* Exposes {@link MessageConsumerPact}
|
|
52
|
+
* @memberof Pact
|
|
53
|
+
* @static
|
|
54
|
+
*/
|
|
55
|
+
__exportStar(require("./messageConsumerPact"), exports);
|
|
56
|
+
/**
|
|
57
|
+
* Exposes {@link MessageProviderPact}
|
|
58
|
+
* @memberof Pact
|
|
59
|
+
* @static
|
|
60
|
+
*/
|
|
61
|
+
var messageProviderPact_1 = require("./messageProviderPact");
|
|
62
|
+
Object.defineProperty(exports, "MessageProviderPact", { enumerable: true, get: function () { return messageProviderPact_1.MessageProviderPact; } });
|
|
63
|
+
Object.defineProperty(exports, "providerWithMetadata", { enumerable: true, get: function () { return messageProviderPact_1.providerWithMetadata; } });
|
|
64
|
+
/**
|
|
65
|
+
* Exposes {@link Message}
|
|
66
|
+
* @memberof Pact
|
|
67
|
+
* @static
|
|
68
|
+
*/
|
|
69
|
+
__exportStar(require("./dsl/message"), exports);
|
|
70
|
+
/**
|
|
71
|
+
* Exposes {@link Verifier}
|
|
72
|
+
* @memberof Pact
|
|
73
|
+
* @static
|
|
74
|
+
*/
|
|
75
|
+
__exportStar(require("./dsl/verifier/verifier"), exports);
|
|
76
|
+
/**
|
|
77
|
+
* Exposes {@link GraphQL}
|
|
78
|
+
* @memberof Pact
|
|
79
|
+
* @static
|
|
80
|
+
*/
|
|
81
|
+
__exportStar(require("./dsl/graphql"), exports);
|
|
82
|
+
/**
|
|
83
|
+
* Exposes {@link ApolloGraphQL}
|
|
84
|
+
* @memberof Pact
|
|
85
|
+
* @static
|
|
86
|
+
*/
|
|
87
|
+
__exportStar(require("./dsl/apolloGraphql"), exports);
|
|
88
|
+
/**
|
|
89
|
+
* Exposes {@link Interaction}
|
|
90
|
+
* @memberof Pact
|
|
91
|
+
* @static
|
|
92
|
+
*/
|
|
93
|
+
__exportStar(require("./dsl/interaction"), exports);
|
|
94
|
+
/**
|
|
95
|
+
* Exposes {@link MockService}
|
|
96
|
+
* @memberof Pact
|
|
97
|
+
* @static
|
|
98
|
+
*/
|
|
99
|
+
__exportStar(require("./dsl/mockService"), exports);
|
|
100
|
+
__exportStar(require("./v3"), exports);
|
|
101
|
+
/**
|
|
102
|
+
* Exposes {@link PactOptions}
|
|
103
|
+
* @memberof Pact
|
|
104
|
+
* @static
|
|
105
|
+
*/
|
|
106
|
+
__exportStar(require("./dsl/options"), exports);
|
|
107
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AACH,2DAA+C;AAElC,QAAA,QAAQ,GAAG,YAAY,CAAC;AAIrC,uCAAkC;AAAzB,gGAAA,IAAI,OAAA;AAEb;;;;GAIG;AACH,wDAAsC;AAEtC;;;;GAIG;AACH,6DAG+B;AAF7B,0HAAA,mBAAmB,OAAA;AACnB,2HAAA,oBAAoB,OAAA;AAGtB;;;;GAIG;AACH,gDAA8B;AAE9B;;;;GAIG;AACH,0DAAwC;AAExC;;;;GAIG;AACH,gDAA8B;AAC9B;;;;GAIG;AACH,sDAAoC;AAEpC;;;;GAIG;AACH,oDAAkC;AAElC;;;;GAIG;AACH,oDAAkC;AAElC,uCAAqB;AAErB;;;;GAIG;AACH,gDAA8B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Message
|
|
3
|
+
*/
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
import { AnyJson } from './common/jsonTypes';
|
|
6
|
+
import { AnyTemplate } from './dsl/matchers';
|
|
7
|
+
import { Metadata, Message, MessageConsumer, ProviderState } from './dsl/message';
|
|
8
|
+
import { MessageConsumerOptions } from './dsl/options';
|
|
9
|
+
/**
|
|
10
|
+
* A Message Consumer is analagous to a Provider in the HTTP Interaction model.
|
|
11
|
+
* It is the receiver of an interaction, and needs to be able to handle whatever
|
|
12
|
+
* request was provided.
|
|
13
|
+
*/
|
|
14
|
+
export declare class MessageConsumerPact {
|
|
15
|
+
private config;
|
|
16
|
+
private state;
|
|
17
|
+
private pact;
|
|
18
|
+
private message;
|
|
19
|
+
constructor(config: MessageConsumerOptions);
|
|
20
|
+
/**
|
|
21
|
+
* Gives a state the provider should be in for this Message.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} state - The state of the provider.
|
|
24
|
+
* @returns {Message} MessageConsumer
|
|
25
|
+
*/
|
|
26
|
+
given(state: string | ProviderState): MessageConsumerPact;
|
|
27
|
+
/**
|
|
28
|
+
* A free style description of the Message.
|
|
29
|
+
*
|
|
30
|
+
* @param {string} description - A description of the Message to be received
|
|
31
|
+
* @returns {Message} MessageConsumer
|
|
32
|
+
*/
|
|
33
|
+
expectsToReceive(description: string): MessageConsumerPact;
|
|
34
|
+
/**
|
|
35
|
+
* The JSON object to be received by the message consumer.
|
|
36
|
+
*
|
|
37
|
+
* May be a JSON object or JSON primitive. The contents must be able to be properly
|
|
38
|
+
* strigified and parse (i.e. via JSON.stringify and JSON.parse).
|
|
39
|
+
*
|
|
40
|
+
* @param {string} content - A description of the Message to be received
|
|
41
|
+
* @returns {Message} MessageConsumer
|
|
42
|
+
*/
|
|
43
|
+
withContent(content: AnyTemplate): MessageConsumerPact;
|
|
44
|
+
/**
|
|
45
|
+
* The text content to be received by the message consumer.
|
|
46
|
+
*
|
|
47
|
+
* May be any text
|
|
48
|
+
*
|
|
49
|
+
* @param {string} content - A description of the Message to be received
|
|
50
|
+
* @returns {Message} MessageConsumer
|
|
51
|
+
*/
|
|
52
|
+
withTextContent(content: string, contentType: string): MessageConsumerPact;
|
|
53
|
+
/**
|
|
54
|
+
* The binary content to be received by the message consumer.
|
|
55
|
+
*
|
|
56
|
+
* Content will be stored in base64 in the resulting pact file.
|
|
57
|
+
*
|
|
58
|
+
* @param {Buffer} content - A buffer containing the binary content
|
|
59
|
+
* @param {String} contenttype - The mime type of the content to expect
|
|
60
|
+
* @returns {Message} MessageConsumer
|
|
61
|
+
*/
|
|
62
|
+
withBinaryContent(content: Buffer, contentType: string): MessageConsumerPact;
|
|
63
|
+
/**
|
|
64
|
+
* Message metadata.
|
|
65
|
+
*
|
|
66
|
+
* @param {string} metadata -
|
|
67
|
+
* @returns {Message} MessageConsumer
|
|
68
|
+
*/
|
|
69
|
+
withMetadata(metadata: Metadata): MessageConsumerPact;
|
|
70
|
+
/**
|
|
71
|
+
* Creates a new Pact _message_ interaction to build a testable interaction.
|
|
72
|
+
*
|
|
73
|
+
* @param handler A message handler, that must be able to consume the given Message
|
|
74
|
+
* @returns {Promise}
|
|
75
|
+
*/
|
|
76
|
+
verify(handler: MessageConsumer): Promise<unknown>;
|
|
77
|
+
private reifiedContent;
|
|
78
|
+
/**
|
|
79
|
+
* Returns the Message object created.
|
|
80
|
+
*
|
|
81
|
+
* @returns {Message}
|
|
82
|
+
*/
|
|
83
|
+
json(): Message;
|
|
84
|
+
}
|
|
85
|
+
export declare function synchronousBodyHandler<R>(handler: (body: AnyJson | Buffer) => R): MessageConsumer;
|
|
86
|
+
export declare function asynchronousBodyHandler<R>(handler: (body: AnyJson | Buffer) => Promise<R>): MessageConsumer;
|