@pact-foundation/pact 16.3.1 → 16.4.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 +7 -0
- package/CONTRIBUTING.md +2 -2
- package/package.json +16 -24
- package/src/common/graphQL/configurationError.js +2 -22
- package/src/common/graphQL/configurationError.js.map +1 -1
- package/src/common/graphQL/graphQL.d.ts +2 -2
- package/src/common/graphQL/graphQL.js +11 -14
- package/src/common/graphQL/graphQL.js.map +1 -1
- package/src/common/graphQL/graphQLQueryError.js +2 -22
- package/src/common/graphQL/graphQLQueryError.js.map +1 -1
- package/src/common/logger.js +9 -9
- package/src/common/logger.js.map +1 -1
- package/src/common/matchingRules.d.ts +1 -1
- package/src/common/matchingRules.js +21 -21
- package/src/common/matchingRules.js.map +1 -1
- package/src/common/net.js +36 -42
- package/src/common/net.js.map +1 -1
- package/src/common/net.spec.js +41 -53
- package/src/common/net.spec.js.map +1 -1
- package/src/common/request.js +33 -82
- package/src/common/request.js.map +1 -1
- package/src/common/request.spec.js +26 -26
- package/src/common/request.spec.js.map +1 -1
- package/src/common/spec.js +3 -4
- package/src/common/spec.js.map +1 -1
- package/src/dsl/apolloGraphql.js +7 -25
- package/src/dsl/apolloGraphql.js.map +1 -1
- package/src/dsl/apolloGraphql.spec.js +21 -18
- package/src/dsl/apolloGraphql.spec.js.map +1 -1
- package/src/dsl/graphql.d.ts +2 -2
- package/src/dsl/graphql.js +29 -48
- package/src/dsl/graphql.js.map +1 -1
- package/src/dsl/graphql.spec.js +81 -66
- package/src/dsl/graphql.spec.js.map +1 -1
- package/src/dsl/interaction.d.ts +2 -2
- package/src/dsl/interaction.js +41 -48
- package/src/dsl/interaction.js.map +1 -1
- package/src/dsl/interaction.spec.js +77 -70
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +1 -1
- package/src/dsl/matchers.js +19 -31
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +199 -208
- package/src/dsl/matchers.spec.js.map +1 -1
- package/src/dsl/message.d.ts +3 -3
- package/src/dsl/options.d.ts +3 -3
- package/src/dsl/verifier/proxy/hooks.d.ts +2 -2
- package/src/dsl/verifier/proxy/hooks.js +42 -112
- package/src/dsl/verifier/proxy/hooks.js.map +1 -1
- package/src/dsl/verifier/proxy/hooks.spec.js +84 -199
- package/src/dsl/verifier/proxy/hooks.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/messages.d.ts +2 -2
- package/src/dsl/verifier/proxy/messages.js +88 -106
- package/src/dsl/verifier/proxy/messages.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.d.ts +1 -1
- package/src/dsl/verifier/proxy/parseBody.js +2 -2
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.spec.js +31 -76
- package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.d.ts +2 -2
- package/src/dsl/verifier/proxy/proxy.js +22 -26
- package/src/dsl/verifier/proxy/proxy.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.spec.js +14 -14
- package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.d.ts +3 -3
- package/src/dsl/verifier/proxy/proxyRequest.js +7 -7
- package/src/dsl/verifier/proxy/proxyRequest.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.spec.js +49 -64
- package/src/dsl/verifier/proxy/proxyRequest.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +3 -3
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js +14 -18
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +76 -159
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.d.ts +2 -2
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +23 -72
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +37 -85
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/tracer.d.ts +1 -1
- package/src/dsl/verifier/proxy/tracer.js +42 -35
- package/src/dsl/verifier/proxy/tracer.js.map +1 -1
- package/src/dsl/verifier/proxy/types.d.ts +5 -5
- package/src/dsl/verifier/types.d.ts +3 -3
- package/src/dsl/verifier/verifier.d.ts +1 -1
- package/src/dsl/verifier/verifier.js +49 -56
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +76 -93
- package/src/dsl/verifier/verifier.spec.js.map +1 -1
- package/src/errors/configurationError.js +2 -22
- package/src/errors/configurationError.js.map +1 -1
- package/src/errors/graphQLQueryError.js +2 -22
- package/src/errors/graphQLQueryError.js.map +1 -1
- package/src/errors/matcherError.js +2 -22
- package/src/errors/matcherError.js.map +1 -1
- package/src/errors/verificationError.js +2 -22
- package/src/errors/verificationError.js.map +1 -1
- package/src/httpPact/ffi.d.ts +2 -2
- package/src/httpPact/ffi.js +28 -29
- package/src/httpPact/ffi.js.map +1 -1
- package/src/httpPact/ffi.spec.js +30 -31
- package/src/httpPact/ffi.spec.js.map +1 -1
- package/src/httpPact/index.d.ts +3 -3
- package/src/httpPact/index.js +92 -149
- package/src/httpPact/index.js.map +1 -1
- package/src/httpPact/index.spec.js +75 -125
- package/src/httpPact/index.spec.js.map +1 -1
- package/src/httpPact/tracing.js +20 -28
- package/src/httpPact/tracing.js.map +1 -1
- package/src/index.js +1 -1
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +3 -3
- package/src/messageConsumerPact.js +50 -51
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +50 -49
- package/src/messageConsumerPact.spec.js.map +1 -1
- package/src/messageProviderPact.d.ts +3 -3
- package/src/messageProviderPact.js +68 -85
- package/src/messageProviderPact.js.map +1 -1
- package/src/messageProviderPact.spec.js +75 -66
- package/src/messageProviderPact.spec.js.map +1 -1
- package/src/pact.integration.spec.js +243 -313
- package/src/pact.integration.spec.js.map +1 -1
- package/src/v3/display.d.ts +1 -1
- package/src/v3/display.js +44 -58
- package/src/v3/display.js.map +1 -1
- package/src/v3/ffi.js +15 -15
- package/src/v3/ffi.js.map +1 -1
- package/src/v3/ffi.spec.js +8 -8
- package/src/v3/ffi.spec.js.map +1 -1
- package/src/v3/graphql/graphQL.d.ts +4 -4
- package/src/v3/graphql/graphQL.js +50 -75
- package/src/v3/graphql/graphQL.js.map +1 -1
- package/src/v3/matchers.d.ts +2 -2
- package/src/v3/matchers.js +112 -147
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/matchers.spec.js +168 -187
- package/src/v3/matchers.spec.js.map +1 -1
- package/src/v3/pact.d.ts +2 -2
- package/src/v3/pact.js +103 -151
- package/src/v3/pact.js.map +1 -1
- package/src/v3/types.d.ts +1 -1
- package/src/v3/xml/xmlBuilder.d.ts +1 -3
- package/src/v3/xml/xmlBuilder.js +7 -9
- package/src/v3/xml/xmlBuilder.js.map +1 -1
- package/src/v3/xml/xmlElement.d.ts +2 -2
- package/src/v3/xml/xmlElement.js +24 -41
- package/src/v3/xml/xmlElement.js.map +1 -1
- package/src/v3/xml/xmlElement.spec.js +23 -25
- package/src/v3/xml/xmlElement.spec.js.map +1 -1
- package/src/v3/xml/xmlNode.js +2 -5
- package/src/v3/xml/xmlNode.js.map +1 -1
- package/src/v3/xml/xmlText.d.ts +1 -1
- package/src/v3/xml/xmlText.js +9 -25
- package/src/v3/xml/xmlText.js.map +1 -1
- package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +4 -4
- package/src/v4/graphql/graphQLInteractionWithRequest.js +21 -17
- package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -1
- package/src/v4/graphql/graphQLRequestBuilder.d.ts +3 -3
- package/src/v4/graphql/graphQLRequestBuilder.js +18 -20
- package/src/v4/graphql/graphQLRequestBuilder.js.map +1 -1
- package/src/v4/graphql/index.d.ts +6 -6
- package/src/v4/graphql/index.js +21 -17
- package/src/v4/graphql/index.js.map +1 -1
- package/src/v4/graphql/types.d.ts +5 -5
- package/src/v4/http/index.d.ts +2 -2
- package/src/v4/http/index.js +48 -93
- package/src/v4/http/index.js.map +1 -1
- package/src/v4/http/interactionWithCompleteRequest.d.ts +4 -7
- package/src/v4/http/interactionWithCompleteRequest.js +6 -10
- package/src/v4/http/interactionWithCompleteRequest.js.map +1 -1
- package/src/v4/http/interactionWithPlugin.d.ts +3 -3
- package/src/v4/http/interactionWithPlugin.js +14 -11
- package/src/v4/http/interactionWithPlugin.js.map +1 -1
- package/src/v4/http/interactionWithPluginRequest.d.ts +2 -2
- package/src/v4/http/interactionWithPluginRequest.js +11 -8
- package/src/v4/http/interactionWithPluginRequest.js.map +1 -1
- package/src/v4/http/interactionWithPluginResponse.d.ts +2 -2
- package/src/v4/http/interactionWithPluginResponse.js +10 -48
- package/src/v4/http/interactionWithPluginResponse.js.map +1 -1
- package/src/v4/http/interactionWithRequest.d.ts +2 -2
- package/src/v4/http/interactionWithRequest.js +11 -8
- package/src/v4/http/interactionWithRequest.js.map +1 -1
- package/src/v4/http/interactionWithResponse.d.ts +2 -2
- package/src/v4/http/interactionWithResponse.js +10 -48
- package/src/v4/http/interactionWithResponse.js.map +1 -1
- package/src/v4/http/requestBuilder.d.ts +3 -3
- package/src/v4/http/requestBuilder.js +32 -34
- package/src/v4/http/requestBuilder.js.map +1 -1
- package/src/v4/http/requestWithPluginBuilder.d.ts +2 -2
- package/src/v4/http/requestWithPluginBuilder.js +26 -46
- package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
- package/src/v4/http/responseBuilder.d.ts +3 -3
- package/src/v4/http/responseBuilder.js +24 -25
- package/src/v4/http/responseBuilder.js.map +1 -1
- package/src/v4/http/responseWithPluginBuilder.d.ts +1 -1
- package/src/v4/http/responseWithPluginBuilder.js +5 -25
- package/src/v4/http/responseWithPluginBuilder.js.map +1 -1
- package/src/v4/http/types.d.ts +3 -2
- package/src/v4/http/unconfiguredInteraction.d.ts +6 -5
- package/src/v4/http/unconfiguredInteraction.js +31 -26
- package/src/v4/http/unconfiguredInteraction.js.map +1 -1
- package/src/v4/index.d.ts +4 -4
- package/src/v4/index.js +31 -35
- package/src/v4/index.js.map +1 -1
- package/src/v4/message/asynchronousMessage.d.ts +7 -6
- package/src/v4/message/asynchronousMessage.js +157 -190
- package/src/v4/message/asynchronousMessage.js.map +1 -1
- package/src/v4/message/index.d.ts +7 -6
- package/src/v4/message/index.js +188 -217
- package/src/v4/message/index.js.map +1 -1
- package/src/v4/message/types.d.ts +5 -3
- package/src/v4/types.d.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageConsumerPact.js","sourceRoot":"","sources":["../../src/messageConsumerPact.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoOH,wDAeC;AAKD,0DAIC;AA1PD,
|
|
1
|
+
{"version":3,"file":"messageConsumerPact.js","sourceRoot":"","sources":["../../src/messageConsumerPact.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,110 +36,111 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
const chai = __importStar(require("chai"));
|
|
40
|
+
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
41
|
+
const sinon_chai_1 = __importDefault(require("sinon-chai"));
|
|
42
|
+
const messageConsumerPact_1 = require("./messageConsumerPact");
|
|
43
43
|
chai.use(sinon_chai_1.default);
|
|
44
44
|
chai.use(chai_as_promised_1.default);
|
|
45
|
-
|
|
46
|
-
describe('MessageConsumer',
|
|
47
|
-
|
|
48
|
-
beforeEach(
|
|
45
|
+
const { expect } = chai;
|
|
46
|
+
describe('MessageConsumer', () => {
|
|
47
|
+
let consumer;
|
|
48
|
+
beforeEach(() => {
|
|
49
49
|
consumer = new messageConsumerPact_1.MessageConsumerPact({
|
|
50
50
|
consumer: 'myconsumer',
|
|
51
51
|
provider: 'myprovider',
|
|
52
52
|
});
|
|
53
53
|
});
|
|
54
|
-
|
|
54
|
+
const testMessage = {
|
|
55
55
|
contents: {
|
|
56
56
|
foo: 'bar',
|
|
57
57
|
},
|
|
58
58
|
};
|
|
59
|
-
describe('#constructor',
|
|
60
|
-
it('creates a Consumer when all mandatory parameters are provided',
|
|
59
|
+
describe('#constructor', () => {
|
|
60
|
+
it('creates a Consumer when all mandatory parameters are provided', () => {
|
|
61
61
|
expect(consumer).to.be.a('object');
|
|
62
62
|
expect(consumer).to.respondTo('verify');
|
|
63
63
|
});
|
|
64
64
|
});
|
|
65
|
-
describe('#dsl',
|
|
66
|
-
describe('when an empty description has been given',
|
|
67
|
-
it('it should throw an error',
|
|
68
|
-
expect(
|
|
65
|
+
describe('#dsl', () => {
|
|
66
|
+
describe('when an empty description has been given', () => {
|
|
67
|
+
it('it should throw an error', () => {
|
|
68
|
+
expect(() => {
|
|
69
69
|
consumer.expectsToReceive('');
|
|
70
70
|
}).to.throw(Error);
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
|
-
describe('when an empty content object has been given',
|
|
74
|
-
it('it should throw an error',
|
|
75
|
-
expect(
|
|
73
|
+
describe('when an empty content object has been given', () => {
|
|
74
|
+
it('it should throw an error', () => {
|
|
75
|
+
expect(() => {
|
|
76
76
|
consumer.withContent({});
|
|
77
77
|
}).to.throw(Error);
|
|
78
78
|
});
|
|
79
79
|
});
|
|
80
|
-
describe('when an empty metadata object has been given',
|
|
81
|
-
it('it should throw an error',
|
|
82
|
-
expect(
|
|
80
|
+
describe('when an empty metadata object has been given', () => {
|
|
81
|
+
it('it should throw an error', () => {
|
|
82
|
+
expect(() => {
|
|
83
83
|
consumer.withMetadata({});
|
|
84
84
|
}).to.throw(Error);
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
87
|
});
|
|
88
|
-
describe('#verify',
|
|
89
|
-
describe('when given a valid handler and message',
|
|
90
|
-
it('verifies the consumer message',
|
|
91
|
-
|
|
88
|
+
describe('#verify', () => {
|
|
89
|
+
describe('when given a valid handler and message', () => {
|
|
90
|
+
it('verifies the consumer message', () => {
|
|
91
|
+
const stubbedConsumer = new messageConsumerPact_1.MessageConsumerPact({
|
|
92
92
|
consumer: 'myconsumer',
|
|
93
93
|
provider: 'myprovider',
|
|
94
94
|
});
|
|
95
|
-
|
|
95
|
+
// biome-ignore lint/suspicious/noExplicitAny: accessing private getServiceFactory method for test stubbing
|
|
96
|
+
const stub = stubbedConsumer;
|
|
96
97
|
// Stub out service factory
|
|
97
|
-
stub.getServiceFactory =
|
|
98
|
-
createMessage:
|
|
99
|
-
});
|
|
98
|
+
stub.getServiceFactory = () => ({
|
|
99
|
+
createMessage: () => Promise.resolve('message created'),
|
|
100
|
+
});
|
|
100
101
|
stubbedConsumer
|
|
101
102
|
.given('some state')
|
|
102
103
|
.expectsToReceive('A message about something')
|
|
103
104
|
.withContent({ foo: 'bar' })
|
|
104
105
|
.withMetadata({ baz: 'bat' });
|
|
105
|
-
return expect(stubbedConsumer.verify(
|
|
106
|
+
return expect(stubbedConsumer.verify(() => Promise.resolve('yay!'))).to
|
|
106
107
|
.eventually.be.fulfilled;
|
|
107
108
|
});
|
|
108
109
|
});
|
|
109
110
|
});
|
|
110
|
-
describe('handler transformers',
|
|
111
|
-
describe('#asynchronousbodyHandler',
|
|
112
|
-
describe('when given a function that succeeds',
|
|
113
|
-
it('returns a Handler object that returns a completed promise',
|
|
114
|
-
|
|
115
|
-
|
|
111
|
+
describe('handler transformers', () => {
|
|
112
|
+
describe('#asynchronousbodyHandler', () => {
|
|
113
|
+
describe('when given a function that succeeds', () => {
|
|
114
|
+
it('returns a Handler object that returns a completed promise', () => {
|
|
115
|
+
const failFn = () => Promise.resolve('yay!');
|
|
116
|
+
const hFn = (0, messageConsumerPact_1.asynchronousBodyHandler)(failFn);
|
|
116
117
|
return expect(hFn(testMessage)).to.eventually.be.fulfilled;
|
|
117
118
|
});
|
|
118
119
|
});
|
|
119
|
-
describe('when given a function that throws an Exception',
|
|
120
|
-
it('returns a Handler object that returns a rejected promise',
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
describe('when given a function that throws an Exception', () => {
|
|
121
|
+
it('returns a Handler object that returns a rejected promise', () => {
|
|
122
|
+
const failFn = () => Promise.reject(new Error('fail'));
|
|
123
|
+
const hFn = (0, messageConsumerPact_1.asynchronousBodyHandler)(failFn);
|
|
123
124
|
return expect(hFn(testMessage)).to.eventually.be.rejected;
|
|
124
125
|
});
|
|
125
126
|
});
|
|
126
127
|
});
|
|
127
|
-
describe('#synchronousbodyHandler',
|
|
128
|
-
describe('when given a function that succeeds',
|
|
129
|
-
it('returns a Handler object that returns a completed promise',
|
|
130
|
-
|
|
128
|
+
describe('#synchronousbodyHandler', () => {
|
|
129
|
+
describe('when given a function that succeeds', () => {
|
|
130
|
+
it('returns a Handler object that returns a completed promise', () => {
|
|
131
|
+
const failFn = () => {
|
|
131
132
|
/* do nothing! */
|
|
132
133
|
};
|
|
133
|
-
|
|
134
|
+
const hFn = (0, messageConsumerPact_1.synchronousBodyHandler)(failFn);
|
|
134
135
|
return expect(hFn(testMessage)).to.eventually.be.fulfilled;
|
|
135
136
|
});
|
|
136
137
|
});
|
|
137
|
-
describe('when given a function that throws an Exception',
|
|
138
|
-
it('returns a Handler object that returns a rejected promise',
|
|
139
|
-
|
|
138
|
+
describe('when given a function that throws an Exception', () => {
|
|
139
|
+
it('returns a Handler object that returns a rejected promise', () => {
|
|
140
|
+
const failFn = () => {
|
|
140
141
|
throw new Error('fail');
|
|
141
142
|
};
|
|
142
|
-
|
|
143
|
+
const hFn = (0, messageConsumerPact_1.synchronousBodyHandler)(failFn);
|
|
143
144
|
return expect(hFn(testMessage)).to.eventually.be.rejected;
|
|
144
145
|
});
|
|
145
146
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageConsumerPact.spec.js","sourceRoot":"","sources":["../../src/messageConsumerPact.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"messageConsumerPact.spec.js","sourceRoot":"","sources":["../../src/messageConsumerPact.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Message
|
|
3
3
|
*/
|
|
4
|
-
import http from 'http';
|
|
5
|
-
import { MessageProvider } from './dsl/message';
|
|
6
|
-
import { PactMessageProviderOptions } from './dsl/options';
|
|
4
|
+
import http from 'node:http';
|
|
5
|
+
import type { MessageProvider } from './dsl/message';
|
|
6
|
+
import type { PactMessageProviderOptions } from './dsl/options';
|
|
7
7
|
export declare const waitForServerReady: (server: http.Server) => Promise<http.Server>;
|
|
8
8
|
export declare const setupProxyServer: (app: (request: http.IncomingMessage, response: http.ServerResponse) => void) => http.Server;
|
|
9
9
|
export declare const providerWithMetadata: (provider: MessageProvider, metadata: Record<string, string>) => MessageProvider;
|
|
@@ -2,17 +2,6 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* @module Message
|
|
4
4
|
*/
|
|
5
|
-
var __assign = (this && this.__assign) || function () {
|
|
6
|
-
__assign = Object.assign || function(t) {
|
|
7
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
-
s = arguments[i];
|
|
9
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
-
t[p] = s[p];
|
|
11
|
-
}
|
|
12
|
-
return t;
|
|
13
|
-
};
|
|
14
|
-
return __assign.apply(this, arguments);
|
|
15
|
-
};
|
|
16
5
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
17
6
|
if (k2 === undefined) k2 = k;
|
|
18
7
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -51,40 +40,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
51
40
|
};
|
|
52
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
42
|
exports.MessageProviderPact = exports.providerWithMetadata = exports.setupProxyServer = exports.waitForServerReady = void 0;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
43
|
+
const lodash_1 = require("lodash");
|
|
44
|
+
const pact_core_1 = __importDefault(require("@pact-foundation/pact-core"));
|
|
45
|
+
const express_1 = __importDefault(require("express"));
|
|
46
|
+
const node_http_1 = __importDefault(require("node:http"));
|
|
47
|
+
const body_parser_1 = __importDefault(require("body-parser"));
|
|
48
|
+
const js_base64_1 = require("js-base64");
|
|
49
|
+
const logger_1 = __importStar(require("./common/logger"));
|
|
61
50
|
// Listens for the server start event
|
|
62
51
|
// Converts event Emitter to a Promise
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
});
|
|
68
|
-
};
|
|
52
|
+
const waitForServerReady = (server) => new Promise((resolve, reject) => {
|
|
53
|
+
server.on('listening', () => resolve(server));
|
|
54
|
+
server.on('error', () => reject());
|
|
55
|
+
});
|
|
69
56
|
exports.waitForServerReady = waitForServerReady;
|
|
70
57
|
// Get the Proxy we'll pass to the CLI for verification
|
|
71
|
-
|
|
58
|
+
const setupProxyServer = (app) => node_http_1.default.createServer(app).listen();
|
|
72
59
|
exports.setupProxyServer = setupProxyServer;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
: { __pactMessageMetadata: metadata, message: message };
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
};
|
|
60
|
+
const hasMetadata = (o) => Boolean(o.__pactMessageMetadata);
|
|
61
|
+
const providerWithMetadata = (provider, metadata) => (descriptor) => Promise.resolve(provider(descriptor)).then((message) => hasMetadata(message)
|
|
62
|
+
? {
|
|
63
|
+
__pactMessageMetadata: {
|
|
64
|
+
...message.__pactMessageMetadata,
|
|
65
|
+
...metadata,
|
|
66
|
+
},
|
|
67
|
+
message,
|
|
68
|
+
}
|
|
69
|
+
: { __pactMessageMetadata: metadata, message });
|
|
88
70
|
exports.providerWithMetadata = providerWithMetadata;
|
|
89
71
|
/**
|
|
90
72
|
* A Message Provider is analogous to Consumer in the HTTP Interaction model.
|
|
@@ -92,8 +74,9 @@ exports.providerWithMetadata = providerWithMetadata;
|
|
|
92
74
|
* It is the initiator of an interaction, and expects something on the other end
|
|
93
75
|
* of the interaction to respond - just in this case, not immediately.
|
|
94
76
|
*/
|
|
95
|
-
|
|
96
|
-
|
|
77
|
+
class MessageProviderPact {
|
|
78
|
+
config;
|
|
79
|
+
constructor(config) {
|
|
97
80
|
this.config = config;
|
|
98
81
|
if (config.logLevel && !(0, lodash_1.isEmpty)(config.logLevel)) {
|
|
99
82
|
pact_core_1.default.logLevel(config.logLevel);
|
|
@@ -106,60 +89,61 @@ var MessageProviderPact = /** @class */ (function () {
|
|
|
106
89
|
/**
|
|
107
90
|
* Verify a Message Provider.
|
|
108
91
|
*/
|
|
109
|
-
|
|
92
|
+
verify() {
|
|
110
93
|
logger_1.default.info('Verifying message');
|
|
111
94
|
// Start the verification CLI proxy server
|
|
112
|
-
|
|
113
|
-
|
|
95
|
+
const app = this.setupProxyApplication();
|
|
96
|
+
const server = (0, exports.setupProxyServer)(app);
|
|
114
97
|
// Run the verification once the proxy server is available
|
|
115
98
|
return (0, exports.waitForServerReady)(server)
|
|
116
99
|
.then(this.runProviderVerification())
|
|
117
|
-
.then(
|
|
100
|
+
.then((result) => {
|
|
118
101
|
server.close();
|
|
119
102
|
return result;
|
|
120
|
-
},
|
|
103
|
+
}, (err) => {
|
|
121
104
|
server.close();
|
|
122
105
|
throw err;
|
|
123
106
|
});
|
|
124
|
-
}
|
|
107
|
+
}
|
|
125
108
|
// Run the Verification CLI process
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
109
|
+
runProviderVerification() {
|
|
110
|
+
return (server) => {
|
|
111
|
+
const opts = {
|
|
112
|
+
...(0, lodash_1.omit)(this.config, 'handlers'),
|
|
113
|
+
...{
|
|
114
|
+
providerBaseUrl: `http://localhost:${server.address().port}`,
|
|
115
|
+
},
|
|
116
|
+
};
|
|
132
117
|
return pact_core_1.default.verifyPacts(opts);
|
|
133
118
|
};
|
|
134
|
-
}
|
|
119
|
+
}
|
|
135
120
|
// Get the API handler for the verification CLI process to invoke on POST /*
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
var message = req.body;
|
|
121
|
+
setupVerificationHandler() {
|
|
122
|
+
return (req, res) => {
|
|
123
|
+
const message = req.body;
|
|
140
124
|
// Invoke the handler, and return the JSON response body
|
|
141
125
|
// wrapped in a Message
|
|
142
|
-
|
|
143
|
-
.then(
|
|
144
|
-
.then(
|
|
145
|
-
.then(
|
|
126
|
+
this.setupStates(message)
|
|
127
|
+
.then(() => this.findHandler(message))
|
|
128
|
+
.then((handler) => handler(message))
|
|
129
|
+
.then((messageFromHandler) => {
|
|
146
130
|
if (hasMetadata(messageFromHandler)) {
|
|
147
|
-
|
|
131
|
+
const metadata = (0, js_base64_1.encode)(JSON.stringify(messageFromHandler.__pactMessageMetadata));
|
|
148
132
|
res.header('Pact-Message-Metadata', metadata);
|
|
149
133
|
res.header('PACT_MESSAGE_METADATA', metadata);
|
|
150
134
|
return res.json(messageFromHandler.message);
|
|
151
135
|
}
|
|
152
136
|
return res.json(messageFromHandler);
|
|
153
137
|
})
|
|
154
|
-
.catch(
|
|
138
|
+
.catch((e) => res.status(500).send(e));
|
|
155
139
|
};
|
|
156
|
-
}
|
|
140
|
+
}
|
|
157
141
|
// Get the Express app that will run on the HTTP Proxy
|
|
158
|
-
|
|
159
|
-
|
|
142
|
+
setupProxyApplication() {
|
|
143
|
+
const app = (0, express_1.default)();
|
|
160
144
|
app.use(body_parser_1.default.json());
|
|
161
145
|
app.use(body_parser_1.default.urlencoded({ extended: true }));
|
|
162
|
-
app.use(
|
|
146
|
+
app.use((_req, res, next) => {
|
|
163
147
|
// TODO: this seems to override the metadata for content-type
|
|
164
148
|
res.header('Content-Type', 'application/json; charset=utf-8');
|
|
165
149
|
next();
|
|
@@ -167,38 +151,37 @@ var MessageProviderPact = /** @class */ (function () {
|
|
|
167
151
|
// Proxy server will respond to Verifier process
|
|
168
152
|
app.all('/{*splat}', this.setupVerificationHandler());
|
|
169
153
|
return app;
|
|
170
|
-
}
|
|
154
|
+
}
|
|
171
155
|
// Lookup the handler based on the description, or get the default handler
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
var promises = [];
|
|
156
|
+
setupStates(message) {
|
|
157
|
+
const promises = [];
|
|
175
158
|
if (message.providerStates) {
|
|
176
|
-
message.providerStates.forEach(
|
|
177
|
-
|
|
178
|
-
?
|
|
159
|
+
message.providerStates.forEach((state) => {
|
|
160
|
+
const handler = this.config.stateHandlers
|
|
161
|
+
? this.config.stateHandlers[state.name]
|
|
179
162
|
: null;
|
|
180
163
|
if (handler) {
|
|
181
164
|
promises.push(handler(state.name, state.params));
|
|
182
165
|
}
|
|
183
166
|
else {
|
|
184
|
-
logger_1.default.warn(
|
|
167
|
+
logger_1.default.warn(`no state handler found for "${state.name}", ignoring`);
|
|
185
168
|
}
|
|
186
169
|
});
|
|
187
170
|
}
|
|
188
171
|
return Promise.all(promises);
|
|
189
|
-
}
|
|
172
|
+
}
|
|
190
173
|
// Lookup the handler based on the description, or get the default handler
|
|
191
|
-
|
|
192
|
-
|
|
174
|
+
findHandler(message) {
|
|
175
|
+
const handler = this.config.messageProviders
|
|
193
176
|
? this.config.messageProviders[message.description || '']
|
|
194
177
|
: undefined;
|
|
195
178
|
if (!handler) {
|
|
196
|
-
logger_1.default.error(
|
|
197
|
-
return Promise.reject(new Error(
|
|
179
|
+
logger_1.default.error(`no handler found for message ${message.description}`);
|
|
180
|
+
return Promise.reject(new Error(`No handler found for message "${message.description}".
|
|
181
|
+
Check your "handlers" configuration`));
|
|
198
182
|
}
|
|
199
183
|
return Promise.resolve(handler);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
}());
|
|
184
|
+
}
|
|
185
|
+
}
|
|
203
186
|
exports.MessageProviderPact = MessageProviderPact;
|
|
204
187
|
//# sourceMappingURL=messageProviderPact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageProviderPact.js","sourceRoot":"","sources":["../../src/messageProviderPact.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"messageProviderPact.js","sourceRoot":"","sources":["../../src/messageProviderPact.ts"],"names":[],"mappings":"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"}
|