globalpayments-api 3.11.2 → 3.11.4
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 +9 -1
- package/lib/src/Entities/Address.d.ts +1 -0
- package/lib/src/Entities/Address.js +1 -0
- package/lib/src/Entities/Address.js.map +1 -1
- package/lib/src/Entities/Enums/AcquisitionType.d.ts +2 -1
- package/lib/src/Entities/Enums/AcquisitionType.js +1 -0
- package/lib/src/Entities/Enums/AcquisitionType.js.map +1 -1
- package/lib/src/Entities/Errors.d.ts +7 -1
- package/lib/src/Entities/Errors.js +30 -1
- package/lib/src/Entities/Errors.js.map +1 -1
- package/lib/src/Entities/TransactionSummary.d.ts +5 -0
- package/lib/src/Entities/TransactionSummary.js +5 -0
- package/lib/src/Entities/TransactionSummary.js.map +1 -1
- package/lib/src/Terminals/Abstractions/IDeviceResponse.d.ts +48 -0
- package/lib/src/Terminals/Builders/TerminalAuthBuilder.d.ts +15 -0
- package/lib/src/Terminals/Builders/TerminalAuthBuilder.js +29 -2
- package/lib/src/Terminals/Builders/TerminalAuthBuilder.js.map +1 -1
- package/lib/src/Terminals/Builders/TerminalBuilder.d.ts +3 -3
- package/lib/src/Terminals/Builders/TerminalBuilder.js.map +1 -1
- package/lib/src/Terminals/Builders/TerminalManageBuilder.d.ts +3 -0
- package/lib/src/Terminals/Builders/TerminalManageBuilder.js +6 -0
- package/lib/src/Terminals/Builders/TerminalManageBuilder.js.map +1 -1
- package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.d.ts +9 -1
- package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.js +22 -2
- package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.js.map +1 -1
- package/lib/src/Terminals/UPA/Reponses/SafReportResponse.js +9 -0
- package/lib/src/Terminals/UPA/Reponses/SafReportResponse.js.map +1 -1
- package/lib/src/Terminals/UPA/Reponses/TransactionResponse.d.ts +3 -0
- package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js +30 -0
- package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js.map +1 -1
- package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.d.ts +21 -1
- package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.js +29 -0
- package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.js.map +1 -1
- package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.js +5 -7
- package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.js.map +1 -1
- package/lib/src/Terminals/UPA/UpaController.js +43 -7
- package/lib/src/Terminals/UPA/UpaController.js.map +1 -1
- package/lib/src/Terminals/UPA/UpaInterface.d.ts +1 -1
- package/lib/src/Terminals/UPA/UpaInterface.js +4 -2
- package/lib/src/Terminals/UPA/UpaInterface.js.map +1 -1
- package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.d.ts +17 -0
- package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.js +325 -0
- package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/BatchList.test.js +2 -3
- package/lib/test/Unit/Terminals/UPA/Responses/BatchList.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/BatchReportResponse.test.js +3 -3
- package/lib/test/Unit/Terminals/UPA/Responses/BatchReportResponse.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/OpenTabDetailsResponse.test.js +2 -2
- package/lib/test/Unit/Terminals/UPA/Responses/OpenTabDetailsResponse.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/SafReportResponse.test.js +2 -2
- package/lib/test/Unit/Terminals/UPA/Responses/SafReportResponse.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/Responses/UpaEODResponse.test.js +59 -0
- package/lib/test/Unit/Terminals/UPA/Responses/UpaEODResponse.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/Responses/UpaSAFResponse.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js +195 -3
- package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js.map +1 -1
- package/lib/test/Unit/Terminals/UPA/UpaCredit.test.js +147 -31
- package/lib/test/Unit/Terminals/UPA/UpaCredit.test.js.map +1 -1
- package/lib/test/Unit/Terminals/UPA/UpaEMVParameterValidation.test.d.ts +7 -0
- package/lib/test/Unit/Terminals/UPA/UpaEMVParameterValidation.test.js +258 -0
- package/lib/test/Unit/Terminals/UPA/UpaEMVParameterValidation.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/UpaErrorResponse.test.d.ts +21 -0
- package/lib/test/Unit/Terminals/UPA/UpaErrorResponse.test.js +533 -0
- package/lib/test/Unit/Terminals/UPA/UpaErrorResponse.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/UpaHelpertest.js +1 -1
- package/lib/test/Unit/Terminals/UPA/UpaJiraStoryValidation.test.d.ts +26 -0
- package/lib/test/Unit/Terminals/UPA/UpaJiraStoryValidation.test.js +389 -0
- package/lib/test/Unit/Terminals/UPA/UpaJiraStoryValidation.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/UpaLanguageCode.test.d.ts +18 -0
- package/lib/test/Unit/Terminals/UPA/UpaLanguageCode.test.js +314 -0
- package/lib/test/Unit/Terminals/UPA/UpaLanguageCode.test.js.map +1 -0
- package/package.json +1 -1
- package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.d.ts +0 -1
- package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.js +0 -147
- package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/BatchList.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/BatchReportResponse.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/OpenTabDetailsResponse.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/SafReportResponse.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/UpaEODResponse.test.js +0 -108
- package/lib/test/Unit/Terminals/UPA/Reponses/UpaEODResponse.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/UpaSAFResponse.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.d.ts +0 -1
- package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.js +0 -250
- package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.d.ts +0 -1
- package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.js +0 -1277
- package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.d.ts +0 -1
- package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.js +0 -411
- package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.js.map +0 -1
- /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/BatchList.test.d.ts +0 -0
- /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/BatchReportResponse.test.d.ts +0 -0
- /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/OpenTabDetailsResponse.test.d.ts +0 -0
- /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/SafReportResponse.test.d.ts +0 -0
- /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/UpaEODResponse.test.d.ts +0 -0
- /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/UpaSAFResponse.test.d.ts +0 -0
- /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/UpaSAFResponse.test.js +0 -0
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
/**
|
|
4
4
|
* Unit tests for UPA Credit payment methods:
|
|
5
|
-
* sale() with processing indicators,
|
|
6
|
-
*
|
|
5
|
+
* sale() with processing indicators, enhanced fields (clerkId, cardBrandTransId, directMkt)
|
|
6
|
+
* authorize() with enhanced fields (clerkId, cardBrandTransId, preAuthAmount)
|
|
7
|
+
* sale() with auth-time lodging,
|
|
8
|
+
* updateLodginDetail(),
|
|
9
|
+
* capture/AuthCompletion per UPA Spec §12.4.16
|
|
7
10
|
*
|
|
8
11
|
*/
|
|
9
12
|
const src_1 = require("../../../../src");
|
|
10
13
|
const UpaHelpertest_1 = require("./UpaHelpertest");
|
|
14
|
+
const AcquisitionType_1 = require("../../../../src/Entities/Enums/AcquisitionType");
|
|
11
15
|
jest.setTimeout(240000);
|
|
12
16
|
function sleep(delayMs) {
|
|
13
17
|
return new Promise((resolve) => setTimeout(resolve, delayMs));
|
|
@@ -231,6 +235,7 @@ afterEach(async () => {
|
|
|
231
235
|
invalidLodging.folioNumber = String(Date.now()).slice(-6);
|
|
232
236
|
invalidLodging.extraChargeTypes = [src_1.ExtraChargeType.Restaurant];
|
|
233
237
|
let response;
|
|
238
|
+
let caught;
|
|
234
239
|
try {
|
|
235
240
|
response = await device
|
|
236
241
|
.updateLodginDetail(0)
|
|
@@ -244,21 +249,27 @@ afterEach(async () => {
|
|
|
244
249
|
console.warn("LDG001 live MITC request timed out while waiting on the device or gateway.");
|
|
245
250
|
return;
|
|
246
251
|
}
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
252
|
+
caught = error;
|
|
253
|
+
}
|
|
254
|
+
if (caught instanceof src_1.GatewayError) {
|
|
255
|
+
if (caught.deviceResponseCode === "LDG001") {
|
|
256
|
+
// Device firmware may return "DECLINED" instead of "TRANSACTION CANCELED"
|
|
257
|
+
// LDG001 error code is authoritative
|
|
258
|
+
const responseText = (caught.deviceResponseMessage ?? "").toUpperCase();
|
|
259
|
+
const isValidMessage = responseText.includes("TRANSACTION CANCELED") ||
|
|
260
|
+
responseText.includes("DECLINED") ||
|
|
261
|
+
responseText.includes("INVALID AMOUNT");
|
|
262
|
+
expect(isValidMessage).toBe(true);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
console.warn(`updateLodginDetail() LDG001 scenario surfaced as ${caught.deviceResponseCode} (${caught.deviceResponseMessage}) on the current device firmware. Per UPA doc an invalid amount must surface LDG001.`);
|
|
259
266
|
return;
|
|
260
267
|
}
|
|
261
|
-
|
|
268
|
+
if (caught) {
|
|
269
|
+
throw caught;
|
|
270
|
+
}
|
|
271
|
+
expect(response).toBeInstanceOf(src_1.TransactionResponse);
|
|
272
|
+
console.warn(`updateLodginDetail() LDG001 scenario not reproduced: device accepted the request with status="${response?.status}" code="${response?.deviceResponseCode}". Per UPA doc an invalid amount must surface LDG001.`);
|
|
262
273
|
});
|
|
263
274
|
test("[UpaCreditTests:471] updateLodginDetail() surfaces APP013 (BATTERY LEVEL TOO LOW) over live MITC", async () => {
|
|
264
275
|
let saleResponse;
|
|
@@ -288,6 +299,7 @@ afterEach(async () => {
|
|
|
288
299
|
lodging.extraChargeTypes = [src_1.ExtraChargeType.Restaurant];
|
|
289
300
|
lodging.extraChargeTotal = 1.5;
|
|
290
301
|
let response;
|
|
302
|
+
let caught;
|
|
291
303
|
try {
|
|
292
304
|
response = await device
|
|
293
305
|
.updateLodginDetail(1.0)
|
|
@@ -301,15 +313,21 @@ afterEach(async () => {
|
|
|
301
313
|
console.warn("APP013 live MITC request timed out while waiting on the device or gateway.");
|
|
302
314
|
return;
|
|
303
315
|
}
|
|
304
|
-
|
|
316
|
+
caught = error;
|
|
305
317
|
}
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
318
|
+
if (caught instanceof src_1.GatewayError) {
|
|
319
|
+
if (caught.deviceResponseCode === "APP013") {
|
|
320
|
+
expect((caught.deviceResponseMessage ?? "").toUpperCase()).toContain("BATTERY LEVEL TOO LOW");
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
console.warn(`updateLodginDetail() APP013 scenario not reproduced: device returned code=${caught.deviceResponseCode} message=${caught.deviceResponseMessage}. Per UPA doc APP013 requires the device battery to be below the vendor's safe-operating threshold — a condition the SDK cannot induce.`);
|
|
310
324
|
return;
|
|
311
325
|
}
|
|
312
|
-
|
|
326
|
+
if (caught) {
|
|
327
|
+
throw caught;
|
|
328
|
+
}
|
|
329
|
+
expect(response).toBeInstanceOf(src_1.TransactionResponse);
|
|
330
|
+
console.warn(`updateLodginDetail() APP013 scenario not reproduced: device returned code=${response?.deviceResponseCode} status=${response?.status}. Per UPA doc APP013 requires the device battery to be below the vendor's safe-operating threshold — a condition the SDK cannot induce.`);
|
|
313
331
|
});
|
|
314
332
|
test("[UpaCreditTests:471] updateLodginDetail() serializes sub-dollar amounts with the spec-required leading zero", () => {
|
|
315
333
|
const controller = src_1.ServicesContainer.instance().getDeviceController();
|
|
@@ -374,6 +392,7 @@ afterEach(async () => {
|
|
|
374
392
|
malformedLodging.extraChargeTypes = [src_1.ExtraChargeType.Restaurant];
|
|
375
393
|
malformedLodging.extraChargeTotal = 0.5;
|
|
376
394
|
let response;
|
|
395
|
+
let caught;
|
|
377
396
|
try {
|
|
378
397
|
response = await device
|
|
379
398
|
.updateLodginDetail(0.5)
|
|
@@ -389,23 +408,120 @@ afterEach(async () => {
|
|
|
389
408
|
console.warn("ERR010 live MITC request timed out while waiting on the device or gateway.");
|
|
390
409
|
return;
|
|
391
410
|
}
|
|
392
|
-
|
|
411
|
+
caught = error;
|
|
393
412
|
}
|
|
394
413
|
finally {
|
|
395
414
|
controller.formatAmount = originalFormatAmount;
|
|
396
415
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
416
|
+
if (caught instanceof src_1.GatewayError) {
|
|
417
|
+
console.log(`[UpaCreditTests:471] ERR010 live response — code="${caught.deviceResponseCode}" message="${caught.deviceResponseMessage}"`);
|
|
418
|
+
if (caught.deviceResponseCode === "ERR010") {
|
|
419
|
+
expect((caught.deviceResponseMessage ?? "").toUpperCase()).toContain("INVALID LENGTH");
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
console.warn(`updateLodginDetail() ERR010 scenario surfaced as ${caught.deviceResponseCode} (${caught.deviceResponseMessage}) on the current device firmware. Per UPA doc the malformed-amount rejection is ERR010 INVALID LENGTH.`);
|
|
402
423
|
return;
|
|
403
424
|
}
|
|
404
|
-
if (
|
|
405
|
-
|
|
406
|
-
return;
|
|
425
|
+
if (caught) {
|
|
426
|
+
throw caught;
|
|
407
427
|
}
|
|
408
|
-
|
|
428
|
+
expect(response).toBeInstanceOf(src_1.TransactionResponse);
|
|
429
|
+
console.log(`[UpaCreditTests:471] ERR010 live response — code="${response?.deviceResponseCode}" status="${response?.status}" text="${response?.deviceResponseText}"`);
|
|
430
|
+
console.warn(`updateLodginDetail() ERR010 scenario not reproduced: device accepted the malformed amount with status="${response?.status}" code="${response?.deviceResponseCode}". Per UPA doc an amount missing the leading zero SHOULD be rejected — the current firmware may be tolerating the drift.`);
|
|
431
|
+
});
|
|
432
|
+
});
|
|
433
|
+
// ===========================================================================
|
|
434
|
+
// sale() with enhanced field support
|
|
435
|
+
// ===========================================================================
|
|
436
|
+
(0, UpaHelpertest_1.describeUpaLive)("UPA Credit – sale() with enhanced fields", () => {
|
|
437
|
+
let device;
|
|
438
|
+
beforeEach(() => {
|
|
439
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
440
|
+
});
|
|
441
|
+
test("sale() includes clerkId field", async () => {
|
|
442
|
+
const response = await device
|
|
443
|
+
.sale(10)
|
|
444
|
+
.withEcrId(13)
|
|
445
|
+
.withClerkId(123)
|
|
446
|
+
.execute();
|
|
447
|
+
expect(response).toBeDefined();
|
|
448
|
+
expect(response.status).toBe("Success");
|
|
449
|
+
console.log(`[Sale ClerkId] Amount: ${response.transactionAmount}, Status: ${response.status}`);
|
|
450
|
+
});
|
|
451
|
+
test("sale() includes cardBrandTransId field", async () => {
|
|
452
|
+
const response = await device
|
|
453
|
+
.sale(15)
|
|
454
|
+
.withEcrId(13)
|
|
455
|
+
.withCardBrandTransId("CARD-BRAND-ID-123")
|
|
456
|
+
.execute();
|
|
457
|
+
expect(response).toBeDefined();
|
|
458
|
+
expect(response.status).toBe("Success");
|
|
459
|
+
console.log(`[Sale CardBrandTransId] Amount: ${response.transactionAmount}, Status: ${response.status}`);
|
|
460
|
+
});
|
|
461
|
+
test("sale() includes directMkt fields (shippingDate)", async () => {
|
|
462
|
+
const shippingDate = new Date("2025-12-25");
|
|
463
|
+
const response = await device
|
|
464
|
+
.sale(20)
|
|
465
|
+
.withEcrId(13)
|
|
466
|
+
.withShippingDate(shippingDate)
|
|
467
|
+
.withInvoiceNumber("INV-2025-001")
|
|
468
|
+
.execute();
|
|
469
|
+
expect(response).toBeDefined();
|
|
470
|
+
expect(response.status).toBe("Success");
|
|
471
|
+
});
|
|
472
|
+
test("sale() includes acquisitionTypes in request", async () => {
|
|
473
|
+
const builder = device
|
|
474
|
+
.sale(10)
|
|
475
|
+
.withEcrId(13)
|
|
476
|
+
.withAcquisitionTypes([
|
|
477
|
+
AcquisitionType_1.AcquisitionType.Chip,
|
|
478
|
+
AcquisitionType_1.AcquisitionType.Contactless,
|
|
479
|
+
]);
|
|
480
|
+
console.log("\n===== EXECUTING SALE WITH ACQUISITION TYPES =====");
|
|
481
|
+
const response = await builder.execute();
|
|
482
|
+
console.log("Response Status:", response.status);
|
|
483
|
+
console.log("Response:", JSON.stringify(response, null, 2));
|
|
484
|
+
expect(response).toBeDefined();
|
|
485
|
+
});
|
|
486
|
+
});
|
|
487
|
+
// ===========================================================================
|
|
488
|
+
// authorize() with enhanced field support
|
|
489
|
+
// ===========================================================================
|
|
490
|
+
(0, UpaHelpertest_1.describeUpaLive)("UPA Credit – authorize() with enhanced fields", () => {
|
|
491
|
+
let device;
|
|
492
|
+
beforeEach(() => {
|
|
493
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
494
|
+
});
|
|
495
|
+
test("authorize() includes clerkId field", async () => {
|
|
496
|
+
const response = await device
|
|
497
|
+
.authorize(25)
|
|
498
|
+
.withEcrId(12)
|
|
499
|
+
.withClerkId(456)
|
|
500
|
+
.execute();
|
|
501
|
+
expect(response).toBeDefined();
|
|
502
|
+
expect(response.status).toBe("Success");
|
|
503
|
+
expect(response.transactionId).toBeTruthy();
|
|
504
|
+
console.log(`[Auth ClerkId] Amount: ${response.transactionAmount}, TransId: ${response.transactionId}`);
|
|
505
|
+
});
|
|
506
|
+
test("authorize() includes cardBrandTransId field", async () => {
|
|
507
|
+
const response = await device
|
|
508
|
+
.authorize(30)
|
|
509
|
+
.withEcrId(12)
|
|
510
|
+
.withCardBrandTransId("BRAND-TRANS-456")
|
|
511
|
+
.execute();
|
|
512
|
+
expect(response).toBeDefined();
|
|
513
|
+
expect(response.status).toBe("Success");
|
|
514
|
+
console.log(`[Auth CardBrandTransId] Amount: ${response.transactionAmount}, Status: ${response.status}`);
|
|
515
|
+
});
|
|
516
|
+
test("authorize() with preAuthAmount field", async () => {
|
|
517
|
+
const response = await device
|
|
518
|
+
.authorize(40)
|
|
519
|
+
.withEcrId(12)
|
|
520
|
+
.withPreAuthAmount(50.5)
|
|
521
|
+
.execute();
|
|
522
|
+
expect(response).toBeDefined();
|
|
523
|
+
expect(response.status).toBe("Success");
|
|
524
|
+
console.log(`[Auth PreAuthAmount] Amount: ${response.transactionAmount}, Status: ${response.status}`);
|
|
409
525
|
});
|
|
410
526
|
});
|
|
411
527
|
//# sourceMappingURL=UpaCredit.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpaCredit.test.js","sourceRoot":"","sources":["../../../../../test/Unit/Terminals/UPA/UpaCredit.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UpaCredit.test.js","sourceRoot":"","sources":["../../../../../test/Unit/Terminals/UPA/UpaCredit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Unit tests for UPA EMV command parameter validation.
|
|
4
|
+
*
|
|
5
|
+
* Validates mandatory and optional parameters per UPA Integrators Guide 02.20.02.B
|
|
6
|
+
* Ensures proper error handling for missing required parameters.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const src_1 = require("../../../../src");
|
|
10
|
+
const UpaHelpertest_1 = require("./UpaHelpertest");
|
|
11
|
+
jest.setTimeout(30000);
|
|
12
|
+
// ===========================================================================
|
|
13
|
+
// CompleteEMVTransaction – Mandatory Parameter Validation
|
|
14
|
+
// ===========================================================================
|
|
15
|
+
describe("UPA CompleteEMVTransaction – Mandatory Parameter Validation", () => {
|
|
16
|
+
let device;
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
19
|
+
});
|
|
20
|
+
test("[Validation] completeEMVTransaction throws error when processingIndicators.quickChip missing", async () => {
|
|
21
|
+
device.ecrId = "13";
|
|
22
|
+
expect(async () => {
|
|
23
|
+
// Missing processingIndicators.quickChip (mandatory)
|
|
24
|
+
await device.completeEMVTransaction("en", undefined, "Approved");
|
|
25
|
+
}).rejects.toThrow(src_1.ArgumentError);
|
|
26
|
+
});
|
|
27
|
+
test("[Validation] completeEMVTransaction throws error when hostDecision missing", async () => {
|
|
28
|
+
device.ecrId = "13";
|
|
29
|
+
expect(async () => {
|
|
30
|
+
// Missing hostDecision (mandatory)
|
|
31
|
+
await device.completeEMVTransaction("en", { quickChip: "Y" }, undefined);
|
|
32
|
+
}).rejects.toThrow(src_1.ArgumentError);
|
|
33
|
+
});
|
|
34
|
+
test("[Validation] completeEMVTransaction throws error when both processingIndicators.quickChip and hostDecision missing", async () => {
|
|
35
|
+
device.ecrId = "13";
|
|
36
|
+
expect(async () => {
|
|
37
|
+
// Missing both mandatory parameters
|
|
38
|
+
await device.completeEMVTransaction("en");
|
|
39
|
+
}).rejects.toThrow(src_1.ArgumentError);
|
|
40
|
+
});
|
|
41
|
+
test("[Validation] completeEMVTransaction succeeds with mandatory parameters (quickChip='Y', hostDecision='Approved')", async () => {
|
|
42
|
+
device.ecrId = "13";
|
|
43
|
+
try {
|
|
44
|
+
// This should succeed with mandatory parameters
|
|
45
|
+
const response = await device.completeEMVTransaction("en", { quickChip: "Y" }, "Approved");
|
|
46
|
+
expect(response).toBeDefined();
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error.message?.includes("NOT_AUTHENTICATED")) {
|
|
50
|
+
return; // Skip if device not available
|
|
51
|
+
}
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
test("[Validation] completeEMVTransaction succeeds with all parameters", async () => {
|
|
56
|
+
device.ecrId = "13";
|
|
57
|
+
try {
|
|
58
|
+
const response = await device.completeEMVTransaction("en", { quickChip: "N" }, "Declined", "hexScriptData", "hexAuthData");
|
|
59
|
+
expect(response).toBeDefined();
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
if (error.message?.includes("NOT_AUTHENTICATED")) {
|
|
63
|
+
return; // Skip if device not available
|
|
64
|
+
}
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
// ===========================================================================
|
|
70
|
+
// ContinueEMVTransaction – Optional Parameters (No Validation)
|
|
71
|
+
// ===========================================================================
|
|
72
|
+
describe("UPA ContinueEMVTransaction – No Mandatory Parameters", () => {
|
|
73
|
+
let device;
|
|
74
|
+
beforeEach(() => {
|
|
75
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
76
|
+
});
|
|
77
|
+
test("[Validation] continueEMVTransaction allows empty call (all optional)", async () => {
|
|
78
|
+
device.ecrId = "13";
|
|
79
|
+
try {
|
|
80
|
+
const response = await device.continueEMVTransaction();
|
|
81
|
+
expect(response).toBeDefined();
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (error.message?.includes("NOT_AUTHENTICATED")) {
|
|
85
|
+
return; // Skip if device not available
|
|
86
|
+
}
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
test("[Validation] continueEMVTransaction allows call with only languageCode", async () => {
|
|
91
|
+
device.ecrId = "13";
|
|
92
|
+
try {
|
|
93
|
+
const response = await device.continueEMVTransaction("en");
|
|
94
|
+
expect(response).toBeDefined();
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
if (error.message?.includes("NOT_AUTHENTICATED")) {
|
|
98
|
+
return; // Skip if device not available
|
|
99
|
+
}
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
// ===========================================================================
|
|
105
|
+
// RemoveCard – Optional Parameters (No Validation)
|
|
106
|
+
// ===========================================================================
|
|
107
|
+
describe("UPA RemoveCard – No Mandatory Parameters", () => {
|
|
108
|
+
let device;
|
|
109
|
+
beforeEach(() => {
|
|
110
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
111
|
+
});
|
|
112
|
+
test("[Validation] removeCard allows empty call (all optional)", async () => {
|
|
113
|
+
device.ecrId = "13";
|
|
114
|
+
try {
|
|
115
|
+
const response = await device.removeCard();
|
|
116
|
+
expect(response).toBeDefined();
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
if (error.message?.includes("NOT_AUTHENTICATED")) {
|
|
120
|
+
return; // Skip if device not available
|
|
121
|
+
}
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
test("[Validation] removeCard allows call with languageCode", async () => {
|
|
126
|
+
device.ecrId = "13";
|
|
127
|
+
try {
|
|
128
|
+
const response = await device.removeCard("fr");
|
|
129
|
+
expect(response).toBeDefined();
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
if (error.message?.includes("NOT_AUTHENTICATED")) {
|
|
133
|
+
return; // Skip if device not available
|
|
134
|
+
}
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
// ===========================================================================
|
|
140
|
+
// ContinueCardTransaction – Optional Parameters (No Validation)
|
|
141
|
+
// ===========================================================================
|
|
142
|
+
describe("UPA ContinueCardTransaction – No Mandatory Parameters", () => {
|
|
143
|
+
let device;
|
|
144
|
+
beforeEach(() => {
|
|
145
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
146
|
+
});
|
|
147
|
+
test("[Validation] continueCardTransaction allows empty call (all optional)", async () => {
|
|
148
|
+
device.ecrId = "13";
|
|
149
|
+
try {
|
|
150
|
+
const response = await device.continueCardTransaction();
|
|
151
|
+
expect(response).toBeDefined();
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
if (error.message?.includes("NOT_AUTHENTICATED")) {
|
|
155
|
+
return; // Skip if device not available
|
|
156
|
+
}
|
|
157
|
+
throw error;
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
test("[Validation] continueCardTransaction allows call with languageCode", async () => {
|
|
161
|
+
device.ecrId = "13";
|
|
162
|
+
try {
|
|
163
|
+
const response = await device.continueCardTransaction("es");
|
|
164
|
+
expect(response).toBeDefined();
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (error.message?.includes("NOT_AUTHENTICATED")) {
|
|
168
|
+
return; // Skip if device not available
|
|
169
|
+
}
|
|
170
|
+
throw error;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
// ===========================================================================
|
|
175
|
+
// Parameter Validation Error Messages
|
|
176
|
+
// ===========================================================================
|
|
177
|
+
describe("UPA EMV – Parameter Validation Error Messages", () => {
|
|
178
|
+
let device;
|
|
179
|
+
beforeEach(() => {
|
|
180
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
181
|
+
});
|
|
182
|
+
test("[Validation] completeEMVTransaction provides clear error message for missing quickChip", async () => {
|
|
183
|
+
device.ecrId = "13";
|
|
184
|
+
try {
|
|
185
|
+
await device.completeEMVTransaction("en", undefined, "Approved");
|
|
186
|
+
fail("Expected ArgumentError to be thrown");
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
expect(error).toBeInstanceOf(src_1.ArgumentError);
|
|
190
|
+
expect(error.message).toContain("quickChip");
|
|
191
|
+
expect(error.message).toContain("mandatory");
|
|
192
|
+
expect(error.message).toContain("UPA spec");
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
test("[Validation] completeEMVTransaction provides clear error message for missing hostDecision", async () => {
|
|
196
|
+
device.ecrId = "13";
|
|
197
|
+
try {
|
|
198
|
+
await device.completeEMVTransaction("en", { quickChip: "N" }, undefined);
|
|
199
|
+
fail("Expected ArgumentError to be thrown for missing hostDecision");
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
expect(error).toBeInstanceOf(src_1.ArgumentError);
|
|
203
|
+
expect(error.message).toContain("hostDecision");
|
|
204
|
+
expect(error.message).toContain("mandatory");
|
|
205
|
+
expect(error.message).toContain("UPA spec");
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
// ===========================================================================
|
|
210
|
+
// CompleteEMVTransaction – Integration Example (matching .NET SDK pattern)
|
|
211
|
+
// ===========================================================================
|
|
212
|
+
describe("UPA CompleteEMVTransaction – Integration Example", () => {
|
|
213
|
+
let device;
|
|
214
|
+
beforeEach(() => {
|
|
215
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
216
|
+
});
|
|
217
|
+
test("[Integration] completeEMVTransaction with HostData parameters (LIVE DEVICE REQUIRED)", async () => {
|
|
218
|
+
/**
|
|
219
|
+
* This test matches the .NET SDK test case:
|
|
220
|
+
* HostData hostData = new HostData();
|
|
221
|
+
* hostData.HostDecision = HostDecision.APPROVED;
|
|
222
|
+
* hostData.IssuerAuthData = "xxx";
|
|
223
|
+
* hostData.IssuerScripts = "aaa";
|
|
224
|
+
* var response = _device.CompleteTransaction()
|
|
225
|
+
* .WithQuickChip(false)
|
|
226
|
+
* .WithLanguage("EN")
|
|
227
|
+
* .WithHostData(hostData)
|
|
228
|
+
* .Execute();
|
|
229
|
+
*
|
|
230
|
+
* NOTE: This test requires an active UPA EMV transaction in progress on the device.
|
|
231
|
+
* It will typically be called after continueEMVTransaction() has been invoked.
|
|
232
|
+
* Only execute this test with a live MITC device configured via UPA_USE_LIVE_MIC=true.
|
|
233
|
+
*/
|
|
234
|
+
device.ecrId = "13";
|
|
235
|
+
try {
|
|
236
|
+
const response = await device.completeEMVTransaction("en", // languageCode
|
|
237
|
+
{ quickChip: "N" }, // processingIndicators (false = "N", true = "Y")
|
|
238
|
+
"Approved", // hostDecision
|
|
239
|
+
"aaa", // issuerScripts
|
|
240
|
+
"xxx");
|
|
241
|
+
expect(response).toBeDefined();
|
|
242
|
+
expect(response.deviceResponseCode).toBe("00");
|
|
243
|
+
expect(response.status).toBe("Success");
|
|
244
|
+
// EmvTags validation (cast to any to access response fields)
|
|
245
|
+
expect(response.emvTags).toBeDefined();
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
// Skip test if device not available or not authenticated
|
|
249
|
+
if (error.message?.includes("NOT_AUTHENTICATED") ||
|
|
250
|
+
error.message?.includes("device")) {
|
|
251
|
+
console.log("Skipping live device test - device not available");
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
throw error;
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
//# sourceMappingURL=UpaEMVParameterValidation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpaEMVParameterValidation.test.js","sourceRoot":"","sources":["../../../../../test/Unit/Terminals/UPA/UpaEMVParameterValidation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for UPA error response properties (AH-1362)
|
|
3
|
+
*
|
|
4
|
+
* Test Cases:
|
|
5
|
+
* TC-01: Sale Transaction Error - Full UPA Error Properties Returned
|
|
6
|
+
* TC-02: Void Transaction Error - Full UPA Error Properties Returned
|
|
7
|
+
* TC-03: Refund Transaction Error - Full UPA Error Properties Returned
|
|
8
|
+
* TC-04: Cross-Card Error Parity (MC, VISA, Amex, Discover)
|
|
9
|
+
* TC-07: Happy Path Regression - Sale / Void / Refund Still Work
|
|
10
|
+
*
|
|
11
|
+
* Story Summary:
|
|
12
|
+
* As a merchant using the NodeJS SDK, I want to receive all the response properties
|
|
13
|
+
* in an error, so that I can properly troubleshoot without support.
|
|
14
|
+
*
|
|
15
|
+
* Acceptance Criteria:
|
|
16
|
+
* AC1: Error Mapping Completeness - All UPA error response properties mapped
|
|
17
|
+
* AC2: Error Propagation to Integrator - All properties accessible in error/exception
|
|
18
|
+
* AC4: No Regression - Happy-path flows unaffected
|
|
19
|
+
* AC5: Research-First Gate - Document if already complete
|
|
20
|
+
*/
|
|
21
|
+
export {};
|