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.
Files changed (98) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/lib/src/Entities/Address.d.ts +1 -0
  3. package/lib/src/Entities/Address.js +1 -0
  4. package/lib/src/Entities/Address.js.map +1 -1
  5. package/lib/src/Entities/Enums/AcquisitionType.d.ts +2 -1
  6. package/lib/src/Entities/Enums/AcquisitionType.js +1 -0
  7. package/lib/src/Entities/Enums/AcquisitionType.js.map +1 -1
  8. package/lib/src/Entities/Errors.d.ts +7 -1
  9. package/lib/src/Entities/Errors.js +30 -1
  10. package/lib/src/Entities/Errors.js.map +1 -1
  11. package/lib/src/Entities/TransactionSummary.d.ts +5 -0
  12. package/lib/src/Entities/TransactionSummary.js +5 -0
  13. package/lib/src/Entities/TransactionSummary.js.map +1 -1
  14. package/lib/src/Terminals/Abstractions/IDeviceResponse.d.ts +48 -0
  15. package/lib/src/Terminals/Builders/TerminalAuthBuilder.d.ts +15 -0
  16. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js +29 -2
  17. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js.map +1 -1
  18. package/lib/src/Terminals/Builders/TerminalBuilder.d.ts +3 -3
  19. package/lib/src/Terminals/Builders/TerminalBuilder.js.map +1 -1
  20. package/lib/src/Terminals/Builders/TerminalManageBuilder.d.ts +3 -0
  21. package/lib/src/Terminals/Builders/TerminalManageBuilder.js +6 -0
  22. package/lib/src/Terminals/Builders/TerminalManageBuilder.js.map +1 -1
  23. package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.d.ts +9 -1
  24. package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.js +22 -2
  25. package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.js.map +1 -1
  26. package/lib/src/Terminals/UPA/Reponses/SafReportResponse.js +9 -0
  27. package/lib/src/Terminals/UPA/Reponses/SafReportResponse.js.map +1 -1
  28. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.d.ts +3 -0
  29. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js +30 -0
  30. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js.map +1 -1
  31. package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.d.ts +21 -1
  32. package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.js +29 -0
  33. package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.js.map +1 -1
  34. package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.js +5 -7
  35. package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.js.map +1 -1
  36. package/lib/src/Terminals/UPA/UpaController.js +43 -7
  37. package/lib/src/Terminals/UPA/UpaController.js.map +1 -1
  38. package/lib/src/Terminals/UPA/UpaInterface.d.ts +1 -1
  39. package/lib/src/Terminals/UPA/UpaInterface.js +4 -2
  40. package/lib/src/Terminals/UPA/UpaInterface.js.map +1 -1
  41. package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.d.ts +17 -0
  42. package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.js +325 -0
  43. package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.js.map +1 -0
  44. package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/BatchList.test.js +2 -3
  45. package/lib/test/Unit/Terminals/UPA/Responses/BatchList.test.js.map +1 -0
  46. package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/BatchReportResponse.test.js +3 -3
  47. package/lib/test/Unit/Terminals/UPA/Responses/BatchReportResponse.test.js.map +1 -0
  48. package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/OpenTabDetailsResponse.test.js +2 -2
  49. package/lib/test/Unit/Terminals/UPA/Responses/OpenTabDetailsResponse.test.js.map +1 -0
  50. package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/SafReportResponse.test.js +2 -2
  51. package/lib/test/Unit/Terminals/UPA/Responses/SafReportResponse.test.js.map +1 -0
  52. package/lib/test/Unit/Terminals/UPA/Responses/UpaEODResponse.test.js +59 -0
  53. package/lib/test/Unit/Terminals/UPA/Responses/UpaEODResponse.test.js.map +1 -0
  54. package/lib/test/Unit/Terminals/UPA/Responses/UpaSAFResponse.test.js.map +1 -0
  55. package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js +195 -3
  56. package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js.map +1 -1
  57. package/lib/test/Unit/Terminals/UPA/UpaCredit.test.js +147 -31
  58. package/lib/test/Unit/Terminals/UPA/UpaCredit.test.js.map +1 -1
  59. package/lib/test/Unit/Terminals/UPA/UpaEMVParameterValidation.test.d.ts +7 -0
  60. package/lib/test/Unit/Terminals/UPA/UpaEMVParameterValidation.test.js +258 -0
  61. package/lib/test/Unit/Terminals/UPA/UpaEMVParameterValidation.test.js.map +1 -0
  62. package/lib/test/Unit/Terminals/UPA/UpaErrorResponse.test.d.ts +21 -0
  63. package/lib/test/Unit/Terminals/UPA/UpaErrorResponse.test.js +533 -0
  64. package/lib/test/Unit/Terminals/UPA/UpaErrorResponse.test.js.map +1 -0
  65. package/lib/test/Unit/Terminals/UPA/UpaHelpertest.js +1 -1
  66. package/lib/test/Unit/Terminals/UPA/UpaJiraStoryValidation.test.d.ts +26 -0
  67. package/lib/test/Unit/Terminals/UPA/UpaJiraStoryValidation.test.js +389 -0
  68. package/lib/test/Unit/Terminals/UPA/UpaJiraStoryValidation.test.js.map +1 -0
  69. package/lib/test/Unit/Terminals/UPA/UpaLanguageCode.test.d.ts +18 -0
  70. package/lib/test/Unit/Terminals/UPA/UpaLanguageCode.test.js +314 -0
  71. package/lib/test/Unit/Terminals/UPA/UpaLanguageCode.test.js.map +1 -0
  72. package/package.json +1 -1
  73. package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.d.ts +0 -1
  74. package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.js +0 -147
  75. package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.js.map +0 -1
  76. package/lib/test/Unit/Terminals/UPA/Reponses/BatchList.test.js.map +0 -1
  77. package/lib/test/Unit/Terminals/UPA/Reponses/BatchReportResponse.test.js.map +0 -1
  78. package/lib/test/Unit/Terminals/UPA/Reponses/OpenTabDetailsResponse.test.js.map +0 -1
  79. package/lib/test/Unit/Terminals/UPA/Reponses/SafReportResponse.test.js.map +0 -1
  80. package/lib/test/Unit/Terminals/UPA/Reponses/UpaEODResponse.test.js +0 -108
  81. package/lib/test/Unit/Terminals/UPA/Reponses/UpaEODResponse.test.js.map +0 -1
  82. package/lib/test/Unit/Terminals/UPA/Reponses/UpaSAFResponse.test.js.map +0 -1
  83. package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.d.ts +0 -1
  84. package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.js +0 -250
  85. package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.js.map +0 -1
  86. package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.d.ts +0 -1
  87. package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.js +0 -1277
  88. package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.js.map +0 -1
  89. package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.d.ts +0 -1
  90. package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.js +0 -411
  91. package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.js.map +0 -1
  92. /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/BatchList.test.d.ts +0 -0
  93. /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/BatchReportResponse.test.d.ts +0 -0
  94. /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/OpenTabDetailsResponse.test.d.ts +0 -0
  95. /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/SafReportResponse.test.d.ts +0 -0
  96. /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/UpaEODResponse.test.d.ts +0 -0
  97. /package/lib/test/Unit/Terminals/UPA/{Reponses → Responses}/UpaSAFResponse.test.d.ts +0 -0
  98. /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, sale() with auth-time lodging,
