@pact-foundation/pact 7.3.0 → 8.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 +44 -0
- package/CONTRIBUTING.md +22 -9
- package/LICENSE +1 -2
- package/README.md +253 -157
- package/common/logger.js +10 -5
- package/common/logger.js.map +1 -1
- package/common/metadata.js.map +1 -1
- package/common/net.js +3 -2
- package/common/net.js.map +1 -1
- package/common/net.spec.d.ts +1 -0
- package/common/net.spec.js +47 -0
- package/common/net.spec.js.map +1 -0
- package/common/request.js +1 -2
- package/common/request.js.map +1 -1
- package/common/request.spec.d.ts +1 -0
- package/common/request.spec.js +71 -0
- package/common/request.spec.js.map +1 -0
- package/common/utils.js +1 -2
- package/common/utils.js.map +1 -1
- package/dsl/apolloGraphql.d.ts +1 -1
- package/dsl/apolloGraphql.js +6 -3
- package/dsl/apolloGraphql.js.map +1 -1
- package/dsl/apolloGraphql.spec.d.ts +1 -0
- package/dsl/apolloGraphql.spec.js +47 -0
- package/dsl/apolloGraphql.spec.js.map +1 -0
- package/dsl/graphql.js +19 -9
- package/dsl/graphql.js.map +1 -1
- package/dsl/graphql.spec.d.ts +1 -0
- package/dsl/graphql.spec.js +141 -0
- package/dsl/graphql.spec.js.map +1 -0
- package/dsl/interaction.js +9 -7
- package/dsl/interaction.js.map +1 -1
- package/dsl/interaction.spec.d.ts +1 -0
- package/dsl/interaction.spec.js +172 -0
- package/dsl/interaction.spec.js.map +1 -0
- package/dsl/matchers.d.ts +25 -25
- package/dsl/matchers.js +57 -55
- package/dsl/matchers.js.map +1 -1
- package/dsl/matchers.spec.d.ts +1 -0
- package/dsl/matchers.spec.js +537 -0
- package/dsl/matchers.spec.js.map +1 -0
- package/dsl/message.d.ts +29 -3
- package/dsl/mockService.d.ts +6 -0
- package/dsl/mockService.js +10 -4
- package/dsl/mockService.js.map +1 -1
- package/dsl/mockService.spec.d.ts +1 -0
- package/dsl/mockService.spec.js +126 -0
- package/dsl/mockService.spec.js.map +1 -0
- package/dsl/verifier.d.ts +48 -2
- package/dsl/verifier.js +142 -3
- package/dsl/verifier.js.map +1 -1
- package/dsl/verifier.spec.d.ts +1 -0
- package/dsl/verifier.spec.js +299 -0
- package/dsl/verifier.spec.js.map +1 -0
- package/errors/configurationError.d.ts +2 -0
- package/errors/configurationError.js +24 -0
- package/errors/configurationError.js.map +1 -0
- package/errors/graphQLQueryError.d.ts +2 -0
- package/errors/graphQLQueryError.js +24 -0
- package/errors/graphQLQueryError.js.map +1 -0
- package/errors/matcherError.d.ts +2 -0
- package/errors/matcherError.js +24 -0
- package/errors/matcherError.js.map +1 -0
- package/errors/verificationError.d.ts +2 -0
- package/errors/verificationError.js +24 -0
- package/errors/verificationError.js.map +1 -0
- package/httpPact.d.ts +69 -0
- package/httpPact.js +206 -0
- package/httpPact.js.map +1 -0
- package/httpPact.spec.d.ts +1 -0
- package/httpPact.spec.js +337 -0
- package/httpPact.spec.js.map +1 -0
- package/messageConsumerPact.d.ts +3 -3
- package/messageConsumerPact.js +5 -4
- package/messageConsumerPact.js.map +1 -1
- package/messageConsumerPact.spec.d.ts +1 -0
- package/messageConsumerPact.spec.js +161 -0
- package/messageConsumerPact.spec.js.map +1 -0
- package/messageProviderPact.d.ts +0 -1
- package/messageProviderPact.js +11 -11
- package/messageProviderPact.js.map +1 -1
- package/messageProviderPact.spec.d.ts +1 -0
- package/messageProviderPact.spec.js +146 -0
- package/messageProviderPact.spec.js.map +1 -0
- package/package.json +24 -26
- package/pact-web.d.ts +2 -2
- package/pact-web.js +20 -10
- package/pact-web.js.map +1 -1
- package/pact-web.spec.d.ts +1 -0
- package/pact-web.spec.js +205 -0
- package/pact-web.spec.js.map +1 -0
- package/pact.d.ts +28 -65
- package/pact.integration.spec.d.ts +0 -0
- package/pact.integration.spec.js +292 -0
- package/pact.integration.spec.js.map +1 -0
- package/pact.js +21 -189
- package/pact.js.map +1 -1
package/httpPact.js
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
var pact_node_1 = require("@pact-foundation/pact-node");
|
|
15
|
+
var path = require("path");
|
|
16
|
+
var clc = require("cli-color");
|
|
17
|
+
var process = require("process");
|
|
18
|
+
var interaction_1 = require("./dsl/interaction");
|
|
19
|
+
var lodash_1 = require("lodash");
|
|
20
|
+
var net_1 = require("./common/net");
|
|
21
|
+
var logger_1 = require("./common/logger");
|
|
22
|
+
var mockService_1 = require("./dsl/mockService");
|
|
23
|
+
var verificationError_1 = require("./errors/verificationError");
|
|
24
|
+
var configurationError_1 = require("./errors/configurationError");
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new {@link PactProvider}.
|
|
27
|
+
* @memberof Pact
|
|
28
|
+
* @name create
|
|
29
|
+
* @param {PactOptions} opts
|
|
30
|
+
* @return {@link PactProvider}
|
|
31
|
+
*/
|
|
32
|
+
var Pact = /** @class */ (function () {
|
|
33
|
+
function Pact(config) {
|
|
34
|
+
this.opts = Pact.createOptionsWithDefaults(config);
|
|
35
|
+
if (lodash_1.isEmpty(this.opts.consumer)) {
|
|
36
|
+
throw new configurationError_1.default("You must specify a Consumer for this pact.");
|
|
37
|
+
}
|
|
38
|
+
if (lodash_1.isEmpty(this.opts.provider)) {
|
|
39
|
+
throw new configurationError_1.default("You must specify a Provider for this pact.");
|
|
40
|
+
}
|
|
41
|
+
logger_1.default.level(this.opts.logLevel);
|
|
42
|
+
pact_node_1.default.logLevel(this.opts.logLevel);
|
|
43
|
+
this.createServer(config);
|
|
44
|
+
}
|
|
45
|
+
Pact.createOptionsWithDefaults = function (opts) {
|
|
46
|
+
return __assign({}, Pact.defaults, opts);
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Setup the pact framework, including start the
|
|
50
|
+
* underlying mock server
|
|
51
|
+
* @returns {Promise}
|
|
52
|
+
*/
|
|
53
|
+
Pact.prototype.setup = function () {
|
|
54
|
+
var _this = this;
|
|
55
|
+
return this.checkPort()
|
|
56
|
+
.then(function () { return _this.startServer(); })
|
|
57
|
+
.then(function (opts) {
|
|
58
|
+
_this.setupMockService();
|
|
59
|
+
return Promise.resolve(opts);
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Add an interaction to the {@link MockService}.
|
|
64
|
+
* @memberof PactProvider
|
|
65
|
+
* @instance
|
|
66
|
+
* @param {Interaction} interactionObj
|
|
67
|
+
* @returns {Promise}
|
|
68
|
+
*/
|
|
69
|
+
Pact.prototype.addInteraction = function (interactionObj) {
|
|
70
|
+
if (interactionObj instanceof interaction_1.Interaction) {
|
|
71
|
+
return this.mockService.addInteraction(interactionObj);
|
|
72
|
+
}
|
|
73
|
+
var interaction = new interaction_1.Interaction();
|
|
74
|
+
if (interactionObj.state) {
|
|
75
|
+
interaction.given(interactionObj.state);
|
|
76
|
+
}
|
|
77
|
+
interaction
|
|
78
|
+
.uponReceiving(interactionObj.uponReceiving)
|
|
79
|
+
.withRequest(interactionObj.withRequest)
|
|
80
|
+
.willRespondWith(interactionObj.willRespondWith);
|
|
81
|
+
return this.mockService.addInteraction(interaction);
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Checks with the Mock Service if the expected interactions have been exercised.
|
|
85
|
+
* @memberof PactProvider
|
|
86
|
+
* @instance
|
|
87
|
+
* @returns {Promise}
|
|
88
|
+
*/
|
|
89
|
+
Pact.prototype.verify = function () {
|
|
90
|
+
var _this = this;
|
|
91
|
+
return this.mockService
|
|
92
|
+
.verify()
|
|
93
|
+
.then(function () { return _this.mockService.removeInteractions(); })
|
|
94
|
+
.catch(function (e) {
|
|
95
|
+
// Properly format the error
|
|
96
|
+
/* tslint:disable: no-console */
|
|
97
|
+
console.error("");
|
|
98
|
+
console.error(clc.red("Pact verification failed!"));
|
|
99
|
+
console.error(clc.red(e));
|
|
100
|
+
/* tslint:enable: */
|
|
101
|
+
return _this.mockService.removeInteractions().then(function () {
|
|
102
|
+
throw new verificationError_1.default("Pact verification failed - expected interactions did not match actual.");
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Writes the Pact and clears any interactions left behind and shutdown the
|
|
108
|
+
* mock server
|
|
109
|
+
* @memberof PactProvider
|
|
110
|
+
* @instance
|
|
111
|
+
* @returns {Promise}
|
|
112
|
+
*/
|
|
113
|
+
Pact.prototype.finalize = function () {
|
|
114
|
+
var _this = this;
|
|
115
|
+
if (this.finalized) {
|
|
116
|
+
logger_1.default.warn("finalize() has already been called, this is probably a logic error in your test setup. " +
|
|
117
|
+
"In the future this will be an error.");
|
|
118
|
+
}
|
|
119
|
+
this.finalized = true;
|
|
120
|
+
return this.mockService
|
|
121
|
+
.writePact()
|
|
122
|
+
.then(function () { return logger_1.default.info("Pact File Written"); }, function (e) {
|
|
123
|
+
return Promise.reject(e);
|
|
124
|
+
})
|
|
125
|
+
.then(function () {
|
|
126
|
+
return new Promise(function (resolve, reject) {
|
|
127
|
+
return _this.server.delete().then(function () { return resolve(); }, function (e) { return reject(e); });
|
|
128
|
+
});
|
|
129
|
+
})
|
|
130
|
+
.catch(function (e) {
|
|
131
|
+
return new Promise(function (resolve, reject) {
|
|
132
|
+
return _this.server.delete().finally(function () { return reject(e); });
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Writes the pact file out to file. Should be called when all tests have been performed for a
|
|
138
|
+
* given Consumer <-> Provider pair. It will write out the Pact to the
|
|
139
|
+
* configured file.
|
|
140
|
+
* @memberof PactProvider
|
|
141
|
+
* @instance
|
|
142
|
+
* @returns {Promise}
|
|
143
|
+
*/
|
|
144
|
+
Pact.prototype.writePact = function () {
|
|
145
|
+
return this.mockService.writePact();
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Clear up any interactions in the Provider Mock Server.
|
|
149
|
+
* @memberof PactProvider
|
|
150
|
+
* @instance
|
|
151
|
+
* @returns {Promise}
|
|
152
|
+
*/
|
|
153
|
+
Pact.prototype.removeInteractions = function () {
|
|
154
|
+
return this.mockService.removeInteractions();
|
|
155
|
+
};
|
|
156
|
+
Pact.prototype.checkPort = function () {
|
|
157
|
+
if (this.server && this.server.options.port) {
|
|
158
|
+
return net_1.isPortAvailable(this.server.options.port, this.opts.host);
|
|
159
|
+
}
|
|
160
|
+
return Promise.resolve();
|
|
161
|
+
};
|
|
162
|
+
Pact.prototype.setupMockService = function () {
|
|
163
|
+
logger_1.default.info("Setting up Pact with Consumer \"" + this.opts.consumer + "\" and Provider \"" + this.opts.provider + "\"\n using mock service on Port: \"" + this.opts.port + "\"");
|
|
164
|
+
this.mockService = new mockService_1.MockService(undefined, undefined, this.opts.port, this.opts.host, this.opts.ssl, this.opts.pactfileWriteMode);
|
|
165
|
+
};
|
|
166
|
+
Pact.prototype.startServer = function () {
|
|
167
|
+
var _this = this;
|
|
168
|
+
return new Promise(function (resolve, reject) {
|
|
169
|
+
return _this.server.start().then(function () {
|
|
170
|
+
_this.opts.port = _this.server.options.port || _this.opts.port;
|
|
171
|
+
resolve(_this.opts);
|
|
172
|
+
}, function (e) { return reject(e); });
|
|
173
|
+
});
|
|
174
|
+
};
|
|
175
|
+
Pact.prototype.createServer = function (config) {
|
|
176
|
+
this.server = pact_node_1.default.createServer({
|
|
177
|
+
consumer: this.opts.consumer,
|
|
178
|
+
cors: this.opts.cors,
|
|
179
|
+
dir: this.opts.dir,
|
|
180
|
+
host: this.opts.host,
|
|
181
|
+
log: this.opts.log,
|
|
182
|
+
pactFileWriteMode: this.opts.pactfileWriteMode,
|
|
183
|
+
port: config.port,
|
|
184
|
+
provider: this.opts.provider,
|
|
185
|
+
spec: this.opts.spec,
|
|
186
|
+
ssl: this.opts.ssl,
|
|
187
|
+
sslcert: this.opts.sslcert,
|
|
188
|
+
sslkey: this.opts.sslkey,
|
|
189
|
+
});
|
|
190
|
+
};
|
|
191
|
+
Pact.defaults = {
|
|
192
|
+
consumer: "",
|
|
193
|
+
cors: false,
|
|
194
|
+
dir: path.resolve(process.cwd(), "pacts"),
|
|
195
|
+
host: "127.0.0.1",
|
|
196
|
+
log: path.resolve(process.cwd(), "logs", "pact.log"),
|
|
197
|
+
logLevel: "info",
|
|
198
|
+
pactfileWriteMode: "overwrite",
|
|
199
|
+
provider: "",
|
|
200
|
+
spec: 2,
|
|
201
|
+
ssl: false,
|
|
202
|
+
};
|
|
203
|
+
return Pact;
|
|
204
|
+
}());
|
|
205
|
+
exports.Pact = Pact;
|
|
206
|
+
//# sourceMappingURL=httpPact.js.map
|
package/httpPact.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpPact.js","sourceRoot":"","sources":["../src/httpPact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/httpPact.spec.js
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (_) try {
|
|
17
|
+
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;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var _this = this;
|
|
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(_this, 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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpPact.spec.js","sourceRoot":"","sources":["../src/httpPact.spec.ts"],"names":[],"mappings":"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"}
|
package/messageConsumerPact.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Message
|
|
3
3
|
*/
|
|
4
|
-
import { Metadata, Message,
|
|
4
|
+
import { Metadata, Message, MessageConsumer } from "./dsl/message";
|
|
5
5
|
import { MessageConsumerOptions } from "./dsl/options";
|
|
6
6
|
/**
|
|
7
7
|
* A Message Consumer is analagous to a Provider in the HTTP Interaction model.
|
|
@@ -63,5 +63,5 @@ export declare class MessageConsumerPact {
|
|
|
63
63
|
validate(): Promise<any>;
|
|
64
64
|
private getServiceFactory;
|
|
65
65
|
}
|
|
66
|
-
export declare function synchronousBodyHandler(handler: (body: any) => any):
|
|
67
|
-
export declare function asynchronousBodyHandler(handler: (body: any) => Promise<any>):
|
|
66
|
+
export declare function synchronousBodyHandler(handler: (body: any) => any): MessageConsumer;
|
|
67
|
+
export declare function asynchronousBodyHandler(handler: (body: any) => Promise<any>): MessageConsumer;
|
package/messageConsumerPact.js
CHANGED
|
@@ -8,6 +8,7 @@ var matchers_1 = require("./dsl/matchers");
|
|
|
8
8
|
var utils_1 = require("./common/utils");
|
|
9
9
|
var logger_1 = require("./common/logger");
|
|
10
10
|
var pact_node_1 = require("@pact-foundation/pact-node");
|
|
11
|
+
var configurationError_1 = require("./errors/configurationError");
|
|
11
12
|
/**
|
|
12
13
|
* A Message Consumer is analagous to a Provider in the HTTP Interaction model.
|
|
13
14
|
* It is the receiver of an interaction, and needs to be able to handle whatever
|
|
@@ -49,7 +50,7 @@ var MessageConsumerPact = /** @class */ (function () {
|
|
|
49
50
|
*/
|
|
50
51
|
MessageConsumerPact.prototype.expectsToReceive = function (description) {
|
|
51
52
|
if (lodash_1.isEmpty(description)) {
|
|
52
|
-
throw new
|
|
53
|
+
throw new configurationError_1.default("You must provide a description for the Message.");
|
|
53
54
|
}
|
|
54
55
|
this.state.description = description;
|
|
55
56
|
return this;
|
|
@@ -64,7 +65,7 @@ var MessageConsumerPact = /** @class */ (function () {
|
|
|
64
65
|
*/
|
|
65
66
|
MessageConsumerPact.prototype.withContent = function (content) {
|
|
66
67
|
if (lodash_1.isEmpty(content)) {
|
|
67
|
-
throw new
|
|
68
|
+
throw new configurationError_1.default("You must provide a valid JSON document or primitive for the Message.");
|
|
68
69
|
}
|
|
69
70
|
this.state.contents = content;
|
|
70
71
|
return this;
|
|
@@ -77,7 +78,7 @@ var MessageConsumerPact = /** @class */ (function () {
|
|
|
77
78
|
*/
|
|
78
79
|
MessageConsumerPact.prototype.withMetadata = function (metadata) {
|
|
79
80
|
if (lodash_1.isEmpty(metadata)) {
|
|
80
|
-
throw new
|
|
81
|
+
throw new configurationError_1.default("You must provide valid metadata for the Message, or none at all");
|
|
81
82
|
}
|
|
82
83
|
this.state.metadata = metadata;
|
|
83
84
|
return this;
|
|
@@ -132,7 +133,7 @@ exports.MessageConsumerPact = MessageConsumerPact;
|
|
|
132
133
|
var isMessage = function (x) {
|
|
133
134
|
return x.contents !== undefined;
|
|
134
135
|
};
|
|
135
|
-
// TODO: create basic adapters for API handlers
|
|
136
|
+
// TODO: create more basic adapters for API handlers
|
|
136
137
|
// bodyHandler takes a synchronous function and returns
|
|
137
138
|
// a wrapped function that accepts a Message and returns a Promise
|
|
138
139
|
function synchronousBodyHandler(handler) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageConsumerPact.js","sourceRoot":"","sources":["../src/messageConsumerPact.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,
|
|
1
|
+
{"version":3,"file":"messageConsumerPact.js","sourceRoot":"","sources":["../src/messageConsumerPact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|