@fat-zebra/sdk 1.2.1 → 1.2.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.
Files changed (100) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +2 -0
  3. package/package.json +1 -1
  4. package/dist/env.d.ts +0 -5
  5. package/dist/env.development.d.ts +0 -5
  6. package/dist/env.development.js +0 -5
  7. package/dist/env.js +0 -5
  8. package/dist/local/fatzebra.js +0 -17728
  9. package/dist/local/fatzebra.js.map +0 -1
  10. package/dist/local/index.html +0 -247
  11. package/dist/sca/sca.d.ts +0 -42
  12. package/dist/sca/sca.js +0 -273
  13. package/dist/src/applepay/applepay.js +0 -198
  14. package/dist/src/applepay/applepay.js.map +0 -1
  15. package/dist/src/applepay/clients/apple-pay-client.js +0 -66
  16. package/dist/src/applepay/clients/apple-pay-client.js.map +0 -1
  17. package/dist/src/applepay/clients/paynow-client.js +0 -96
  18. package/dist/src/applepay/clients/paynow-client.js.map +0 -1
  19. package/dist/src/applepay/index.js +0 -6
  20. package/dist/src/applepay/index.js.map +0 -1
  21. package/dist/src/hpp/hpp.js +0 -230
  22. package/dist/src/hpp/hpp.js.map +0 -1
  23. package/dist/src/hpp/hpp.test.js +0 -135
  24. package/dist/src/hpp/hpp.test.js.map +0 -1
  25. package/dist/src/hpp/index.js +0 -6
  26. package/dist/src/hpp/index.js.map +0 -1
  27. package/dist/src/index.js +0 -7
  28. package/dist/src/index.js.map +0 -1
  29. package/dist/src/main.js +0 -225
  30. package/dist/src/main.js.map +0 -1
  31. package/dist/src/main.test.js +0 -236
  32. package/dist/src/main.test.js.map +0 -1
  33. package/dist/src/paypal/paypal-button.js +0 -311
  34. package/dist/src/paypal/paypal-button.js.map +0 -1
  35. package/dist/src/paypal/paypal-button.test.js +0 -41
  36. package/dist/src/paypal/paypal-button.test.js.map +0 -1
  37. package/dist/src/paypal/paypal-checkout.js +0 -111
  38. package/dist/src/paypal/paypal-checkout.js.map +0 -1
  39. package/dist/src/paypal/paypal-checkout.test.js +0 -167
  40. package/dist/src/paypal/paypal-checkout.test.js.map +0 -1
  41. package/dist/src/paypal/types.js +0 -9
  42. package/dist/src/paypal/types.js.map +0 -1
  43. package/dist/src/paypal/validation.js +0 -73
  44. package/dist/src/paypal/validation.js.map +0 -1
  45. package/dist/src/sca/__tests__/eci-mappings.test.js +0 -31
  46. package/dist/src/sca/__tests__/eci-mappings.test.js.map +0 -1
  47. package/dist/src/sca/__tests__/index.test.js +0 -558
  48. package/dist/src/sca/__tests__/index.test.js.map +0 -1
  49. package/dist/src/sca/cardinal.js +0 -110
  50. package/dist/src/sca/cardinal.js.map +0 -1
  51. package/dist/src/sca/eci-mappings.js +0 -63
  52. package/dist/src/sca/eci-mappings.js.map +0 -1
  53. package/dist/src/sca/eci-mappings.test.js +0 -31
  54. package/dist/src/sca/eci-mappings.test.js.map +0 -1
  55. package/dist/src/sca/index.js +0 -388
  56. package/dist/src/sca/index.js.map +0 -1
  57. package/dist/src/sca/index.test.js +0 -558
  58. package/dist/src/sca/index.test.js.map +0 -1
  59. package/dist/src/sca/scenarios/enrollment.js +0 -150
  60. package/dist/src/sca/scenarios/enrollment.js.map +0 -1
  61. package/dist/src/sca/scenarios/index.js +0 -8
  62. package/dist/src/sca/scenarios/index.js.map +0 -1
  63. package/dist/src/sca/scenarios/validation.js +0 -128
  64. package/dist/src/sca/scenarios/validation.js.map +0 -1
  65. package/dist/src/sca/types.js +0 -57
  66. package/dist/src/sca/types.js.map +0 -1
  67. package/dist/src/shared/api-gateway-client.js +0 -150
  68. package/dist/src/shared/api-gateway-client.js.map +0 -1
  69. package/dist/src/shared/bridge-client.js +0 -24
  70. package/dist/src/shared/bridge-client.js.map +0 -1
  71. package/dist/src/shared/constants.js +0 -19
  72. package/dist/src/shared/constants.js.map +0 -1
  73. package/dist/src/shared/event-manager.js +0 -15
  74. package/dist/src/shared/event-manager.js.map +0 -1
  75. package/dist/src/shared/post-message-client.js +0 -107
  76. package/dist/src/shared/post-message-client.js.map +0 -1
  77. package/dist/src/shared/post-message-client.test.js +0 -58
  78. package/dist/src/shared/post-message-client.test.js.map +0 -1
  79. package/dist/src/shared/types.js +0 -47
  80. package/dist/src/shared/types.js.map +0 -1
  81. package/dist/src/shared/types.test.js +0 -55
  82. package/dist/src/shared/types.test.js.map +0 -1
  83. package/dist/src/shared/util.js +0 -96
  84. package/dist/src/shared/util.js.map +0 -1
  85. package/dist/src/shared/util.test.js +0 -148
  86. package/dist/src/shared/util.test.js.map +0 -1
  87. package/dist/src/validation/index.js +0 -10
  88. package/dist/src/validation/index.js.map +0 -1
  89. package/dist/src/validation/validation-helper.js +0 -10
  90. package/dist/src/validation/validation-helper.js.map +0 -1
  91. package/dist/src/validation/validation-helper.test.js +0 -34
  92. package/dist/src/validation/validation-helper.test.js.map +0 -1
  93. package/dist/src/validation/validators/hpp-load-params-validator.js +0 -17
  94. package/dist/src/validation/validators/hpp-load-params-validator.js.map +0 -1
  95. package/dist/src/validation/validators/hpp-load-params-validator.test.js +0 -56
  96. package/dist/src/validation/validators/hpp-load-params-validator.test.js.map +0 -1
  97. package/dist/src/validation/validators/verify-card-params-validator.js +0 -18
  98. package/dist/src/validation/validators/verify-card-params-validator.js.map +0 -1
  99. package/dist/tests/helpers/api-gateway-mock.js +0 -36
  100. package/dist/tests/helpers/api-gateway-mock.js.map +0 -1
