@newskit-render/validation 1.5.12 → 1.6.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/dist/cjs/__tests__/mocks.d.ts +132 -0
- package/dist/cjs/__tests__/mocks.js +350 -0
- package/dist/cjs/__tests__/mocks.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -163
- package/dist/cjs/index.js +5 -204
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types.d.ts +16 -2
- package/dist/cjs/types.js +18 -18
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils.d.ts +180 -0
- package/dist/cjs/utils.js +115 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/cjs/validation.d.ts +5 -0
- package/dist/cjs/validation.js +25 -0
- package/dist/cjs/validation.js.map +1 -0
- package/dist/cjs/validations/accountInfo.d.ts +77 -0
- package/dist/cjs/validations/accountInfo.js +90 -0
- package/dist/cjs/validations/accountInfo.js.map +1 -0
- package/dist/cjs/validations/address.d.ts +49 -0
- package/dist/cjs/validations/address.js +108 -0
- package/dist/cjs/validations/address.js.map +1 -0
- package/dist/cjs/validations/cancellation.d.ts +15 -0
- package/dist/cjs/validations/cancellation.js +51 -0
- package/dist/cjs/validations/cancellation.js.map +1 -0
- package/dist/cjs/validations/holidayStop.d.ts +17 -0
- package/dist/cjs/validations/holidayStop.js +41 -0
- package/dist/cjs/validations/holidayStop.js.map +1 -0
- package/dist/cjs/validations/index.d.ts +6 -0
- package/dist/cjs/validations/index.js +23 -0
- package/dist/cjs/validations/index.js.map +1 -0
- package/dist/cjs/validations/payment.d.ts +20 -0
- package/dist/cjs/validations/payment.js +40 -0
- package/dist/cjs/validations/payment.js.map +1 -0
- package/dist/cjs/validations/phoneNumber.d.ts +22 -0
- package/dist/cjs/validations/phoneNumber.js +57 -0
- package/dist/cjs/validations/phoneNumber.js.map +1 -0
- package/dist/esm/__tests__/mocks.d.ts +132 -0
- package/dist/esm/__tests__/mocks.js +347 -0
- package/dist/esm/__tests__/mocks.js.map +1 -0
- package/dist/esm/index.d.ts +2 -163
- package/dist/esm/index.js +2 -190
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +16 -2
- package/dist/esm/types.js +17 -17
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils.d.ts +180 -0
- package/dist/esm/utils.js +87 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/esm/validation.d.ts +5 -0
- package/dist/esm/validation.js +21 -0
- package/dist/esm/validation.js.map +1 -0
- package/dist/esm/validations/accountInfo.d.ts +77 -0
- package/dist/esm/validations/accountInfo.js +60 -0
- package/dist/esm/validations/accountInfo.js.map +1 -0
- package/dist/esm/validations/address.d.ts +49 -0
- package/dist/esm/validations/address.js +80 -0
- package/dist/esm/validations/address.js.map +1 -0
- package/dist/esm/validations/cancellation.d.ts +15 -0
- package/dist/esm/validations/cancellation.js +24 -0
- package/dist/esm/validations/cancellation.js.map +1 -0
- package/dist/esm/validations/holidayStop.d.ts +17 -0
- package/dist/esm/validations/holidayStop.js +15 -0
- package/dist/esm/validations/holidayStop.js.map +1 -0
- package/dist/esm/validations/index.d.ts +6 -0
- package/dist/esm/validations/index.js +7 -0
- package/dist/esm/validations/index.js.map +1 -0
- package/dist/esm/validations/payment.d.ts +20 -0
- package/dist/esm/validations/payment.js +14 -0
- package/dist/esm/validations/payment.js.map +1 -0
- package/dist/esm/validations/phoneNumber.d.ts +22 -0
- package/dist/esm/validations/phoneNumber.js +29 -0
- package/dist/esm/validations/phoneNumber.js.map +1 -0
- package/package.json +1 -1
- package/dist/cjs/__tests__/index.tests.d.ts +0 -1
- package/dist/cjs/__tests__/index.tests.js +0 -666
- package/dist/cjs/__tests__/index.tests.js.map +0 -1
- package/dist/esm/__tests__/index.tests.d.ts +0 -1
- package/dist/esm/__tests__/index.tests.js +0 -638
- package/dist/esm/__tests__/index.tests.js.map +0 -1
|
@@ -1,638 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
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) : adopt(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 (g && (g = 0, op[0] && (_ = 0)), _) 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
|
-
import initializeYupSchema from '../index';
|
|
38
|
-
import * as yup from 'yup';
|
|
39
|
-
import { ValidationFields } from '../types';
|
|
40
|
-
describe('Validation initialization', function () {
|
|
41
|
-
describe('With default schema initialization', function () {
|
|
42
|
-
var defaultYupSchema = initializeYupSchema({});
|
|
43
|
-
describe('First name', function () {
|
|
44
|
-
var firstNameFieldSchema = defaultYupSchema['name'];
|
|
45
|
-
it('Should return first name value if validation is successful ', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
46
|
-
var _a, _b;
|
|
47
|
-
return __generator(this, function (_c) {
|
|
48
|
-
switch (_c.label) {
|
|
49
|
-
case 0:
|
|
50
|
-
_a = expect;
|
|
51
|
-
return [4 /*yield*/, firstNameFieldSchema.validateAt('firstName', {
|
|
52
|
-
firstName: 'TestName',
|
|
53
|
-
})];
|
|
54
|
-
case 1:
|
|
55
|
-
_a.apply(void 0, [_c.sent()]).toEqual('TestName');
|
|
56
|
-
_b = expect;
|
|
57
|
-
return [4 /*yield*/, firstNameFieldSchema.validateAt('lastName', {
|
|
58
|
-
lastName: 'TestLastName',
|
|
59
|
-
})];
|
|
60
|
-
case 2:
|
|
61
|
-
_b.apply(void 0, [_c.sent()]).toEqual('TestLastName');
|
|
62
|
-
return [2 /*return*/];
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}); });
|
|
66
|
-
it('Should throw error if validation fails', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
67
|
-
return __generator(this, function (_a) {
|
|
68
|
-
switch (_a.label) {
|
|
69
|
-
case 0: return [4 /*yield*/, expect(firstNameFieldSchema.validateAt('firstName', { firstName: '' })).rejects.toThrowError('Please enter your First Name')];
|
|
70
|
-
case 1:
|
|
71
|
-
_a.sent();
|
|
72
|
-
return [4 /*yield*/, expect(firstNameFieldSchema.validateAt('lastName', { lastName: '' })).rejects.toThrowError('Please enter your Last Name')];
|
|
73
|
-
case 2:
|
|
74
|
-
_a.sent();
|
|
75
|
-
return [2 /*return*/];
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}); });
|
|
79
|
-
});
|
|
80
|
-
describe('Password validation', function () {
|
|
81
|
-
var passwordFieldSchema = defaultYupSchema['password'];
|
|
82
|
-
it('Should return true if validation pass', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
83
|
-
return __generator(this, function (_a) {
|
|
84
|
-
switch (_a.label) {
|
|
85
|
-
case 0: return [4 /*yield*/, expect(passwordFieldSchema.validateAt('password', { password: null })).rejects.toBeTruthy()];
|
|
86
|
-
case 1:
|
|
87
|
-
_a.sent();
|
|
88
|
-
return [2 /*return*/];
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}); });
|
|
92
|
-
it('Should return password value if validation pass', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
93
|
-
return __generator(this, function (_a) {
|
|
94
|
-
switch (_a.label) {
|
|
95
|
-
case 0: return [4 /*yield*/, expect(passwordFieldSchema.validateAt('password', { password: 'Test' })).resolves.toEqual('Test')];
|
|
96
|
-
case 1:
|
|
97
|
-
_a.sent();
|
|
98
|
-
return [2 /*return*/];
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}); });
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
describe('With overidden schema', function () {
|
|
105
|
-
test('Should validate according to the new validation rules', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
106
|
-
var overridenValidationSchema, overiddenYupSchema, overiddenNameFieldSchema, overiddenPasswordFieldSchema, e_1, e_2, e_3;
|
|
107
|
-
return __generator(this, function (_a) {
|
|
108
|
-
switch (_a.label) {
|
|
109
|
-
case 0:
|
|
110
|
-
overridenValidationSchema = {
|
|
111
|
-
name: yup.object().shape({
|
|
112
|
-
firstName: yup
|
|
113
|
-
.string()
|
|
114
|
-
.min(5)
|
|
115
|
-
.required('First Name is required and must be over 5 characters long'),
|
|
116
|
-
lastName: yup
|
|
117
|
-
.string()
|
|
118
|
-
.min(5)
|
|
119
|
-
.required('Last Name is required and must be over 5 characters long'),
|
|
120
|
-
}),
|
|
121
|
-
password: yup.object().shape({
|
|
122
|
-
password: yup.string().min(3).required(),
|
|
123
|
-
passwordConfirm: yup.ref('password'),
|
|
124
|
-
}),
|
|
125
|
-
};
|
|
126
|
-
overiddenYupSchema = initializeYupSchema({
|
|
127
|
-
overrideYupSchema: overridenValidationSchema,
|
|
128
|
-
});
|
|
129
|
-
overiddenNameFieldSchema = overiddenYupSchema['name'];
|
|
130
|
-
overiddenPasswordFieldSchema = overiddenYupSchema['password'];
|
|
131
|
-
_a.label = 1;
|
|
132
|
-
case 1:
|
|
133
|
-
_a.trys.push([1, 3, , 4]);
|
|
134
|
-
return [4 /*yield*/, overiddenNameFieldSchema.validateAt('firstName', {
|
|
135
|
-
firstName: 'Test',
|
|
136
|
-
})];
|
|
137
|
-
case 2:
|
|
138
|
-
_a.sent();
|
|
139
|
-
return [3 /*break*/, 4];
|
|
140
|
-
case 3:
|
|
141
|
-
e_1 = _a.sent();
|
|
142
|
-
expect(e_1.message).toEqual('firstName must be at least 5 characters');
|
|
143
|
-
return [3 /*break*/, 4];
|
|
144
|
-
case 4:
|
|
145
|
-
_a.trys.push([4, 6, , 7]);
|
|
146
|
-
return [4 /*yield*/, overiddenNameFieldSchema.validateAt('lastName', {
|
|
147
|
-
lastName: 'Test',
|
|
148
|
-
})];
|
|
149
|
-
case 5:
|
|
150
|
-
_a.sent();
|
|
151
|
-
return [3 /*break*/, 7];
|
|
152
|
-
case 6:
|
|
153
|
-
e_2 = _a.sent();
|
|
154
|
-
expect(e_2.message).toEqual('lastName must be at least 5 characters');
|
|
155
|
-
return [3 /*break*/, 7];
|
|
156
|
-
case 7:
|
|
157
|
-
_a.trys.push([7, 9, , 10]);
|
|
158
|
-
return [4 /*yield*/, overiddenPasswordFieldSchema.validateAt('password', {
|
|
159
|
-
password: '12',
|
|
160
|
-
})];
|
|
161
|
-
case 8:
|
|
162
|
-
_a.sent();
|
|
163
|
-
return [3 /*break*/, 10];
|
|
164
|
-
case 9:
|
|
165
|
-
e_3 = _a.sent();
|
|
166
|
-
expect(e_3.message).toEqual('password must be at least 3 characters');
|
|
167
|
-
return [3 /*break*/, 10];
|
|
168
|
-
case 10: return [2 /*return*/];
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}); });
|
|
172
|
-
});
|
|
173
|
-
describe('Address validation', function () {
|
|
174
|
-
var defaultYupSchema = initializeYupSchema({});
|
|
175
|
-
var addressFieldSchema = defaultYupSchema['address'];
|
|
176
|
-
test('valid fields', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
177
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
178
|
-
return __generator(this, function (_j) {
|
|
179
|
-
switch (_j.label) {
|
|
180
|
-
case 0:
|
|
181
|
-
_a = expect;
|
|
182
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('line1', {
|
|
183
|
-
line1: 'News UK',
|
|
184
|
-
})];
|
|
185
|
-
case 1:
|
|
186
|
-
_a.apply(void 0, [_j.sent()]).toEqual('News UK');
|
|
187
|
-
_b = expect;
|
|
188
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('line2', {
|
|
189
|
-
line2: '',
|
|
190
|
-
})];
|
|
191
|
-
case 2:
|
|
192
|
-
_b.apply(void 0, [_j.sent()]).toEqual('');
|
|
193
|
-
_c = expect;
|
|
194
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('line2', {
|
|
195
|
-
line2: '1 London Bridge Street',
|
|
196
|
-
})];
|
|
197
|
-
case 3:
|
|
198
|
-
_c.apply(void 0, [_j.sent()]).toEqual('1 London Bridge Street');
|
|
199
|
-
_d = expect;
|
|
200
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('city', {
|
|
201
|
-
city: 'London',
|
|
202
|
-
})];
|
|
203
|
-
case 4:
|
|
204
|
-
_d.apply(void 0, [_j.sent()]).toEqual('London');
|
|
205
|
-
_e = expect;
|
|
206
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('county', {
|
|
207
|
-
county: '',
|
|
208
|
-
})];
|
|
209
|
-
case 5:
|
|
210
|
-
_e.apply(void 0, [_j.sent()]).toEqual('');
|
|
211
|
-
_f = expect;
|
|
212
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('county', {
|
|
213
|
-
county: 'Surrey',
|
|
214
|
-
})];
|
|
215
|
-
case 6:
|
|
216
|
-
_f.apply(void 0, [_j.sent()]).toEqual('Surrey');
|
|
217
|
-
_g = expect;
|
|
218
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('postcode', {
|
|
219
|
-
postcode: 'SE1 9GF',
|
|
220
|
-
})];
|
|
221
|
-
case 7:
|
|
222
|
-
_g.apply(void 0, [_j.sent()]).toEqual('SE1 9GF');
|
|
223
|
-
_h = expect;
|
|
224
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('country', {
|
|
225
|
-
country: 'GB',
|
|
226
|
-
})];
|
|
227
|
-
case 8:
|
|
228
|
-
_h.apply(void 0, [_j.sent()]).toEqual('GB');
|
|
229
|
-
return [2 /*return*/];
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
}); });
|
|
233
|
-
test('invalid feilds', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
234
|
-
var e_4, e_5, e_6, e_7, e_8, e_9, e_10, e_11, e_12, e_13;
|
|
235
|
-
return __generator(this, function (_a) {
|
|
236
|
-
switch (_a.label) {
|
|
237
|
-
case 0:
|
|
238
|
-
_a.trys.push([0, 2, , 3]);
|
|
239
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('line1', { line1: '' })];
|
|
240
|
-
case 1:
|
|
241
|
-
_a.sent();
|
|
242
|
-
return [3 /*break*/, 3];
|
|
243
|
-
case 2:
|
|
244
|
-
e_4 = _a.sent();
|
|
245
|
-
expect(e_4.message).toEqual('Please enter your first line of your address');
|
|
246
|
-
return [3 /*break*/, 3];
|
|
247
|
-
case 3:
|
|
248
|
-
_a.trys.push([3, 5, , 6]);
|
|
249
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('line1', { line1: '$' })];
|
|
250
|
-
case 4:
|
|
251
|
-
_a.sent();
|
|
252
|
-
return [3 /*break*/, 6];
|
|
253
|
-
case 5:
|
|
254
|
-
e_5 = _a.sent();
|
|
255
|
-
expect(e_5.message).toEqual('Your address can’t contain special characters. Please try again.');
|
|
256
|
-
return [3 /*break*/, 6];
|
|
257
|
-
case 6:
|
|
258
|
-
_a.trys.push([6, 8, , 9]);
|
|
259
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('line2', { line2: '?|' })];
|
|
260
|
-
case 7:
|
|
261
|
-
_a.sent();
|
|
262
|
-
return [3 /*break*/, 9];
|
|
263
|
-
case 8:
|
|
264
|
-
e_6 = _a.sent();
|
|
265
|
-
expect(e_6.message).toEqual('Your address can’t contain special characters. Please try again.');
|
|
266
|
-
return [3 /*break*/, 9];
|
|
267
|
-
case 9:
|
|
268
|
-
_a.trys.push([9, 11, , 12]);
|
|
269
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('city', { city: '' })];
|
|
270
|
-
case 10:
|
|
271
|
-
_a.sent();
|
|
272
|
-
return [3 /*break*/, 12];
|
|
273
|
-
case 11:
|
|
274
|
-
e_7 = _a.sent();
|
|
275
|
-
expect(e_7.message).toEqual('Please enter your Town/City');
|
|
276
|
-
return [3 /*break*/, 12];
|
|
277
|
-
case 12:
|
|
278
|
-
_a.trys.push([12, 14, , 15]);
|
|
279
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('city', { city: '><@' })];
|
|
280
|
-
case 13:
|
|
281
|
-
_a.sent();
|
|
282
|
-
return [3 /*break*/, 15];
|
|
283
|
-
case 14:
|
|
284
|
-
e_8 = _a.sent();
|
|
285
|
-
expect(e_8.message).toEqual('Your town/city can’t contain special characters. Please try again.');
|
|
286
|
-
return [3 /*break*/, 15];
|
|
287
|
-
case 15:
|
|
288
|
-
_a.trys.push([15, 17, , 18]);
|
|
289
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('county', { county: '!$%^' })];
|
|
290
|
-
case 16:
|
|
291
|
-
_a.sent();
|
|
292
|
-
return [3 /*break*/, 18];
|
|
293
|
-
case 17:
|
|
294
|
-
e_9 = _a.sent();
|
|
295
|
-
expect(e_9.message).toEqual('Your county can’t contain special characters. Please try again.');
|
|
296
|
-
return [3 /*break*/, 18];
|
|
297
|
-
case 18:
|
|
298
|
-
_a.trys.push([18, 20, , 21]);
|
|
299
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('county', { county: '' })];
|
|
300
|
-
case 19:
|
|
301
|
-
_a.sent();
|
|
302
|
-
return [3 /*break*/, 21];
|
|
303
|
-
case 20:
|
|
304
|
-
e_10 = _a.sent();
|
|
305
|
-
expect(e_10.message).toEqual('Please enter your Postcode');
|
|
306
|
-
return [3 /*break*/, 21];
|
|
307
|
-
case 21:
|
|
308
|
-
_a.trys.push([21, 23, , 24]);
|
|
309
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('country', { country: '><@' })];
|
|
310
|
-
case 22:
|
|
311
|
-
_a.sent();
|
|
312
|
-
return [3 /*break*/, 24];
|
|
313
|
-
case 23:
|
|
314
|
-
e_11 = _a.sent();
|
|
315
|
-
expect(e_11.message).toEqual('This is not a valid Country code');
|
|
316
|
-
return [3 /*break*/, 24];
|
|
317
|
-
case 24:
|
|
318
|
-
_a.trys.push([24, 26, , 27]);
|
|
319
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('country', { country: 'GBH' })];
|
|
320
|
-
case 25:
|
|
321
|
-
_a.sent();
|
|
322
|
-
return [3 /*break*/, 27];
|
|
323
|
-
case 26:
|
|
324
|
-
e_12 = _a.sent();
|
|
325
|
-
expect(e_12.message).toEqual('This is not a valid Country code');
|
|
326
|
-
return [3 /*break*/, 27];
|
|
327
|
-
case 27:
|
|
328
|
-
_a.trys.push([27, 29, , 30]);
|
|
329
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('country', { country: 'f32' })];
|
|
330
|
-
case 28:
|
|
331
|
-
_a.sent();
|
|
332
|
-
return [3 /*break*/, 30];
|
|
333
|
-
case 29:
|
|
334
|
-
e_13 = _a.sent();
|
|
335
|
-
expect(e_13.message).toEqual('This is not a valid Country code');
|
|
336
|
-
return [3 /*break*/, 30];
|
|
337
|
-
case 30: return [2 /*return*/];
|
|
338
|
-
}
|
|
339
|
-
});
|
|
340
|
-
}); });
|
|
341
|
-
});
|
|
342
|
-
describe('template options', function () {
|
|
343
|
-
test('required message', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
344
|
-
var defaultYupSchema, firstNameFieldSchema, e_14;
|
|
345
|
-
return __generator(this, function (_a) {
|
|
346
|
-
switch (_a.label) {
|
|
347
|
-
case 0:
|
|
348
|
-
defaultYupSchema = initializeYupSchema({
|
|
349
|
-
options: {
|
|
350
|
-
requiredMessage: 'Please enter your ${field}',
|
|
351
|
-
},
|
|
352
|
-
});
|
|
353
|
-
firstNameFieldSchema = defaultYupSchema['name'];
|
|
354
|
-
_a.label = 1;
|
|
355
|
-
case 1:
|
|
356
|
-
_a.trys.push([1, 3, , 4]);
|
|
357
|
-
return [4 /*yield*/, firstNameFieldSchema.validateAt('lastName', { lastName: '' })];
|
|
358
|
-
case 2:
|
|
359
|
-
_a.sent();
|
|
360
|
-
return [3 /*break*/, 4];
|
|
361
|
-
case 3:
|
|
362
|
-
e_14 = _a.sent();
|
|
363
|
-
expect(e_14.message).toEqual('Please enter your Last Name');
|
|
364
|
-
return [3 /*break*/, 4];
|
|
365
|
-
case 4: return [2 /*return*/];
|
|
366
|
-
}
|
|
367
|
-
});
|
|
368
|
-
}); });
|
|
369
|
-
test('wrong format message', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
370
|
-
var defaultYupSchema, firstNameFieldSchema, e_15;
|
|
371
|
-
return __generator(this, function (_a) {
|
|
372
|
-
switch (_a.label) {
|
|
373
|
-
case 0:
|
|
374
|
-
defaultYupSchema = initializeYupSchema({
|
|
375
|
-
options: {
|
|
376
|
-
wrongFormatMessage: 'Your ${field} can’t contain special characters. Please try again.',
|
|
377
|
-
},
|
|
378
|
-
});
|
|
379
|
-
firstNameFieldSchema = defaultYupSchema['name'];
|
|
380
|
-
_a.label = 1;
|
|
381
|
-
case 1:
|
|
382
|
-
_a.trys.push([1, 3, , 4]);
|
|
383
|
-
return [4 /*yield*/, firstNameFieldSchema.validateAt('lastName', { lastName: '!!!' })];
|
|
384
|
-
case 2:
|
|
385
|
-
_a.sent();
|
|
386
|
-
return [3 /*break*/, 4];
|
|
387
|
-
case 3:
|
|
388
|
-
e_15 = _a.sent();
|
|
389
|
-
expect(e_15.message).toEqual('Your last name can’t contain special characters. Please try again.');
|
|
390
|
-
return [3 /*break*/, 4];
|
|
391
|
-
case 4: return [2 /*return*/];
|
|
392
|
-
}
|
|
393
|
-
});
|
|
394
|
-
}); });
|
|
395
|
-
});
|
|
396
|
-
describe('zuoraPaymentMethod', function () {
|
|
397
|
-
var defaultYupSchema = initializeYupSchema({});
|
|
398
|
-
var zuoraPaymentMethodSchema = defaultYupSchema['zuoraPaymentMethod'];
|
|
399
|
-
test('Should return values if validation is successful ', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
400
|
-
var _a, _b, _c, _d, _e, _f;
|
|
401
|
-
return __generator(this, function (_g) {
|
|
402
|
-
switch (_g.label) {
|
|
403
|
-
case 0:
|
|
404
|
-
_a = expect;
|
|
405
|
-
return [4 /*yield*/, zuoraPaymentMethodSchema.validateAt('refId', {
|
|
406
|
-
refId: '8ad0965d7f01ad9d017f036f90871d0f',
|
|
407
|
-
})];
|
|
408
|
-
case 1:
|
|
409
|
-
_a.apply(void 0, [_g.sent()]).toEqual('8ad0965d7f01ad9d017f036f90871d0f');
|
|
410
|
-
_b = expect;
|
|
411
|
-
return [4 /*yield*/, zuoraPaymentMethodSchema.validateAt('responseSignature', {
|
|
412
|
-
responseSignature: 'PsFY5IpGbRUocpxzGgaDdnzEL4BQ2XJqY64Nt+d7Df6Zx2ogixviRVTf8kFS+c4scFpIaI8DnxasQbtTMDHiFPjA3ER1kHB00oAyM9MM+teiWGN2/ZUNFQlJ1mj9f3t20u3Nvo6u1wMmUTTWubiCXteFgSdX+fZXRbFoCZrBDBXb8OEaM1qFvqHIL0iiXlMz4pfibWhmo/5GNVUQqZ04LxcXax3aSjLrcrG87T6mD5K7jeBQy39b1Oggtmg2JaWNF2K7j/fFKewoM6yyiTO7F8Z5YBZT6ub4BlRiz0CnVTOV4SjeI6bNGy+26q3dX4PCZC9D6EeD1oTD8vY4N/hrBA==',
|
|
413
|
-
})];
|
|
414
|
-
case 2:
|
|
415
|
-
_b.apply(void 0, [_g.sent()]).toEqual('PsFY5IpGbRUocpxzGgaDdnzEL4BQ2XJqY64Nt+d7Df6Zx2ogixviRVTf8kFS+c4scFpIaI8DnxasQbtTMDHiFPjA3ER1kHB00oAyM9MM+teiWGN2/ZUNFQlJ1mj9f3t20u3Nvo6u1wMmUTTWubiCXteFgSdX+fZXRbFoCZrBDBXb8OEaM1qFvqHIL0iiXlMz4pfibWhmo/5GNVUQqZ04LxcXax3aSjLrcrG87T6mD5K7jeBQy39b1Oggtmg2JaWNF2K7j/fFKewoM6yyiTO7F8Z5YBZT6ub4BlRiz0CnVTOV4SjeI6bNGy+26q3dX4PCZC9D6EeD1oTD8vY4N/hrBA==');
|
|
416
|
-
_c = expect;
|
|
417
|
-
return [4 /*yield*/, zuoraPaymentMethodSchema.validateAt('token', {
|
|
418
|
-
token: 'VpHHzjy2fQ3yyPB1PEUMN3jcwekvFq4M',
|
|
419
|
-
})];
|
|
420
|
-
case 3:
|
|
421
|
-
_c.apply(void 0, [_g.sent()]).toEqual('VpHHzjy2fQ3yyPB1PEUMN3jcwekvFq4M');
|
|
422
|
-
_d = expect;
|
|
423
|
-
return [4 /*yield*/, zuoraPaymentMethodSchema.validateAt('id', {
|
|
424
|
-
id: '8ad0824e7d584341017d6b7f42e93d3a',
|
|
425
|
-
})];
|
|
426
|
-
case 4:
|
|
427
|
-
_d.apply(void 0, [_g.sent()]).toEqual('8ad0824e7d584341017d6b7f42e93d3a');
|
|
428
|
-
_e = expect;
|
|
429
|
-
return [4 /*yield*/, zuoraPaymentMethodSchema.validateAt('timestamp', {
|
|
430
|
-
timestamp: 1645030003493,
|
|
431
|
-
})];
|
|
432
|
-
case 5:
|
|
433
|
-
_e.apply(void 0, [_g.sent()]).toEqual(1645030003493);
|
|
434
|
-
_f = expect;
|
|
435
|
-
return [4 /*yield*/, zuoraPaymentMethodSchema.validateAt('tenantId', {
|
|
436
|
-
tenantId: 11915,
|
|
437
|
-
})];
|
|
438
|
-
case 6:
|
|
439
|
-
_f.apply(void 0, [_g.sent()]).toEqual(11915);
|
|
440
|
-
return [2 /*return*/];
|
|
441
|
-
}
|
|
442
|
-
});
|
|
443
|
-
}); });
|
|
444
|
-
test('Should throw error if validation fails', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
445
|
-
return __generator(this, function (_a) {
|
|
446
|
-
switch (_a.label) {
|
|
447
|
-
case 0: return [4 /*yield*/, expect(zuoraPaymentMethodSchema.validateAt('refId', { refId: '' })).rejects.toThrowError('refId is a required field')];
|
|
448
|
-
case 1:
|
|
449
|
-
_a.sent();
|
|
450
|
-
return [4 /*yield*/, expect(zuoraPaymentMethodSchema.validateAt('responseSignature', {
|
|
451
|
-
responseSignature: '',
|
|
452
|
-
})).rejects.toThrowError('responseSignature is a required field')];
|
|
453
|
-
case 2:
|
|
454
|
-
_a.sent();
|
|
455
|
-
return [4 /*yield*/, expect(zuoraPaymentMethodSchema.validateAt('token', { token: '' })).rejects.toThrowError('token is a required field')];
|
|
456
|
-
case 3:
|
|
457
|
-
_a.sent();
|
|
458
|
-
return [4 /*yield*/, expect(zuoraPaymentMethodSchema.validateAt('id', { id: '' })).rejects.toThrowError('id is a required field')];
|
|
459
|
-
case 4:
|
|
460
|
-
_a.sent();
|
|
461
|
-
return [4 /*yield*/, expect(zuoraPaymentMethodSchema.validateAt('timestamp', {
|
|
462
|
-
timestamp: 'string',
|
|
463
|
-
})).rejects.toThrowError('timestamp must be a `number` type, but the final value was: `NaN` (cast from the value `"string"`).')];
|
|
464
|
-
case 5:
|
|
465
|
-
_a.sent();
|
|
466
|
-
return [4 /*yield*/, expect(zuoraPaymentMethodSchema.validateAt('tenantId', { tenantId: null })).rejects.toThrowError('tenantId must be a `number` type, but the final value was: `NaN`.')];
|
|
467
|
-
case 6:
|
|
468
|
-
_a.sent();
|
|
469
|
-
return [2 /*return*/];
|
|
470
|
-
}
|
|
471
|
-
});
|
|
472
|
-
}); });
|
|
473
|
-
});
|
|
474
|
-
describe('override required fields', function () {
|
|
475
|
-
var defaultYupSchema = initializeYupSchema({
|
|
476
|
-
options: {
|
|
477
|
-
overrideRequiredFields: [
|
|
478
|
-
ValidationFields.firstName,
|
|
479
|
-
ValidationFields.line1,
|
|
480
|
-
],
|
|
481
|
-
},
|
|
482
|
-
});
|
|
483
|
-
var addressFieldSchema = defaultYupSchema['address'];
|
|
484
|
-
test('line1 is require and adress is not', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
485
|
-
var e_16, _a;
|
|
486
|
-
return __generator(this, function (_b) {
|
|
487
|
-
switch (_b.label) {
|
|
488
|
-
case 0:
|
|
489
|
-
_b.trys.push([0, 2, , 3]);
|
|
490
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('line1', { line1: '' })];
|
|
491
|
-
case 1:
|
|
492
|
-
_b.sent();
|
|
493
|
-
return [3 /*break*/, 3];
|
|
494
|
-
case 2:
|
|
495
|
-
e_16 = _b.sent();
|
|
496
|
-
expect(e_16.message).toEqual('Please enter your first line of your address');
|
|
497
|
-
return [3 /*break*/, 3];
|
|
498
|
-
case 3:
|
|
499
|
-
_a = expect;
|
|
500
|
-
return [4 /*yield*/, addressFieldSchema.validateAt('country', {
|
|
501
|
-
country: undefined,
|
|
502
|
-
})];
|
|
503
|
-
case 4:
|
|
504
|
-
_a.apply(void 0, [_b.sent()]).toEqual(undefined);
|
|
505
|
-
return [2 /*return*/];
|
|
506
|
-
}
|
|
507
|
-
});
|
|
508
|
-
}); });
|
|
509
|
-
var firstNameFieldSchema = defaultYupSchema['name'];
|
|
510
|
-
test('firstName is required', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
511
|
-
var e_17;
|
|
512
|
-
return __generator(this, function (_a) {
|
|
513
|
-
switch (_a.label) {
|
|
514
|
-
case 0:
|
|
515
|
-
expect.assertions(1);
|
|
516
|
-
_a.label = 1;
|
|
517
|
-
case 1:
|
|
518
|
-
_a.trys.push([1, 3, , 4]);
|
|
519
|
-
return [4 /*yield*/, firstNameFieldSchema.validate({
|
|
520
|
-
firstName: undefined,
|
|
521
|
-
})];
|
|
522
|
-
case 2:
|
|
523
|
-
_a.sent();
|
|
524
|
-
return [3 /*break*/, 4];
|
|
525
|
-
case 3:
|
|
526
|
-
e_17 = _a.sent();
|
|
527
|
-
expect(e_17.message).toEqual('Please enter your First Name');
|
|
528
|
-
return [3 /*break*/, 4];
|
|
529
|
-
case 4: return [2 /*return*/];
|
|
530
|
-
}
|
|
531
|
-
});
|
|
532
|
-
}); });
|
|
533
|
-
});
|
|
534
|
-
describe('Cancellation reason', function () {
|
|
535
|
-
var defaultYupSchema = initializeYupSchema({});
|
|
536
|
-
var validation = defaultYupSchema['cancellationReason'];
|
|
537
|
-
it('should throw error for invalid radio input field', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
538
|
-
return __generator(this, function (_a) {
|
|
539
|
-
switch (_a.label) {
|
|
540
|
-
case 0: return [4 /*yield*/, expect(validation.validate({ radioInput: '' })).rejects.toThrowError('Please, select one option')];
|
|
541
|
-
case 1:
|
|
542
|
-
_a.sent();
|
|
543
|
-
return [2 /*return*/];
|
|
544
|
-
}
|
|
545
|
-
});
|
|
546
|
-
}); });
|
|
547
|
-
it('should throw error if other field is empty, but radioInput is other', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
548
|
-
return __generator(this, function (_a) {
|
|
549
|
-
switch (_a.label) {
|
|
550
|
-
case 0: return [4 /*yield*/, expect(validation.validate({ radioInput: 'Other', other: '' })).rejects.toThrowError('This field cannot be empty.')];
|
|
551
|
-
case 1:
|
|
552
|
-
_a.sent();
|
|
553
|
-
return [2 /*return*/];
|
|
554
|
-
}
|
|
555
|
-
});
|
|
556
|
-
}); });
|
|
557
|
-
it('should not throw error if other field is populated, and radioInput is other', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
558
|
-
return __generator(this, function (_a) {
|
|
559
|
-
switch (_a.label) {
|
|
560
|
-
case 0: return [4 /*yield*/, expect(validation.validate({ radioInput: 'Other', other: 'Other' })).resolves.not.toThrowError()];
|
|
561
|
-
case 1:
|
|
562
|
-
_a.sent();
|
|
563
|
-
return [2 /*return*/];
|
|
564
|
-
}
|
|
565
|
-
});
|
|
566
|
-
}); });
|
|
567
|
-
});
|
|
568
|
-
describe('Delivery instructions', function () {
|
|
569
|
-
var defaultYupSchema = initializeYupSchema({});
|
|
570
|
-
var validation = defaultYupSchema['delivery-instructions'];
|
|
571
|
-
it('should throw error for invalid radio input field', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
572
|
-
return __generator(this, function (_a) {
|
|
573
|
-
switch (_a.label) {
|
|
574
|
-
case 0: return [4 /*yield*/, expect(validation.validate({ deliveryInformation: '' })).rejects.toThrowError('Please, select one option')];
|
|
575
|
-
case 1:
|
|
576
|
-
_a.sent();
|
|
577
|
-
return [2 /*return*/];
|
|
578
|
-
}
|
|
579
|
-
});
|
|
580
|
-
}); });
|
|
581
|
-
it('should throw error if other field is empty, but deliveryInformation is "Other (Please state)"', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
582
|
-
return __generator(this, function (_a) {
|
|
583
|
-
switch (_a.label) {
|
|
584
|
-
case 0: return [4 /*yield*/, expect(validation.validate({
|
|
585
|
-
deliveryInformation: 'Other (Please state)',
|
|
586
|
-
other: '',
|
|
587
|
-
})).rejects.toThrowError('Please enter your delivery instructions.')];
|
|
588
|
-
case 1:
|
|
589
|
-
_a.sent();
|
|
590
|
-
return [2 /*return*/];
|
|
591
|
-
}
|
|
592
|
-
});
|
|
593
|
-
}); });
|
|
594
|
-
it('should not throw error if other field populated, and deliveryInformation is other', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
595
|
-
return __generator(this, function (_a) {
|
|
596
|
-
switch (_a.label) {
|
|
597
|
-
case 0: return [4 /*yield*/, expect(validation.validate({
|
|
598
|
-
deliveryInformation: 'Other (Please state)',
|
|
599
|
-
other: 'Other',
|
|
600
|
-
})).resolves.not.toThrowError()];
|
|
601
|
-
case 1:
|
|
602
|
-
_a.sent();
|
|
603
|
-
return [2 /*return*/];
|
|
604
|
-
}
|
|
605
|
-
});
|
|
606
|
-
}); });
|
|
607
|
-
it('should throw error if other field populated, but is more than 70 charaters"', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
608
|
-
return __generator(this, function (_a) {
|
|
609
|
-
switch (_a.label) {
|
|
610
|
-
case 0: return [4 /*yield*/, expect(validation.validate({
|
|
611
|
-
deliveryInformation: 'Other (Please state)',
|
|
612
|
-
other: 'This is more than seventy Characters. Lorem ipsum dolor sit amet, consectetur.',
|
|
613
|
-
})).rejects.toThrowError('You cannot exceed 70 characters')];
|
|
614
|
-
case 1:
|
|
615
|
-
_a.sent();
|
|
616
|
-
return [2 /*return*/];
|
|
617
|
-
}
|
|
618
|
-
});
|
|
619
|
-
}); });
|
|
620
|
-
});
|
|
621
|
-
describe('vouchers', function () {
|
|
622
|
-
var defaultYupSchema = initializeYupSchema({});
|
|
623
|
-
var validation = defaultYupSchema['vouchers'];
|
|
624
|
-
it('should throw error if no code', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
625
|
-
return __generator(this, function (_a) {
|
|
626
|
-
switch (_a.label) {
|
|
627
|
-
case 0: return [4 /*yield*/, expect(validation.validate({
|
|
628
|
-
code: undefined,
|
|
629
|
-
})).rejects.toThrowError('need a subscription id')];
|
|
630
|
-
case 1:
|
|
631
|
-
_a.sent();
|
|
632
|
-
return [2 /*return*/];
|
|
633
|
-
}
|
|
634
|
-
});
|
|
635
|
-
}); });
|
|
636
|
-
});
|
|
637
|
-
});
|
|
638
|
-
//# sourceMappingURL=index.tests.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.tests.js","sourceRoot":"","sources":["../../../src/__tests__/index.tests.ts"],"names":[],"mappings":"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"}
|