@pact-foundation/pact 10.0.0-beta.60 → 10.0.0-beta.61
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 +17 -0
- package/MIGRATION.md +24 -1
- package/README.md +174 -1374
- package/package.json +24 -36
- package/src/common/net.d.ts +1 -0
- package/src/common/net.js +11 -1
- package/src/common/net.js.map +1 -1
- package/src/common/request.js +1 -0
- package/src/common/request.js.map +1 -1
- package/src/common/spec.d.ts +2 -0
- package/src/common/spec.js +22 -0
- package/src/common/spec.js.map +1 -0
- package/src/dsl/apolloGraphql.spec.js +24 -0
- package/src/dsl/apolloGraphql.spec.js.map +1 -1
- package/src/dsl/graphql.d.ts +2 -2
- package/src/dsl/graphql.js +1 -0
- package/src/dsl/graphql.js.map +1 -1
- package/src/dsl/graphql.spec.js +77 -2
- package/src/dsl/graphql.spec.js.map +1 -1
- package/src/dsl/interaction.d.ts +13 -7
- package/src/dsl/interaction.js +30 -1
- package/src/dsl/interaction.js.map +1 -1
- package/src/dsl/interaction.spec.js +21 -31
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +27 -32
- package/src/dsl/matchers.js +24 -23
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +101 -96
- package/src/dsl/matchers.spec.js.map +1 -1
- package/src/dsl/message.d.ts +19 -13
- package/src/dsl/mockService.d.ts +1 -46
- package/src/dsl/mockService.js +0 -72
- package/src/dsl/mockService.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +1 -1
- package/src/dsl/verifier/verifier.spec.js.map +1 -1
- package/src/httpPact/ffi.d.ts +15 -0
- package/src/httpPact/ffi.js +91 -0
- package/src/httpPact/ffi.js.map +1 -0
- package/src/{dsl/mockService.spec.d.ts → 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/src/httpPact/index.d.ts +10 -10
- package/src/httpPact/index.js +141 -80
- package/src/httpPact/index.js.map +1 -1
- package/src/httpPact/index.spec.js +117 -220
- package/src/httpPact/index.spec.js.map +1 -1
- package/src/httpPact/tracing.js +4 -4
- package/src/httpPact/tracing.js.map +1 -1
- package/src/index.d.ts +1 -7
- package/src/index.js +3 -8
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +34 -17
- package/src/messageConsumerPact.js +85 -66
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +0 -46
- package/src/messageConsumerPact.spec.js.map +1 -1
- package/src/messageProviderPact.js +1 -1
- package/src/messageProviderPact.js.map +1 -1
- package/src/messageProviderPact.spec.js +17 -2
- package/src/messageProviderPact.spec.js.map +1 -1
- 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 +1 -6
- package/src/v3/index.js +1 -6
- package/src/v3/index.js.map +1 -1
- package/src/v3/matchers.d.ts +1 -0
- package/src/v3/matchers.js +7 -1
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/pact.d.ts +4 -70
- package/src/v3/pact.js +68 -133
- package/src/v3/pact.js.map +1 -1
- package/src/v3/types.d.ts +81 -0
- package/src/v3/types.js +11 -0
- package/src/v3/types.js.map +1 -0
- package/src/v3/xml/xmlElement.spec.js +31 -48
- package/src/v3/xml/xmlElement.spec.js.map +1 -1
- package/src/dsl/mockService.spec.js +0 -124
- package/src/dsl/mockService.spec.js.map +0 -1
- package/src/dsl/publisher.d.ts +0 -10
- package/src/dsl/publisher.js +0 -22
- package/src/dsl/publisher.js.map +0 -1
- package/src/dsl/publisher.spec.d.ts +0 -1
- package/src/dsl/publisher.spec.js +0 -47
- package/src/dsl/publisher.spec.js.map +0 -1
- package/src/v3/verifier.d.ts +0 -12
- package/src/v3/verifier.js +0 -23
- package/src/v3/verifier.js.map +0 -1
- package/v3/index.d.ts +0 -1
- package/v3/index.js +0 -20
- package/v3/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../src/dsl/interaction.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,iCAA6C;AAC7C,6CAA4D;AAC5D,uCAA6D;AAC7D,oFAA8D;
|
|
1
|
+
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../src/dsl/interaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// @ts-nocheck
|
|
6
7
|
var chai_1 = __importDefault(require("chai"));
|
|
7
8
|
var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
8
9
|
var request_1 = require("../common/request");
|
|
@@ -15,20 +16,19 @@ describe('Interaction', function () {
|
|
|
15
16
|
it('creates Interaction with provider state', function () {
|
|
16
17
|
var actual = new interaction_1.Interaction()
|
|
17
18
|
.uponReceiving('r')
|
|
18
|
-
.given('provider state')
|
|
19
|
-
|
|
20
|
-
expect(actual).to.eql({
|
|
19
|
+
.given('provider state');
|
|
20
|
+
expect(actual.state).to.eql({
|
|
21
21
|
description: 'r',
|
|
22
22
|
providerState: 'provider state',
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
25
|
describe('without provider state', function () {
|
|
26
26
|
it('creates Interaction when blank', function () {
|
|
27
|
-
var actual = new interaction_1.Interaction().uponReceiving('r').given('').
|
|
27
|
+
var actual = new interaction_1.Interaction().uponReceiving('r').given('').state;
|
|
28
28
|
expect(actual).to.eql({ description: 'r' });
|
|
29
29
|
});
|
|
30
30
|
it('creates Interaction when nothing is passed', function () {
|
|
31
|
-
var actual = new interaction_1.Interaction().uponReceiving('r').
|
|
31
|
+
var actual = new interaction_1.Interaction().uponReceiving('r').state;
|
|
32
32
|
expect(actual).to.eql({ description: 'r' });
|
|
33
33
|
});
|
|
34
34
|
});
|
|
@@ -40,7 +40,7 @@ describe('Interaction', function () {
|
|
|
40
40
|
});
|
|
41
41
|
it('has a state with description', function () {
|
|
42
42
|
interaction.uponReceiving('an interaction description');
|
|
43
|
-
expect(interaction.
|
|
43
|
+
expect(interaction.state).to.eql({
|
|
44
44
|
description: 'an interaction description',
|
|
45
45
|
});
|
|
46
46
|
});
|
|
@@ -69,8 +69,7 @@ describe('Interaction', function () {
|
|
|
69
69
|
describe('with only mandatory params', function () {
|
|
70
70
|
var actual = new interaction_1.Interaction()
|
|
71
71
|
.uponReceiving('a request')
|
|
72
|
-
.withRequest({ method: request_1.HTTPMethods.GET, path: '/search' })
|
|
73
|
-
.json();
|
|
72
|
+
.withRequest({ method: request_1.HTTPMethods.GET, path: '/search' }).state;
|
|
74
73
|
it('has a state containing only the given keys', function () {
|
|
75
74
|
expect(actual).to.have.property('request');
|
|
76
75
|
expect(actual.request).to.have.keys('method', 'path');
|
|
@@ -80,16 +79,13 @@ describe('Interaction', function () {
|
|
|
80
79
|
});
|
|
81
80
|
});
|
|
82
81
|
describe('with all other parameters', function () {
|
|
83
|
-
var actual = new interaction_1.Interaction()
|
|
84
|
-
.uponReceiving('request')
|
|
85
|
-
.withRequest({
|
|
82
|
+
var actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
86
83
|
body: { id: 1, name: 'Test', due: 'tomorrow' },
|
|
87
84
|
headers: { 'Content-Type': 'application/json' },
|
|
88
85
|
method: request_1.HTTPMethods.GET,
|
|
89
86
|
path: '/search',
|
|
90
87
|
query: 'q=test',
|
|
91
|
-
})
|
|
92
|
-
.json();
|
|
88
|
+
}).state;
|
|
93
89
|
it('has a full state all available keys', function () {
|
|
94
90
|
expect(actual).to.have.property('request');
|
|
95
91
|
expect(actual.request).to.have.keys('method', 'path', 'query', 'headers', 'body');
|
|
@@ -108,21 +104,21 @@ describe('Interaction', function () {
|
|
|
108
104
|
generate: 'limit=50&status=finished&order=desc',
|
|
109
105
|
matcher: '^limit=[0-9]+&status=(finished)&order=(desc|asc)$',
|
|
110
106
|
});
|
|
111
|
-
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).
|
|
107
|
+
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
112
108
|
.request).to.have.any.keys('query');
|
|
113
109
|
});
|
|
114
110
|
it('is passed with matcher as the value', function () {
|
|
115
111
|
request.query = {
|
|
116
112
|
'id[]': (0, matchers_1.eachLike)('1'),
|
|
117
113
|
};
|
|
118
|
-
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).
|
|
114
|
+
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
119
115
|
.request).to.have.any.keys('query');
|
|
120
116
|
});
|
|
121
117
|
it('is passed with object', function () {
|
|
122
118
|
request.query = {
|
|
123
119
|
id: '1',
|
|
124
120
|
};
|
|
125
|
-
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).
|
|
121
|
+
expect(new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
126
122
|
.request).to.have.any.keys('query');
|
|
127
123
|
});
|
|
128
124
|
it('is passed with array', function () {
|
|
@@ -130,31 +126,25 @@ describe('Interaction', function () {
|
|
|
130
126
|
request.query = {
|
|
131
127
|
id: ['1', '2'],
|
|
132
128
|
};
|
|
133
|
-
expect((_a = new interaction_1.Interaction().uponReceiving('request').withRequest(request).
|
|
129
|
+
expect((_a = new interaction_1.Interaction().uponReceiving('request').withRequest(request).state
|
|
134
130
|
.request) === null || _a === void 0 ? void 0 : _a.query).to.deep.eq({ id: ['1', '2'] });
|
|
135
131
|
});
|
|
136
132
|
});
|
|
137
133
|
describe('request body', function () {
|
|
138
134
|
it('is included when an empty string is specified', function () {
|
|
139
|
-
var actual = new interaction_1.Interaction()
|
|
140
|
-
.uponReceiving('request')
|
|
141
|
-
.withRequest({
|
|
135
|
+
var actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
142
136
|
body: '',
|
|
143
137
|
method: request_1.HTTPMethods.GET,
|
|
144
138
|
path: '/path',
|
|
145
|
-
})
|
|
146
|
-
.json();
|
|
139
|
+
}).state;
|
|
147
140
|
expect(actual.request).to.have.any.keys('body');
|
|
148
141
|
});
|
|
149
142
|
it('is not included when explicitly set to undefined', function () {
|
|
150
|
-
var actual = new interaction_1.Interaction()
|
|
151
|
-
.uponReceiving('request')
|
|
152
|
-
.withRequest({
|
|
143
|
+
var actual = new interaction_1.Interaction().uponReceiving('request').withRequest({
|
|
153
144
|
body: undefined,
|
|
154
145
|
method: request_1.HTTPMethods.GET,
|
|
155
146
|
path: '/path',
|
|
156
|
-
})
|
|
157
|
-
.json();
|
|
147
|
+
}).state;
|
|
158
148
|
expect(actual.request).not.to.have.any.keys('body');
|
|
159
149
|
});
|
|
160
150
|
});
|
|
@@ -175,7 +165,7 @@ describe('Interaction', function () {
|
|
|
175
165
|
beforeEach(function () {
|
|
176
166
|
interaction.uponReceiving('request');
|
|
177
167
|
interaction.willRespondWith({ status: 200 });
|
|
178
|
-
actual = interaction.
|
|
168
|
+
actual = interaction.state;
|
|
179
169
|
});
|
|
180
170
|
it('has a state compacted with only present keys', function () {
|
|
181
171
|
expect(actual).to.have.property('response');
|
|
@@ -194,7 +184,7 @@ describe('Interaction', function () {
|
|
|
194
184
|
headers: { 'Content-Type': 'application/json' },
|
|
195
185
|
status: 404,
|
|
196
186
|
});
|
|
197
|
-
actual = interaction.
|
|
187
|
+
actual = interaction.state;
|
|
198
188
|
});
|
|
199
189
|
it('has a full state all available keys', function () {
|
|
200
190
|
expect(actual).to.have.property('response');
|
|
@@ -207,7 +197,7 @@ describe('Interaction', function () {
|
|
|
207
197
|
body: '',
|
|
208
198
|
status: 204,
|
|
209
199
|
});
|
|
210
|
-
var actual = interaction.
|
|
200
|
+
var actual = interaction.state;
|
|
211
201
|
expect(actual.response).to.have.any.keys('body');
|
|
212
202
|
});
|
|
213
203
|
it('is not included when explicitly set to undefined', function () {
|
|
@@ -215,7 +205,7 @@ describe('Interaction', function () {
|
|
|
215
205
|
body: undefined,
|
|
216
206
|
status: 204,
|
|
217
207
|
});
|
|
218
|
-
var actual = interaction.
|
|
208
|
+
var actual = interaction.state;
|
|
219
209
|
expect(actual.response).not.to.have.any.keys('body');
|
|
220
210
|
});
|
|
221
211
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.spec.js","sourceRoot":"","sources":["../../../src/dsl/interaction.spec.ts"],"names":[],"mappings":";;;;;AAAA,8CAAwB;AACxB,sEAA8C;AAC9C,6CAAgD;AAChD,6CAA8D;AAC9D,uCAA4C;AAE5C,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,aAAa,EAAE;IACtB,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,CAAC,yCAAyC,EAAE;YAC5C,IAAM,MAAM,GAAG,IAAI,yBAAW,EAAE;iBAC7B,aAAa,CAAC,GAAG,CAAC;iBAClB,KAAK,CAAC,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"interaction.spec.js","sourceRoot":"","sources":["../../../src/dsl/interaction.spec.ts"],"names":[],"mappings":"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"}
|
package/src/dsl/matchers.d.ts
CHANGED
|
@@ -14,6 +14,25 @@ export declare const UUID_V4_FORMAT = "^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12
|
|
|
14
14
|
export declare const IPV4_FORMAT = "^(\\d{1,3}\\.)+\\d{1,3}$";
|
|
15
15
|
export declare const IPV6_FORMAT = "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$";
|
|
16
16
|
export declare const HEX_FORMAT = "^[0-9a-fA-F]+$";
|
|
17
|
+
export interface Matcher<T> {
|
|
18
|
+
value?: T;
|
|
19
|
+
'pact:matcher:type': string;
|
|
20
|
+
getValue(): T;
|
|
21
|
+
}
|
|
22
|
+
export interface ArrayMatcher<T> extends Matcher<T> {
|
|
23
|
+
'pact:matcher:type': string;
|
|
24
|
+
min?: number;
|
|
25
|
+
max?: number;
|
|
26
|
+
}
|
|
27
|
+
export declare function isMatcher(x: AnyTemplate): x is Matcher<AnyTemplate>;
|
|
28
|
+
export declare type AnyTemplate = AnyJson | Matcher<AnyTemplate> | ArrayMatcher<AnyTemplate> | TemplateMap | ArrayTemplate;
|
|
29
|
+
export declare type InterfaceToTemplate<O> = {
|
|
30
|
+
[K in keyof O]: AnyTemplate;
|
|
31
|
+
};
|
|
32
|
+
interface TemplateMap {
|
|
33
|
+
[key: string]: AnyTemplate;
|
|
34
|
+
}
|
|
35
|
+
declare type ArrayTemplate = Array<AnyTemplate>;
|
|
17
36
|
/**
|
|
18
37
|
* Validates the given example against the regex.
|
|
19
38
|
*
|
|
@@ -23,18 +42,21 @@ export declare const HEX_FORMAT = "^[0-9a-fA-F]+$";
|
|
|
23
42
|
export declare function validateExample(example: string, matcher: string): boolean;
|
|
24
43
|
/**
|
|
25
44
|
* The eachLike matcher
|
|
26
|
-
* @param {any}
|
|
45
|
+
* @param {any} template
|
|
27
46
|
* @param {Object} opts
|
|
28
47
|
* @param {Number} opts.min
|
|
29
48
|
*/
|
|
30
|
-
export declare function eachLike<T>(
|
|
49
|
+
export declare function eachLike<T>(template: T, opts?: {
|
|
31
50
|
min: number;
|
|
32
|
-
}): ArrayMatcher<T>;
|
|
51
|
+
}): ArrayMatcher<T[]>;
|
|
33
52
|
/**
|
|
34
53
|
* The somethingLike matcher
|
|
35
54
|
* @param {any} value - the value to be somethingLike
|
|
36
55
|
*/
|
|
37
56
|
export declare function somethingLike<T>(value: T): Matcher<T>;
|
|
57
|
+
export interface RegexMatcher<T> extends Matcher<T> {
|
|
58
|
+
regex: string;
|
|
59
|
+
}
|
|
38
60
|
/**
|
|
39
61
|
* The term matcher. Also aliased to 'regex' for discoverability.
|
|
40
62
|
* @param {Object} opts
|
|
@@ -44,7 +66,7 @@ export declare function somethingLike<T>(value: T): Matcher<T>;
|
|
|
44
66
|
export declare function term(opts: {
|
|
45
67
|
generate: string;
|
|
46
68
|
matcher: string;
|
|
47
|
-
}):
|
|
69
|
+
}): RegexMatcher<string>;
|
|
48
70
|
/**
|
|
49
71
|
* Email address matcher.
|
|
50
72
|
* @param {string} address - a email address to use as an example
|
|
@@ -117,32 +139,5 @@ export declare function boolean(value?: boolean): Matcher<boolean>;
|
|
|
117
139
|
export declare function string(value?: string): Matcher<string>;
|
|
118
140
|
export { somethingLike as like };
|
|
119
141
|
export { term as regex };
|
|
120
|
-
export interface Matcher<T> {
|
|
121
|
-
data?: {
|
|
122
|
-
generate: string;
|
|
123
|
-
matcher: {
|
|
124
|
-
json_class: string;
|
|
125
|
-
o: number;
|
|
126
|
-
s: string;
|
|
127
|
-
};
|
|
128
|
-
};
|
|
129
|
-
contents?: T;
|
|
130
|
-
json_class: string;
|
|
131
|
-
getValue(): T;
|
|
132
|
-
}
|
|
133
|
-
export interface ArrayMatcher<T> {
|
|
134
|
-
contents: T;
|
|
135
|
-
json_class: string;
|
|
136
|
-
getValue(): T[];
|
|
137
|
-
min: number;
|
|
138
|
-
}
|
|
139
|
-
export declare function isMatcher(x: AnyTemplate): x is Matcher<AnyTemplate>;
|
|
140
|
-
export declare type AnyTemplate = AnyJson | Matcher<AnyTemplate> | ArrayMatcher<AnyTemplate> | TemplateMap | ArrayTemplate;
|
|
141
|
-
export declare type InterfaceToTemplate<O> = {
|
|
142
|
-
[K in keyof O]: AnyTemplate;
|
|
143
|
-
};
|
|
144
|
-
interface TemplateMap {
|
|
145
|
-
[key: string]: AnyTemplate;
|
|
146
|
-
}
|
|
147
|
-
declare type ArrayTemplate = Array<AnyTemplate>;
|
|
148
142
|
export declare function extractPayload(value: AnyTemplate): AnyJson;
|
|
143
|
+
export declare function matcherValueOrString(obj: unknown): string;
|
package/src/dsl/matchers.js
CHANGED
|
@@ -19,8 +19,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
19
19
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.
|
|
22
|
+
exports.matcherValueOrString = exports.extractPayload = exports.regex = exports.like = exports.string = exports.boolean = exports.integer = exports.decimal = exports.hexadecimal = exports.rfc1123Timestamp = exports.iso8601Time = exports.iso8601Date = exports.iso8601DateTimeWithMillis = exports.iso8601DateTime = exports.ipv6Address = exports.ipv4Address = exports.uuid = exports.email = exports.term = exports.somethingLike = exports.eachLike = exports.validateExample = exports.isMatcher = exports.HEX_FORMAT = exports.IPV6_FORMAT = exports.IPV4_FORMAT = exports.UUID_V4_FORMAT = exports.RFC1123_TIMESTAMP_FORMAT = exports.ISO8601_TIME_FORMAT = exports.ISO8601_DATETIME_WITH_MILLIS_FORMAT = exports.ISO8601_DATETIME_FORMAT = exports.ISO8601_DATE_FORMAT = exports.EMAIL_FORMAT = void 0;
|
|
23
23
|
var lodash_1 = require("lodash");
|
|
24
|
+
var ramda_1 = require("ramda");
|
|
24
25
|
var matcherError_1 = __importDefault(require("../errors/matcherError"));
|
|
25
26
|
// Note: The following regexes are Ruby formatted,
|
|
26
27
|
// so attempting to parse as JS without modification is probably not going to work as intended!
|
|
@@ -35,7 +36,10 @@ exports.UUID_V4_FORMAT = '^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$';
|
|
|
35
36
|
exports.IPV4_FORMAT = '^(\\d{1,3}\\.)+\\d{1,3}$';
|
|
36
37
|
exports.IPV6_FORMAT = '^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$';
|
|
37
38
|
exports.HEX_FORMAT = '^[0-9a-fA-F]+$';
|
|
38
|
-
|
|
39
|
+
function isMatcher(x) {
|
|
40
|
+
return x != null && x.getValue !== undefined;
|
|
41
|
+
}
|
|
42
|
+
exports.isMatcher = isMatcher;
|
|
39
43
|
/**
|
|
40
44
|
* Validates the given example against the regex.
|
|
41
45
|
*
|
|
@@ -49,12 +53,12 @@ function validateExample(example, matcher) {
|
|
|
49
53
|
exports.validateExample = validateExample;
|
|
50
54
|
/**
|
|
51
55
|
* The eachLike matcher
|
|
52
|
-
* @param {any}
|
|
56
|
+
* @param {any} template
|
|
53
57
|
* @param {Object} opts
|
|
54
58
|
* @param {Number} opts.min
|
|
55
59
|
*/
|
|
56
|
-
function eachLike(
|
|
57
|
-
if ((0, lodash_1.isUndefined)(
|
|
60
|
+
function eachLike(template, opts) {
|
|
61
|
+
if ((0, lodash_1.isUndefined)(template)) {
|
|
58
62
|
throw new matcherError_1.default('Error creating a Pact eachLike. Please provide a content argument');
|
|
59
63
|
}
|
|
60
64
|
if (opts && ((0, lodash_1.isNil)(opts.min) || opts.min < 1)) {
|
|
@@ -62,9 +66,9 @@ function eachLike(content, opts) {
|
|
|
62
66
|
}
|
|
63
67
|
var min = !(0, lodash_1.isEmpty)(opts) && opts ? opts.min : 1;
|
|
64
68
|
return {
|
|
65
|
-
|
|
66
|
-
getValue: function () { return
|
|
67
|
-
|
|
69
|
+
value: (0, ramda_1.times)(function () { return template; }, min),
|
|
70
|
+
getValue: function () { return (0, ramda_1.times)(function () { return template; }, min); },
|
|
71
|
+
'pact:matcher:type': 'type',
|
|
68
72
|
min: min,
|
|
69
73
|
};
|
|
70
74
|
}
|
|
@@ -78,9 +82,9 @@ function somethingLike(value) {
|
|
|
78
82
|
throw new matcherError_1.default('Error creating a Pact somethingLike Match. Value cannot be a function or undefined');
|
|
79
83
|
}
|
|
80
84
|
return {
|
|
81
|
-
|
|
85
|
+
value: value,
|
|
82
86
|
getValue: function () { return value; },
|
|
83
|
-
|
|
87
|
+
'pact:matcher:type': 'type',
|
|
84
88
|
};
|
|
85
89
|
}
|
|
86
90
|
exports.somethingLike = somethingLike;
|
|
@@ -100,16 +104,10 @@ function term(opts) {
|
|
|
100
104
|
throw new matcherError_1.default("Example '".concat(generate, "' does not match provided regular expression '").concat(matcher, "'"));
|
|
101
105
|
}
|
|
102
106
|
return {
|
|
103
|
-
data: {
|
|
104
|
-
generate: generate,
|
|
105
|
-
matcher: {
|
|
106
|
-
json_class: 'Regexp',
|
|
107
|
-
o: 0,
|
|
108
|
-
s: matcher,
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
107
|
getValue: function () { return generate; },
|
|
112
|
-
|
|
108
|
+
value: generate,
|
|
109
|
+
regex: matcher,
|
|
110
|
+
'pact:matcher:type': 'regex',
|
|
113
111
|
};
|
|
114
112
|
}
|
|
115
113
|
exports.term = term;
|
|
@@ -258,10 +256,6 @@ function string(value) {
|
|
|
258
256
|
return somethingLike(value);
|
|
259
257
|
}
|
|
260
258
|
exports.string = string;
|
|
261
|
-
function isMatcher(x) {
|
|
262
|
-
return x != null && x.getValue !== undefined;
|
|
263
|
-
}
|
|
264
|
-
exports.isMatcher = isMatcher;
|
|
265
259
|
// Recurse the object removing any underlying matching guff, returning
|
|
266
260
|
// the raw example content
|
|
267
261
|
function extractPayload(value) {
|
|
@@ -280,4 +274,11 @@ function extractPayload(value) {
|
|
|
280
274
|
return value;
|
|
281
275
|
}
|
|
282
276
|
exports.extractPayload = extractPayload;
|
|
277
|
+
// Gets a matcher as JSON or the string value if it's not a matcher
|
|
278
|
+
function matcherValueOrString(obj) {
|
|
279
|
+
if (typeof obj === 'string')
|
|
280
|
+
return obj;
|
|
281
|
+
return JSON.stringify(obj);
|
|
282
|
+
}
|
|
283
|
+
exports.matcherValueOrString = matcherValueOrString;
|
|
283
284
|
//# sourceMappingURL=matchers.js.map
|
package/src/dsl/matchers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/dsl/matchers.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,iCAAiE;
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/dsl/matchers.ts"],"names":[],"mappings":"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"}
|