@@ -1,558 +0,0 @@
1
- "use strict";
2
- /**
3
- * @jest-environment jsdom
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
- return new (P || (P = Promise))(function (resolve, reject) {
31
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
- step((generator = generator.apply(thisArg, _arguments || [])).next());
35
- });
36
- };
37
- var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
- function verb(n) { return function (v) { return step([n, v]); }; }
41
- function step(op) {
42
- if (f) throw new TypeError("Generator is already executing.");
43
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
- 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;
45
- if (y = 0, t) op = [op[0] & 2, t.value];
46
- switch (op[0]) {
47
- case 0: case 1: t = op; break;
48
- case 4: _.label++; return { value: op[1], done: false };
49
- case 5: _.label++; y = op[1]; op = [0]; continue;
50
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
- default:
52
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
- if (t[2]) _.ops.pop();
57
- _.trys.pop(); continue;
58
- }
59
- op = body.call(thisArg, _);
60
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
- }
63
- };
64
- var __importDefault = (this && this.__importDefault) || function (mod) {
65
- return (mod && mod.__esModule) ? mod : { "default": mod };
66
- };
67
- Object.defineProperty(exports, "__esModule", { value: true });
68
- var __1 = __importDefault(require(".."));
69
- var types_1 = require("../../shared/types");
70
- var constants_1 = require("../../shared/constants");
71
- var api_gateway_mock_1 = require("../../../tests/helpers/api-gateway-mock");
72
- var nock = __importStar(require("nock"));
73
- var cardinal_1 = require("../cardinal");
74
- var types_2 = require("../types");
75
- var scenarios_1 = require("../scenarios");
76
- var api_gateway_client_1 = __importDefault(require("../../shared/api-gateway-client"));
77
- jest.mock('../../src/sca/cardinal');
78
- // mock module function
79
- var eventManager = require('../../src/shared/event-manager');
80
- eventManager.emit = jest.fn();
81
- var mockCardinalManager = function () {
82
- // @ts-ignore
83
- cardinal_1.CardinalManager.mockImplementation(function () {
84
- return {
85
- processBin: function () { return ['success']; },
86
- setup: function () { return true; },
87
- onPaymentSetupComplete: function () {
88
- return {
89
- sessionId: 'session_123'
90
- };
91
- },
92
- onPaymentValidated: function () { return true; },
93
- continue: function () { return jest.fn(); }
94
- };
95
- });
96
- };
97
- var gatewayClient = new api_gateway_client_1.default({
98
- accessToken: "abc1234",
99
- username: "TEST"
100
- });
101
- var scaTests = function (config) {
102
- var paymentIntent = config.paymentIntent, cardToken = config.cardToken, customer = config.customer;
103
- var requestCustomer = function (customer) {
104
- var properties = {};
105
- if (!customer)
106
- return properties;
107
- if (customer.firstName)
108
- properties.first_name = customer.firstName;
109
- if (customer.lastName)
110
- properties.last_name = customer.lastName;
111
- if (customer.email)
112
- properties.email = customer.email;
113
- if (customer.address)
114
- properties.address = customer.address;
115
- if (customer.city)
116
- properties.city = customer.city;
117
- if (customer.state)
118
- properties.state = customer.state;
119
- if (customer.postcode)
120
- properties.postcode = customer.postcode;
121
- if (customer.country)
122
- properties.country = customer.country;
123
- return properties;
124
- };
125
- var enrollmentRequestBody = {
126
- amount: paymentIntent.payment.amount,
127
- card_token: cardToken,
128
- currency: paymentIntent.payment.currency,
129
- reference: paymentIntent.payment.reference,
130
- hide_card_holder: paymentIntent.payment.hide_card_holder,
131
- verification: paymentIntent.verification,
132
- session_id: 'session_123',
133
- challenge_window_size: types_2.ChallengeWindowSize.SIZE_FULL_PAGE,
134
- customer: requestCustomer(customer),
135
- };
136
- var mockCreateSCASessionSuccess = function () {
137
- (0, api_gateway_mock_1.mockRequest)({
138
- request: {
139
- action: 'POST',
140
- path: '/sca/session',
141
- body: {
142
- amount: paymentIntent.payment.amount,
143
- currency: paymentIntent.payment.currency,
144
- hide_card_holder: paymentIntent.payment.hide_card_holder,
145
- }
146
- },
147
- response: {
148
- status: 200,
149
- body: {
150
- data: {
151
- jwt: 'thisisajwt'
152
- }
153
- }
154
- }
155
- });
156
- };
157
- var mockSCASession = function (override) {
158
- var responseBody = {
159
- data: {
160
- jwt: 'thisisajwt'
161
- }
162
- };
163
- (0, api_gateway_mock_1.mockRequest)({
164
- request: {
165
- action: 'POST',
166
- path: '/sca/session',
167
- body: {
168
- amount: paymentIntent.payment.amount,
169
- currency: paymentIntent.payment.currency,
170
- hide_card_holder: paymentIntent.payment.hide_card_holder,
171
- }
172
- },
173
- response: {
174
- status: (override ? override.status : 200),
175
- body: (override ? override.body : responseBody)
176
- }
177
- });
178
- };
179
- var mockSCAEnrollment = function (override) {
180
- var responseBody = {
181
- data: {
182
- action: {
183
- proceed: true
184
- },
185
- version: '1.0',
186
- enrolled: 'Y',
187
- acs_url: '',
188
- pareq: 'asdfasdf',
189
- pares: '',
190
- decision: 'ACCEPT',
191
- }
192
- };
193
- (0, api_gateway_mock_1.mockRequest)({
194
- request: {
195
- action: 'POST',
196
- path: '/sca/enrollment',
197
- body: enrollmentRequestBody
198
- },
199
- response: {
200
- status: (override ? override.status : 200),
201
- body: (override ? override.body : responseBody)
202
- }
203
- });
204
- };
205
- describe('SCA session failed', function () {
206
- it('Emits fz.validation.error event with detail', function () { return __awaiter(void 0, void 0, void 0, function () {
207
- var sca, eventDetail;
208
- return __generator(this, function (_a) {
209
- switch (_a.label) {
210
- case 0:
211
- (0, api_gateway_mock_1.mockRequest)({
212
- request: {
213
- action: 'POST',
214
- path: '/sca/session',
215
- body: {
216
- amount: paymentIntent.payment.amount,
217
- currency: paymentIntent.payment.currency,
218
- hide_card_holder: paymentIntent.payment.hide_card_holder,
219
- }
220
- },
221
- response: {
222
- status: 422,
223
- body: {
224
- errors: ['Create SCA session error.']
225
- }
226
- }
227
- });
228
- mockSCAEnrollment();
229
- sca = new __1.default({ gatewayClient: gatewayClient });
230
- return [4 /*yield*/, sca.run(config)];
231
- case 1:
232
- _a.sent();
233
- eventDetail = {
234
- detail: {
235
- errors: ['FatZebra.3DS: JWT creation failed.'],
236
- data: null
237
- }
238
- };
239
- expect(eventManager.emit).toHaveBeenCalledTimes(1);
240
- expect(eventManager.emit.mock.calls[0][0]).toBe(types_1.PublicEvent.SCA_ERROR);
241
- expect(eventManager.emit.mock.calls[0][1]).toMatchObject(eventDetail.detail);
242
- return [2 /*return*/];
243
- }
244
- });
245
- }); });
246
- });
247
- describe('Bin processing failed', function () {
248
- it('Emits fz.validation.error event without detail', function () { return __awaiter(void 0, void 0, void 0, function () {
249
- var sca, eventDetail;
250
- return __generator(this, function (_a) {
251
- switch (_a.label) {
252
- case 0:
253
- //@ts-ignore
254
- cardinal_1.CardinalManager.mockImplementation(function () {
255
- return {
256
- processBin: function () {
257
- throw new Error('GG');
258
- },
259
- setup: function () { return true; },
260
- onPaymentSetupComplete: function () {
261
- return {
262
- sessionId: '123'
263
- };
264
- },
265
- onPaymentValidated: function () { return true; }
266
- };
267
- });
268
- mockCreateSCASessionSuccess();
269
- mockSCAEnrollment();
270
- sca = new __1.default({ gatewayClient: gatewayClient });
271
- sca.cardinal = new cardinal_1.CardinalManager();
272
- return [4 /*yield*/, sca.run(config)];
273
- case 1:
274
- _a.sent();
275
- eventDetail = {
276
- detail: {
277
- errors: ['FatZebra.3DS: BIN verification failed.'],
278
- data: null
279
- }
280
- };
281
- expect(eventManager.emit).toHaveBeenCalledTimes(1);
282
- expect(eventManager.emit.mock.calls[0][0]).toBe(types_1.PublicEvent.SCA_ERROR);
283
- expect(eventManager.emit.mock.calls[0][1]).toMatchObject(eventDetail.detail);
284
- return [2 /*return*/];
285
- }
286
- });
287
- }); });
288
- });
289
- describe('3DS version 2', function () {
290
- var scenarios = scenarios_1.enrollmentScenarios.filter(function (item) { return item.threedsVersion[0] == '2'; });
291
- scenarios.forEach(function (scenario) {
292
- describe("Enrollment: ".concat(scenario.description), function () {
293
- beforeEach(function () {
294
- mockCardinalManager();
295
- mockSCASession();
296
- mockSCAEnrollment({
297
- status: 200,
298
- body: {
299
- data: {
300
- version: '2.1.0',
301
- cavv: 'cavv',
302
- eci: '05',
303
- xid: 'xid',
304
- pareq: 'pareq',
305
- pares: scenario.pares,
306
- enrolled: scenario.veresEnrolled,
307
- reason_code: scenario.reasonCode,
308
- directory_server_txn_id: 'txn123',
309
- ucaf_collection_indicator: 'ucaf123',
310
- }
311
- }
312
- });
313
- });
314
- it('SCA', function () { return __awaiter(void 0, void 0, void 0, function () {
315
- var sca, spy, eventDetail, eventDetail;
316
- return __generator(this, function (_a) {
317
- switch (_a.label) {
318
- case 0:
319
- sca = new __1.default({ gatewayClient: gatewayClient });
320
- sca.cardinal = new cardinal_1.CardinalManager();
321
- spy = jest.spyOn(sca.cardinal, 'continue');
322
- return [4 /*yield*/, sca.run(config)];
323
- case 1:
324
- _a.sent();
325
- if (scenario.outcome.authenticationType === 'challenge') {
326
- expect(spy).toHaveBeenCalledTimes(1);
327
- expect(eventManager.emit).toHaveBeenCalledTimes(0);
328
- return [2 /*return*/];
329
- }
330
- if (scenario.outcome.success) {
331
- eventDetail = {
332
- detail: {
333
- message: "FatZebra.3DS: 3DS success - ".concat(scenario.description, "."),
334
- data: {
335
- cavv: 'cavv',
336
- par: scenario.pares,
337
- sli: '05',
338
- xid: 'xid',
339
- ver: 'Y',
340
- threedsVersion: '2.1.0',
341
- directoryServerTxnId: 'txn123',
342
- },
343
- }
344
- };
345
- expect(eventManager.emit).toHaveBeenCalledTimes(1);
346
- expect(eventManager.emit.mock.calls[0][0]).toBe(types_1.PublicEvent.SCA_SUCCESS);
347
- expect(eventManager.emit.mock.calls[0][1]).toMatchObject(eventDetail.detail);
348
- }
349
- else {
350
- eventDetail = {
351
- detail: {
352
- errors: ["FatZebra.3DS: 3DS error - ".concat(scenario.description)],
353
- data: {
354
- errorCode: scenario.outcome.errorCode
355
- },
356
- }
357
- };
358
- expect(eventManager.emit).toHaveBeenCalledTimes(1);
359
- expect(eventManager.emit.mock.calls[0][0]).toBe(types_1.PublicEvent.SCA_ERROR);
360
- expect(eventManager.emit.mock.calls[0][1]).toMatchObject(eventDetail.detail);
361
- }
362
- return [2 /*return*/];
363
- }
364
- });
365
- }); });
366
- });
367
- });
368
- });
369
- describe('3DS version 1', function () {
370
- var scenarios = scenarios_1.enrollmentScenarios.filter(function (item) { return item.threedsVersion[0] == '1'; });
371
- scenarios.forEach(function (scenario) {
372
- describe("Enrollment: ".concat(scenario.description), function () {
373
- beforeEach(function () {
374
- mockCardinalManager();
375
- mockSCASession();
376
- mockSCAEnrollment({
377
- status: 200,
378
- body: {
379
- data: {
380
- version: '1.0.2',
381
- cavv: 'cavv',
382
- eci: '05',
383
- xid: 'xid',
384
- pareq: 'pareq',
385
- pares: scenario.pares,
386
- enrolled: scenario.veresEnrolled,
387
- reason_code: scenario.reasonCode,
388
- directory_server_txn_id: 'txn123',
389
- ucaf_collection_indicator: 'ucaf123',
390
- }
391
- }
392
- });
393
- });
394
- it('SCA', function () { return __awaiter(void 0, void 0, void 0, function () {
395
- var sca, spy, eventDetail, eventDetail;
396
- return __generator(this, function (_a) {
397
- switch (_a.label) {
398
- case 0:
399
- sca = new __1.default({ gatewayClient: gatewayClient });
400
- sca.cardinal = new cardinal_1.CardinalManager();
401
- spy = jest.spyOn(sca.cardinal, 'continue');
402
- return [4 /*yield*/, sca.run(config)];
403
- case 1:
404
- _a.sent();
405
- if (scenario.outcome.authenticationType === 'challenge') {
406
- expect(spy).toHaveBeenCalledTimes(1);
407
- expect(eventManager.emit).toHaveBeenCalledTimes(0);
408
- return [2 /*return*/];
409
- }
410
- if (scenario.outcome.success) {
411
- eventDetail = {
412
- detail: {
413
- message: "FatZebra.3DS: 3DS success - ".concat(scenario.description, "."),
414
- data: {
415
- cavv: 'cavv',
416
- par: scenario.pares,
417
- sli: '05',
418
- xid: 'xid',
419
- ver: scenario.veresEnrolled,
420
- threedsVersion: '1.0.2',
421
- directoryServerTxnId: 'txn123',
422
- },
423
- }
424
- };
425
- expect(eventManager.emit).toHaveBeenCalledTimes(1);
426
- expect(eventManager.emit.mock.calls[0][0]).toBe(types_1.PublicEvent.SCA_SUCCESS);
427
- expect(eventManager.emit.mock.calls[0][1]).toMatchObject(eventDetail.detail);
428
- }
429
- else {
430
- eventDetail = {
431
- detail: {
432
- errors: ["FatZebra.3DS: 3DS error - ".concat(scenario.description)],
433
- data: {
434
- errorCode: scenario.outcome.errorCode
435
- },
436
- }
437
- };
438
- expect(eventManager.emit).toHaveBeenCalledTimes(1);
439
- expect(eventManager.emit.mock.calls[0][0]).toBe(types_1.PublicEvent.SCA_ERROR);
440
- expect(eventManager.emit.mock.calls[0][1]).toMatchObject(eventDetail.detail);
441
- }
442
- return [2 /*return*/];
443
- }
444
- });
445
- }); });
446
- });
447
- });
448
- });
449
- };
450
- describe('Sca', function () {
451
- beforeEach(function () {
452
- jest.clearAllMocks();
453
- nock.disableNetConnect();
454
- nock.cleanAll();
455
- mockCardinalManager();
456
- localStorage.setItem(constants_1.LocalStorageAccessTokenKey, 'TOKEN');
457
- });
458
- var bin = '400000';
459
- var cardToken = 'token_12345';
460
- var paymentIntent = {
461
- payment: {
462
- amount: 1000,
463
- currency: 'AUD',
464
- reference: 'ref_12345',
465
- hide_card_holder: false,
466
- },
467
- verification: 'ver_12345'
468
- };
469
- describe('#run', function () {
470
- describe('customer details: full', function () {
471
- var customer = {
472
- firstName: 'Ziggy',
473
- lastName: 'Zebra',
474
- email: 'ziggy.zebra@fatzebra.com',
475
- address: '2/58-62 Kippax Street',
476
- city: 'Surry Hills',
477
- postcode: '2010',
478
- state: 'NSW',
479
- country: 'Australia'
480
- };
481
- var config = {
482
- bin: bin,
483
- cardToken: cardToken,
484
- customer: customer,
485
- paymentIntent: paymentIntent,
486
- };
487
- scaTests(config);
488
- });
489
- describe('customer details: partial', function () {
490
- var customer = {
491
- firstName: 'Ziggy',
492
- lastName: '',
493
- email: 'ziggy.zebra@fatzebra.com',
494
- address: null,
495
- city: undefined,
496
- postcode: '',
497
- };
498
- var config = {
499
- bin: bin,
500
- cardToken: cardToken,
501
- customer: customer,
502
- paymentIntent: paymentIntent,
503
- };
504
- scaTests(config);
505
- });
506
- describe('customer details: empty', function () {
507
- var customer = {};
508
- var config = {
509
- bin: bin,
510
- cardToken: cardToken,
511
- customer: customer,
512
- paymentIntent: paymentIntent,
513
- };
514
- scaTests(config);
515
- });
516
- describe('no customer', function () {
517
- var config = {
518
- bin: bin,
519
- cardToken: cardToken,
520
- paymentIntent: paymentIntent,
521
- };
522
- scaTests(config);
523
- });
524
- });
525
- describe('#customerProperties', function () {
526
- var sca = new __1.default({ gatewayClient: gatewayClient });
527
- it('formats the property keys into snake_case', function () {
528
- var customer = {
529
- firstName: 'Ziggy',
530
- lastName: 'Zebra',
531
- };
532
- var expectedProperties = {
533
- first_name: 'Ziggy',
534
- last_name: 'Zebra',
535
- };
536
- expect(sca.customerProperties(customer)).toEqual(expectedProperties);
537
- });
538
- it('only retains non-empty customer properties', function () {
539
- var customer = {
540
- firstName: 'Ziggy',
541
- lastName: 'Zebra',
542
- email: 'ziggy.zebra@fatzebra.com',
543
- address: null,
544
- city: null,
545
- postcode: undefined,
546
- state: undefined,
547
- country: ''
548
- };
549
- var expectedProperties = {
550
- first_name: 'Ziggy',
551
- last_name: 'Zebra',
552
- email: 'ziggy.zebra@fatzebra.com',
553
- };
554
- expect(sca.customerProperties(customer)).toEqual(expectedProperties);
555
- });
556
- });
557
- });
558
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/sca/__tests__/index.test.ts"],"names":[],"mappings":"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"}