6
- * updateLodginDetail()
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
- throw error;
248
- }
249
- expect(response).toBeInstanceOf(src_1.TransactionResponse);
250
- if (response.deviceResponseCode === "LDG001") {
251
- expect(response.status).toBe("Failed");
252
- // Device firmware may return "DECLINED" instead of "TRANSACTION CANCELED"
253
- // LDG001 error code is authoritative
254
- const responseText = response.deviceResponseText.toUpperCase();
255
- const isValidMessage = responseText.includes("TRANSACTION CANCELED") ||
256
- responseText.includes("DECLINED") ||
257
- responseText.includes("INVALID AMOUNT");
258
- expect(isValidMessage).toBe(true);
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
- console.warn(`updateLodginDetail() LDG001 scenario surfaced as ${response.deviceResponseCode} (${response.deviceResponseText}) on the current device firmware. Per UPA doc an invalid amount must surface LDG001.`);
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
- throw error;
316
+ caught = error;
305
317
  }
306
- expect(response).toBeInstanceOf(src_1.TransactionResponse);
307
- if (response.deviceResponseCode === "APP013") {
308
- expect(response.status).toBe("Failed");
309
- expect(response.deviceResponseText.toUpperCase()).toContain("BATTERY LEVEL TOO LOW");
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
- 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.`);
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
- throw error;
411
+ caught = error;
393
412
  }
394
413
  finally {
395
414
  controller.formatAmount = originalFormatAmount;
396
415
  }
397
- expect(response).toBeInstanceOf(src_1.TransactionResponse);
398
- console.log(`[UpaCreditTests:471] ERR010 live response — code="${response.deviceResponseCode}" status="${response.status}" text="${response.deviceResponseText}"`);
399
- if (response.deviceResponseCode === "ERR010") {
400
- expect(response.status).toBe("Failed");
401
- expect(response.deviceResponseText.toUpperCase()).toContain("INVALID LENGTH");
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 (response.status === "Failed") {
405
- console.warn(`updateLodginDetail() ERR010 scenario surfaced as ${response.deviceResponseCode} (${response.deviceResponseText}) on the current device firmware. Per UPA doc the malformed-amount rejection is ERR010 INVALID LENGTH.`);
406
- return;
425
+ if (caught) {
426
+ throw caught;
407
427
  }
408
- 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.`);
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,7 @@
1
+ /**
2
+ * Unit tests for UPA EMV command parameter validation.
3
+ *
4
+ * Validates mandatory and optional parameters per UPA Integrators Guide 02.20.02.B
5
+ * Ensures proper error handling for missing required parameters.
6
+ */
7
+ export {};
@@ -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 {};