@pact-foundation/pact 10.0.0-beta.9 → 10.1.0-beta.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 +2444 -1
- package/CODE_OF_CONDUCT.md +1 -1
- package/CONTRIBUTING.md +49 -12
- package/MIGRATION.md +77 -0
- package/README.md +180 -1274
- package/RELEASING.md +63 -59
- package/package.json +95 -97
- 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 +240 -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
package/httpPact.spec.js
DELETED
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
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;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
/* tslint:disable:no-unused-expression object-literal-sort-keys max-classes-per-file no-empty no-console no-string-literal*/
|
|
40
|
-
var chai = require("chai");
|
|
41
|
-
var chaiAsPromised = require("chai-as-promised");
|
|
42
|
-
var sinon = require("sinon");
|
|
43
|
-
var sinonChai = require("sinon-chai");
|
|
44
|
-
var request_1 = require("./common/request");
|
|
45
|
-
var interaction_1 = require("./dsl/interaction");
|
|
46
|
-
var mockService_1 = require("./dsl/mockService");
|
|
47
|
-
var pact_node_1 = require("@pact-foundation/pact-node");
|
|
48
|
-
var httpPact_1 = require("./httpPact");
|
|
49
|
-
var ts_mock_imports_1 = require("ts-mock-imports");
|
|
50
|
-
// Mock out the PactNode interfaces
|
|
51
|
-
var PactServer = /** @class */ (function () {
|
|
52
|
-
function PactServer() {
|
|
53
|
-
}
|
|
54
|
-
PactServer.prototype.start = function () { };
|
|
55
|
-
PactServer.prototype.delete = function () { };
|
|
56
|
-
return PactServer;
|
|
57
|
-
}());
|
|
58
|
-
chai.use(sinonChai);
|
|
59
|
-
chai.use(chaiAsPromised);
|
|
60
|
-
var expect = chai.expect;
|
|
61
|
-
describe("Pact", function () {
|
|
62
|
-
var pact;
|
|
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: "overwrite",
|
|
73
|
-
};
|
|
74
|
-
before(function () {
|
|
75
|
-
// Stub out pact-node
|
|
76
|
-
var manager = ts_mock_imports_1.ImportMock.mockClass(pact_node_1.default, "createServer");
|
|
77
|
-
manager.mock("createServer", function () { });
|
|
78
|
-
});
|
|
79
|
-
beforeEach(function () {
|
|
80
|
-
pact = Object.create(httpPact_1.Pact.prototype);
|
|
81
|
-
pact.opts = fullOpts;
|
|
82
|
-
});
|
|
83
|
-
afterEach(function () {
|
|
84
|
-
sinon.restore();
|
|
85
|
-
// return serviceFactory.removeAllServers()
|
|
86
|
-
});
|
|
87
|
-
describe("#constructor", function () {
|
|
88
|
-
it("throws Error when consumer not provided", function () {
|
|
89
|
-
expect(function () {
|
|
90
|
-
new httpPact_1.Pact({ consumer: "", provider: "provider" });
|
|
91
|
-
}).to.throw(Error, "You must specify a Consumer for this pact.");
|
|
92
|
-
});
|
|
93
|
-
it("throws Error when provider not provided", function () {
|
|
94
|
-
expect(function () {
|
|
95
|
-
new httpPact_1.Pact({ consumer: "someconsumer", provider: "" });
|
|
96
|
-
}).to.throw(Error, "You must specify a Provider for this pact.");
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
describe("#createOptionsWithDefault", function () {
|
|
100
|
-
var constructorOpts = {
|
|
101
|
-
consumer: "A",
|
|
102
|
-
provider: "B",
|
|
103
|
-
};
|
|
104
|
-
it("merges options with sensible defaults", function () {
|
|
105
|
-
var opts = httpPact_1.Pact.createOptionsWithDefaults(constructorOpts);
|
|
106
|
-
expect(opts.consumer).to.eq("A");
|
|
107
|
-
expect(opts.provider).to.eq("B");
|
|
108
|
-
expect(opts.cors).to.eq(false);
|
|
109
|
-
expect(opts.host).to.eq("127.0.0.1");
|
|
110
|
-
expect(opts.logLevel).to.eq("info");
|
|
111
|
-
expect(opts.spec).to.eq(2);
|
|
112
|
-
expect(opts.dir).not.to.be.empty;
|
|
113
|
-
expect(opts.log).not.to.be.empty;
|
|
114
|
-
expect(opts.pactfileWriteMode).to.eq("overwrite");
|
|
115
|
-
expect(opts.ssl).to.eq(false);
|
|
116
|
-
expect(opts.sslcert).to.eq(undefined);
|
|
117
|
-
expect(opts.sslkey).to.eq(undefined);
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
describe("#setup", function () {
|
|
121
|
-
var serverMock = {
|
|
122
|
-
start: function () { return Promise.resolve(); },
|
|
123
|
-
options: { port: 1234 },
|
|
124
|
-
logLevel: function (a) { },
|
|
125
|
-
};
|
|
126
|
-
describe("when server is not properly configured", function () {
|
|
127
|
-
describe("and pact-node is unable to start the server", function () {
|
|
128
|
-
it("returns a rejected promise", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
129
|
-
var p;
|
|
130
|
-
return __generator(this, function (_a) {
|
|
131
|
-
p = new httpPact_1.Pact(fullOpts);
|
|
132
|
-
p.server = {
|
|
133
|
-
start: function () { return Promise.reject("pact-node error"); },
|
|
134
|
-
options: { port: 1234 },
|
|
135
|
-
};
|
|
136
|
-
return [2 /*return*/, expect(p.setup()).to.eventually.be.rejectedWith("pact-node error")];
|
|
137
|
-
});
|
|
138
|
-
}); });
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
describe("when server is properly configured", function () {
|
|
142
|
-
it("starts the mock server in the background", function () {
|
|
143
|
-
var p = new httpPact_1.Pact(fullOpts);
|
|
144
|
-
p.server = serverMock;
|
|
145
|
-
return expect(p.setup()).to.eventually.be.fulfilled;
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
describe("when server is properly configured", function () {
|
|
149
|
-
it("returns the current configuration", function () {
|
|
150
|
-
var p = new httpPact_1.Pact(fullOpts);
|
|
151
|
-
p.server = serverMock;
|
|
152
|
-
return expect(p.setup()).to.eventually.include({
|
|
153
|
-
consumer: "A",
|
|
154
|
-
provider: "B",
|
|
155
|
-
port: 1234,
|
|
156
|
-
host: "127.0.0.1",
|
|
157
|
-
ssl: false,
|
|
158
|
-
logLevel: "info",
|
|
159
|
-
spec: 2,
|
|
160
|
-
cors: false,
|
|
161
|
-
pactfileWriteMode: "overwrite",
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
describe("#addInteraction", function () {
|
|
167
|
-
var interaction = {
|
|
168
|
-
state: "i have a list of projects",
|
|
169
|
-
uponReceiving: "a request for projects",
|
|
170
|
-
withRequest: {
|
|
171
|
-
method: request_1.HTTPMethod.GET,
|
|
172
|
-
path: "/projects",
|
|
173
|
-
headers: { Accept: "application/json" },
|
|
174
|
-
},
|
|
175
|
-
willRespondWith: {
|
|
176
|
-
status: 200,
|
|
177
|
-
headers: { "Content-Type": "application/json" },
|
|
178
|
-
body: {},
|
|
179
|
-
},
|
|
180
|
-
};
|
|
181
|
-
describe("when given a provider state", function () {
|
|
182
|
-
it("creates interaction with state", function () {
|
|
183
|
-
pact.mockService = {
|
|
184
|
-
addInteraction: function (int) { return Promise.resolve(int.state); },
|
|
185
|
-
};
|
|
186
|
-
return expect(pact.addInteraction(interaction)).to.eventually.have.property("providerState");
|
|
187
|
-
});
|
|
188
|
-
});
|
|
189
|
-
describe("when not given a provider state", function () {
|
|
190
|
-
it("creates interaction with no state", function () {
|
|
191
|
-
pact.mockService = {
|
|
192
|
-
addInteraction: function (int) { return Promise.resolve(int.state); },
|
|
193
|
-
};
|
|
194
|
-
interaction.state = undefined;
|
|
195
|
-
return expect(pact.addInteraction(interaction)).to.eventually.not.have.property("providerState");
|
|
196
|
-
});
|
|
197
|
-
describe("when given an Interaction as a builder", function () {
|
|
198
|
-
it("creates interaction", function () {
|
|
199
|
-
var interaction2 = new interaction_1.Interaction()
|
|
200
|
-
.given("i have a list of projects")
|
|
201
|
-
.uponReceiving("a request for projects")
|
|
202
|
-
.withRequest({
|
|
203
|
-
method: request_1.HTTPMethod.GET,
|
|
204
|
-
path: "/projects",
|
|
205
|
-
headers: { Accept: "application/json" },
|
|
206
|
-
})
|
|
207
|
-
.willRespondWith({
|
|
208
|
-
status: 200,
|
|
209
|
-
headers: { "Content-Type": "application/json" },
|
|
210
|
-
body: {},
|
|
211
|
-
});
|
|
212
|
-
pact.mockService = {
|
|
213
|
-
addInteraction: function (int) {
|
|
214
|
-
return Promise.resolve(int);
|
|
215
|
-
},
|
|
216
|
-
};
|
|
217
|
-
return expect(pact.addInteraction(interaction2)).to.eventually.have.property("given");
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
|
-
describe("#verify", function () {
|
|
223
|
-
describe("when pact verification is successful", function () {
|
|
224
|
-
it("returns a successful promise and remove interactions", function () {
|
|
225
|
-
pact.mockService = {
|
|
226
|
-
verify: function () { return Promise.resolve("verified!"); },
|
|
227
|
-
removeInteractions: function () { return Promise.resolve("removeInteractions"); },
|
|
228
|
-
};
|
|
229
|
-
var verifyPromise = pact.verify();
|
|
230
|
-
return Promise.all([
|
|
231
|
-
expect(verifyPromise).to.eventually.eq("removeInteractions"),
|
|
232
|
-
expect(verifyPromise).to.eventually.be.fulfilled,
|
|
233
|
-
]);
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
describe("when pact verification is unsuccessful", function () {
|
|
237
|
-
it("throws an error", function () {
|
|
238
|
-
var removeInteractionsStub = sinon
|
|
239
|
-
.stub(mockService_1.MockService.prototype, "removeInteractions")
|
|
240
|
-
.resolves("removeInteractions");
|
|
241
|
-
pact.mockService = {
|
|
242
|
-
verify: function () { return Promise.reject("not verified!"); },
|
|
243
|
-
removeInteractions: removeInteractionsStub,
|
|
244
|
-
};
|
|
245
|
-
var verifyPromise = pact.verify();
|
|
246
|
-
return Promise.all([
|
|
247
|
-
expect(verifyPromise).to.eventually.be.rejectedWith(Error),
|
|
248
|
-
verifyPromise.catch(function () {
|
|
249
|
-
return expect(removeInteractionsStub).to.callCount(1);
|
|
250
|
-
}),
|
|
251
|
-
]);
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
describe("when pact verification is successful", function () {
|
|
255
|
-
describe("and an error is thrown in the cleanup", function () {
|
|
256
|
-
it("throws an error", function () {
|
|
257
|
-
pact.mockService = {
|
|
258
|
-
verify: function () { return Promise.resolve("verified!"); },
|
|
259
|
-
removeInteractions: function () {
|
|
260
|
-
throw new Error("error removing interactions");
|
|
261
|
-
},
|
|
262
|
-
};
|
|
263
|
-
return expect(pact.verify()).to.eventually.be.rejectedWith(Error);
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
});
|
|
267
|
-
});
|
|
268
|
-
describe("#finalize", function () {
|
|
269
|
-
describe("when writing Pact is successful", function () {
|
|
270
|
-
it("returns a successful promise and shuts down down the mock server", function () {
|
|
271
|
-
pact.mockService = {
|
|
272
|
-
writePact: function () { return Promise.resolve("pact file written!"); },
|
|
273
|
-
removeInteractions: sinon.stub(),
|
|
274
|
-
};
|
|
275
|
-
pact.server = {
|
|
276
|
-
delete: function () { return Promise.resolve(); },
|
|
277
|
-
};
|
|
278
|
-
return expect(pact.finalize()).to.eventually.be.fulfilled;
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
describe("when writing Pact is unsuccessful", function () {
|
|
282
|
-
it("throws an error and shuts down the server", function () {
|
|
283
|
-
pact.mockService = {
|
|
284
|
-
writePact: function () { return Promise.reject(new Error("pact not file written!")); },
|
|
285
|
-
removeInteractions: sinon.stub(),
|
|
286
|
-
};
|
|
287
|
-
var deleteStub = sinon.stub(PactServer.prototype, "delete").resolves();
|
|
288
|
-
pact.server = { delete: deleteStub };
|
|
289
|
-
return expect(pact.finalize()).to.eventually.be.rejected.then(function () {
|
|
290
|
-
return expect(deleteStub).to.callCount(1);
|
|
291
|
-
});
|
|
292
|
-
});
|
|
293
|
-
});
|
|
294
|
-
describe("when writing pact is successful and shutting down the mock server is unsuccessful", function () {
|
|
295
|
-
it("throws an error", function () {
|
|
296
|
-
pact.mockService = {
|
|
297
|
-
writePact: sinon.stub(),
|
|
298
|
-
removeInteractions: sinon.stub(),
|
|
299
|
-
};
|
|
300
|
-
pact.server = {
|
|
301
|
-
delete: function () { return Promise.reject(); },
|
|
302
|
-
};
|
|
303
|
-
return expect(pact.finalize).to.throw(Error);
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
});
|
|
307
|
-
describe("#writePact", function () {
|
|
308
|
-
describe("when writing Pact is successful", function () {
|
|
309
|
-
it("returns a successful promise", function () {
|
|
310
|
-
pact.mockService = {
|
|
311
|
-
writePact: function () { return Promise.resolve("pact file written!"); },
|
|
312
|
-
removeInteractions: sinon.stub(),
|
|
313
|
-
};
|
|
314
|
-
var writePactPromise = pact.writePact();
|
|
315
|
-
return Promise.all([
|
|
316
|
-
expect(writePactPromise).to.eventually.eq("pact file written!"),
|
|
317
|
-
expect(writePactPromise).to.eventually.be.fulfilled,
|
|
318
|
-
]);
|
|
319
|
-
});
|
|
320
|
-
});
|
|
321
|
-
});
|
|
322
|
-
describe("#removeInteractions", function () {
|
|
323
|
-
describe("when removing interactions is successful", function () {
|
|
324
|
-
it("returns a successful promise", function () {
|
|
325
|
-
pact.mockService = {
|
|
326
|
-
removeInteractions: function () { return Promise.resolve("interactions removed!"); },
|
|
327
|
-
};
|
|
328
|
-
var removeInteractionsPromise = pact.removeInteractions();
|
|
329
|
-
return Promise.all([
|
|
330
|
-
expect(removeInteractionsPromise).to.eventually.eq("interactions removed!"),
|
|
331
|
-
expect(removeInteractionsPromise).to.eventually.be.fulfilled,
|
|
332
|
-
]);
|
|
333
|
-
});
|
|
334
|
-
});
|
|
335
|
-
});
|
|
336
|
-
});
|
|
337
|
-
//# sourceMappingURL=httpPact.spec.js.map
|
package/httpPact.spec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"httpPact.spec.js","sourceRoot":"","sources":["../src/httpPact.spec.ts"],"names":[],"mappings":"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"}
|
package/messageConsumerPact.d.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module Message
|
|
3
|
-
*/
|
|
4
|
-
import { Metadata, Message, MessageConsumer } from "./dsl/message";
|
|
5
|
-
import { MessageConsumerOptions } from "./dsl/options";
|
|
6
|
-
/**
|
|
7
|
-
* A Message Consumer is analagous to a Provider in the HTTP Interaction model.
|
|
8
|
-
* It is the receiver of an interaction, and needs to be able to handle whatever
|
|
9
|
-
* request was provided.
|
|
10
|
-
*/
|
|
11
|
-
export declare class MessageConsumerPact {
|
|
12
|
-
private config;
|
|
13
|
-
private state;
|
|
14
|
-
constructor(config: MessageConsumerOptions);
|
|
15
|
-
/**
|
|
16
|
-
* Gives a state the provider should be in for this Message.
|
|
17
|
-
*
|
|
18
|
-
* @param {string} providerState - The state of the provider.
|
|
19
|
-
* @returns {Message} MessageConsumer
|
|
20
|
-
*/
|
|
21
|
-
given(providerState: string): this;
|
|
22
|
-
/**
|
|
23
|
-
* A free style description of the Message.
|
|
24
|
-
*
|
|
25
|
-
* @param {string} description - A description of the Message to be received
|
|
26
|
-
* @returns {Message} MessageConsumer
|
|
27
|
-
*/
|
|
28
|
-
expectsToReceive(description: string): this;
|
|
29
|
-
/**
|
|
30
|
-
* The content to be received by the message consumer.
|
|
31
|
-
*
|
|
32
|
-
* May be a JSON document or JSON primitive.
|
|
33
|
-
*
|
|
34
|
-
* @param {string} content - A description of the Message to be received
|
|
35
|
-
* @returns {Message} MessageConsumer
|
|
36
|
-
*/
|
|
37
|
-
withContent(content: any): this;
|
|
38
|
-
/**
|
|
39
|
-
* Message metadata
|
|
40
|
-
*
|
|
41
|
-
* @param {string} metadata -
|
|
42
|
-
* @returns {Message} MessageConsumer
|
|
43
|
-
*/
|
|
44
|
-
withMetadata(metadata: Metadata): this;
|
|
45
|
-
/**
|
|
46
|
-
* Returns the Message object created.
|
|
47
|
-
*
|
|
48
|
-
* @returns {Message}
|
|
49
|
-
*/
|
|
50
|
-
json(): Message;
|
|
51
|
-
/**
|
|
52
|
-
* Creates a new Pact _message_ interaction to build a testable interaction.
|
|
53
|
-
*
|
|
54
|
-
* @param handler A message handler, that must be able to consume the given Message
|
|
55
|
-
* @returns {Promise}
|
|
56
|
-
*/
|
|
57
|
-
verify(handler: MessageConsumer): Promise<any>;
|
|
58
|
-
/**
|
|
59
|
-
* Validates the current state of the Message.
|
|
60
|
-
*
|
|
61
|
-
* @returns {Promise}
|
|
62
|
-
*/
|
|
63
|
-
validate(): Promise<any>;
|
|
64
|
-
private getServiceFactory;
|
|
65
|
-
}
|
|
66
|
-
export declare function synchronousBodyHandler(handler: (body: any) => any): MessageConsumer;
|
|
67
|
-
export declare function asynchronousBodyHandler(handler: (body: any) => Promise<any>): MessageConsumer;
|
package/messageConsumerPact.js
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @module Message
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var lodash_1 = require("lodash");
|
|
7
|
-
var matchers_1 = require("./dsl/matchers");
|
|
8
|
-
var utils_1 = require("./common/utils");
|
|
9
|
-
var logger_1 = require("./common/logger");
|
|
10
|
-
var pact_node_1 = require("@pact-foundation/pact-node");
|
|
11
|
-
var configurationError_1 = require("./errors/configurationError");
|
|
12
|
-
/**
|
|
13
|
-
* A Message Consumer is analagous to a Provider in the HTTP Interaction model.
|
|
14
|
-
* It is the receiver of an interaction, and needs to be able to handle whatever
|
|
15
|
-
* request was provided.
|
|
16
|
-
*/
|
|
17
|
-
var MessageConsumerPact = /** @class */ (function () {
|
|
18
|
-
function MessageConsumerPact(config) {
|
|
19
|
-
this.config = config;
|
|
20
|
-
// Build up a valid Message object
|
|
21
|
-
this.state = {};
|
|
22
|
-
if (!lodash_1.isEmpty(config.logLevel)) {
|
|
23
|
-
pact_node_1.default.logLevel(config.logLevel);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Gives a state the provider should be in for this Message.
|
|
28
|
-
*
|
|
29
|
-
* @param {string} providerState - The state of the provider.
|
|
30
|
-
* @returns {Message} MessageConsumer
|
|
31
|
-
*/
|
|
32
|
-
MessageConsumerPact.prototype.given = function (providerState) {
|
|
33
|
-
if (providerState) {
|
|
34
|
-
// Currently only supports a single state
|
|
35
|
-
// but the format needs to be v3 compatible for
|
|
36
|
-
// basic interoperability
|
|
37
|
-
this.state.providerStates = [
|
|
38
|
-
{
|
|
39
|
-
name: providerState,
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
}
|
|
43
|
-
return this;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* A free style description of the Message.
|
|
47
|
-
*
|
|
48
|
-
* @param {string} description - A description of the Message to be received
|
|
49
|
-
* @returns {Message} MessageConsumer
|
|
50
|
-
*/
|
|
51
|
-
MessageConsumerPact.prototype.expectsToReceive = function (description) {
|
|
52
|
-
if (lodash_1.isEmpty(description)) {
|
|
53
|
-
throw new configurationError_1.default("You must provide a description for the Message.");
|
|
54
|
-
}
|
|
55
|
-
this.state.description = description;
|
|
56
|
-
return this;
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* The content to be received by the message consumer.
|
|
60
|
-
*
|
|
61
|
-
* May be a JSON document or JSON primitive.
|
|
62
|
-
*
|
|
63
|
-
* @param {string} content - A description of the Message to be received
|
|
64
|
-
* @returns {Message} MessageConsumer
|
|
65
|
-
*/
|
|
66
|
-
MessageConsumerPact.prototype.withContent = function (content) {
|
|
67
|
-
if (lodash_1.isEmpty(content)) {
|
|
68
|
-
throw new configurationError_1.default("You must provide a valid JSON document or primitive for the Message.");
|
|
69
|
-
}
|
|
70
|
-
this.state.contents = content;
|
|
71
|
-
return this;
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* Message metadata
|
|
75
|
-
*
|
|
76
|
-
* @param {string} metadata -
|
|
77
|
-
* @returns {Message} MessageConsumer
|
|
78
|
-
*/
|
|
79
|
-
MessageConsumerPact.prototype.withMetadata = function (metadata) {
|
|
80
|
-
if (lodash_1.isEmpty(metadata)) {
|
|
81
|
-
throw new configurationError_1.default("You must provide valid metadata for the Message, or none at all");
|
|
82
|
-
}
|
|
83
|
-
this.state.metadata = metadata;
|
|
84
|
-
return this;
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* Returns the Message object created.
|
|
88
|
-
*
|
|
89
|
-
* @returns {Message}
|
|
90
|
-
*/
|
|
91
|
-
MessageConsumerPact.prototype.json = function () {
|
|
92
|
-
return this.state;
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* Creates a new Pact _message_ interaction to build a testable interaction.
|
|
96
|
-
*
|
|
97
|
-
* @param handler A message handler, that must be able to consume the given Message
|
|
98
|
-
* @returns {Promise}
|
|
99
|
-
*/
|
|
100
|
-
MessageConsumerPact.prototype.verify = function (handler) {
|
|
101
|
-
var _this = this;
|
|
102
|
-
logger_1.default.info("Verifying message");
|
|
103
|
-
return this.validate()
|
|
104
|
-
.then(function () { return handler(matchers_1.extractPayload(lodash_1.cloneDeep(_this.state))); })
|
|
105
|
-
.then(function () {
|
|
106
|
-
return utils_1.qToPromise(_this.getServiceFactory().createMessage({
|
|
107
|
-
consumer: _this.config.consumer,
|
|
108
|
-
content: JSON.stringify(_this.state),
|
|
109
|
-
dir: _this.config.dir,
|
|
110
|
-
pactFileWriteMode: _this.config.pactfileWriteMode,
|
|
111
|
-
provider: _this.config.provider,
|
|
112
|
-
spec: 3,
|
|
113
|
-
}));
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* Validates the current state of the Message.
|
|
118
|
-
*
|
|
119
|
-
* @returns {Promise}
|
|
120
|
-
*/
|
|
121
|
-
MessageConsumerPact.prototype.validate = function () {
|
|
122
|
-
if (isMessage(this.state)) {
|
|
123
|
-
return Promise.resolve();
|
|
124
|
-
}
|
|
125
|
-
return Promise.reject("message has not yet been properly constructed");
|
|
126
|
-
};
|
|
127
|
-
MessageConsumerPact.prototype.getServiceFactory = function () {
|
|
128
|
-
return pact_node_1.default;
|
|
129
|
-
};
|
|
130
|
-
return MessageConsumerPact;
|
|
131
|
-
}());
|
|
132
|
-
exports.MessageConsumerPact = MessageConsumerPact;
|
|
133
|
-
var isMessage = function (x) {
|
|
134
|
-
return x.contents !== undefined;
|
|
135
|
-
};
|
|
136
|
-
// TODO: create more basic adapters for API handlers
|
|
137
|
-
// bodyHandler takes a synchronous function and returns
|
|
138
|
-
// a wrapped function that accepts a Message and returns a Promise
|
|
139
|
-
function synchronousBodyHandler(handler) {
|
|
140
|
-
return function (m) {
|
|
141
|
-
var body = m.contents;
|
|
142
|
-
return new Promise(function (resolve, reject) {
|
|
143
|
-
try {
|
|
144
|
-
var res = handler(body);
|
|
145
|
-
resolve(res);
|
|
146
|
-
}
|
|
147
|
-
catch (e) {
|
|
148
|
-
reject(e);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
exports.synchronousBodyHandler = synchronousBodyHandler;
|
|
154
|
-
// bodyHandler takes an asynchronous (promisified) function and returns
|
|
155
|
-
// a wrapped function that accepts a Message and returns a Promise
|
|
156
|
-
// TODO: move this into its own package and re-export?
|
|
157
|
-
function asynchronousBodyHandler(handler) {
|
|
158
|
-
return function (m) { return handler(m.contents); };
|
|
159
|
-
}
|
|
160
|
-
exports.asynchronousBodyHandler = asynchronousBodyHandler;
|
|
161
|
-
//# sourceMappingURL=messageConsumerPact.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messageConsumerPact.js","sourceRoot":"","sources":["../src/messageConsumerPact.ts"],"names":[],"mappings":"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"}
|