globalpayments-api 3.11.4 → 3.12.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.
Files changed (31) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/README.md +18 -0
  3. package/lib/src/Builders/AuthorizationBuilder.d.ts +0 -1
  4. package/lib/src/Builders/AuthorizationBuilder.js +0 -4
  5. package/lib/src/Builders/AuthorizationBuilder.js.map +1 -1
  6. package/lib/src/Builders/RecurringBuilder.js +12 -1
  7. package/lib/src/Builders/RecurringBuilder.js.map +1 -1
  8. package/lib/src/Terminals/Builders/TerminalAuthBuilder.d.ts +15 -4
  9. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js +33 -4
  10. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js.map +1 -1
  11. package/lib/src/Terminals/Builders/TerminalManageBuilder.js +2 -0
  12. package/lib/src/Terminals/Builders/TerminalManageBuilder.js.map +1 -1
  13. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.d.ts +4 -0
  14. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js +24 -0
  15. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js.map +1 -1
  16. package/lib/src/Terminals/UPA/UpaController.js +108 -16
  17. package/lib/src/Terminals/UPA/UpaController.js.map +1 -1
  18. package/lib/test/Integration/Gateways/GpApiConnector/GpApiMMAAccount.test.d.ts +1 -0
  19. package/lib/test/Integration/Gateways/GpApiConnector/GpApiMMAAccount.test.js +149 -0
  20. package/lib/test/Integration/Gateways/GpApiConnector/GpApiMMAAccount.test.js.map +1 -0
  21. package/lib/test/Unit/Gateways/GpApiConnector/GpApiMMAAccount.test.d.ts +1 -0
  22. package/lib/test/Unit/Gateways/GpApiConnector/GpApiMMAAccount.test.js +29 -0
  23. package/lib/test/Unit/Gateways/GpApiConnector/GpApiMMAAccount.test.js.map +1 -0
  24. package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.test.d.ts +17 -0
  25. package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.test.js +325 -0
  26. package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.test.js.map +1 -0
  27. package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js +46 -91
  28. package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js.map +1 -1
  29. package/lib/test/Unit/Terminals/UPA/UpaCredit.test.js +201 -27
  30. package/lib/test/Unit/Terminals/UPA/UpaCredit.test.js.map +1 -1
  31. package/package.json +2 -2
@@ -82,32 +82,70 @@ class UpaController extends DeviceController_1.DeviceController {
82
82
  transactionData.transaction.tranNo = builder.terminalRefNumber;
83
83
  }
84
84
  transactionData.transaction.authorizedAmount = this.formatAmount(builder.amount);
85
+ transactionData.transaction.tipAmount = this.formatAmount(builder.gratuity);
86
+ transactionData.transaction.cashBackAmount = this.formatAmount(manageBuilder.cashBackAmount);
87
+ transactionData.transaction.taxAmount = this.formatAmount(builder.taxAmount);
88
+ transactionData.transaction.invoiceNbr = builder.invoiceNumber;
89
+ transactionData.transaction.taxIndicator = builder.taxExempt;
90
+ transactionData.transaction.processCPC =
91
+ builder.processCPC !== undefined
92
+ ? builder.processCPC
93
+ ? "1"
94
+ : "0"
95
+ : undefined;
96
+ transactionData.transaction.purchaseOrder = builder.orderId;
97
+ transactionData.transaction.clerkId = manageBuilder.clerkId;
85
98
  }
86
99
  else if (transactionType === src_1.TransactionType.Delete &&
87
100
  builder.transactionModifier === src_1.TransactionModifier.DeletePreAuth) {
88
101
  transactionData.transaction.referenceNumber = builder.transactionId;
89
102
  transactionData.transaction.preAuthAmount = this.formatAmount(builder.amount);
103
+ // Add common fields
104
+ transactionData.transaction.tipAmount = this.formatAmount(builder.gratuity);
105
+ transactionData.transaction.cashBackAmount = this.formatAmount(manageBuilder.cashBackAmount);
106
+ transactionData.transaction.taxAmount = this.formatAmount(builder.taxAmount);
107
+ transactionData.transaction.invoiceNbr = builder.invoiceNumber;
108
+ transactionData.transaction.taxIndicator = builder.taxIndicator;
109
+ transactionData.transaction.processCPC =
110
+ builder.processCPC !== undefined
111
+ ? builder.processCPC
112
+ ? "1"
113
+ : "0"
114
+ : undefined;
115
+ transactionData.transaction.purchaseOrder = builder.orderId;
116
+ transactionData.transaction.clerkId = manageBuilder.clerkId;
90
117
  }
91
118
  else if (transactionType === src_1.TransactionType.Edit &&
92
119
  builder.transactionModifier === src_1.TransactionModifier.UpdateLodgingDetails) {
93
120
  transactionData.transaction.referenceNumber = builder.transactionId;
94
121
  transactionData.transaction.amount = this.formatAmount(builder.amount);
122
+ // Add common fields
123
+ transactionData.transaction.tipAmount = this.formatAmount(builder.gratuity);
124
+ transactionData.transaction.cashBackAmount = this.formatAmount(manageBuilder.cashBackAmount);
125
+ transactionData.transaction.taxAmount = this.formatAmount(builder.taxAmount);
126
+ transactionData.transaction.invoiceNbr = builder.invoiceNumber;
127
+ transactionData.transaction.taxIndicator = builder.taxIndicator;
128
+ transactionData.transaction.processCPC =
129
+ builder.processCPC !== undefined
130
+ ? builder.processCPC
131
+ ? "1"
132
+ : "0"
133
+ : undefined;
134
+ transactionData.transaction.purchaseOrder = builder.orderId;
135
+ transactionData.transaction.clerkId = manageBuilder.clerkId;
95
136
  }
96
137
  else if (transactionType === src_1.TransactionType.Refund) {
97
- // Refund should only have totalAmount and referenceNumber
98
- // authCode is NOT sent in refund requests - it's only used internally by the device
99
- transactionData.transaction.referenceNumber = builder.transactionId;
138
+ // NOTE: For refund, use terminalRefNumber (tranNo) not transactionId (gateway refNum)
139
+ transactionData.transaction.referenceNumber = builder.terminalRefNumber;
100
140
  transactionData.transaction.totalAmount = this.formatAmount(builder.amount);
141
+ transactionData.transaction.tipAmount = this.formatAmount(builder.gratuity);
142
+ transactionData.transaction.cashBackAmount = this.formatAmount(manageBuilder.cashBackAmount);
143
+ transactionData.transaction.taxAmount = this.formatAmount(builder.taxAmount);
101
144
  transactionData.transaction.invoiceNbr = builder.invoiceNumber;
102
- const refundProcessingIndicators = {};
103
- if (manageBuilder.hasSecurityCode !== undefined) {
104
- refundProcessingIndicators.securityCode = manageBuilder.hasSecurityCode
105
- ? "Y"
106
- : "N";
107
- }
108
- if (Object.keys(refundProcessingIndicators).length > 0) {
109
- transactionData.processingIndicators = refundProcessingIndicators;
110
- }
145
+ transactionData.transaction.taxIndicator = builder.taxIndicator;
146
+ // NOTE: processCPC is NOT supported for Refund (device returns ERR009)
147
+ transactionData.transaction.purchaseOrder = builder.orderId;
148
+ transactionData.transaction.clerkId = manageBuilder.clerkId;
111
149
  }
112
150
  else if (transactionType === src_1.TransactionType.Void) {
113
151
  // Per UPA spec §12.4.2.1: transaction sub-node accepts ONLY
@@ -134,6 +172,18 @@ class UpaController extends DeviceController_1.DeviceController {
134
172
  transactionData.transaction.referenceNumber = builder.transactionId;
135
173
  }
136
174
  }
175
+ else if (transactionType === src_1.TransactionType.Capture) {
176
+ // Capture requires both "amount" and "preAuthAmount" fields
177
+ transactionData.transaction.referenceNumber = builder.transactionId;
178
+ transactionData.transaction.amount = this.formatAmount(builder.amount);
179
+ transactionData.transaction.preAuthAmount = this.formatAmount(builder.amount);
180
+ transactionData.transaction.processCPC =
181
+ builder.processCPC !== undefined
182
+ ? builder.processCPC
183
+ ? "1"
184
+ : "0"
185
+ : undefined;
186
+ }
137
187
  else {
138
188
  transactionData.transaction.referenceNumber = builder.transactionId;
139
189
  transactionData.transaction.amount = isTipAdjust
@@ -141,6 +191,7 @@ class UpaController extends DeviceController_1.DeviceController {
141
191
  : this.formatAmount(builder.amount);
142
192
  transactionData.transaction.taxAmount = this.formatAmount(builder.taxAmount);
143
193
  transactionData.transaction.tipAmount = this.formatAmount(builder.gratuity);
194
+ transactionData.transaction.cashBackAmount = this.formatAmount(manageBuilder.cashBackAmount);
144
195
  transactionData.transaction.taxIndicator = builder.taxIndicator;
145
196
  transactionData.transaction.invoiceNbr = builder.invoiceNumber;
146
197
  transactionData.transaction.processCPC =
@@ -149,6 +200,8 @@ class UpaController extends DeviceController_1.DeviceController {
149
200
  ? "1"
150
201
  : "0"
151
202
  : undefined;
203
+ transactionData.transaction.purchaseOrder = builder.orderId;
204
+ transactionData.transaction.clerkId = manageBuilder.clerkId;
152
205
  }
153
206
  if (isTipAdjust) {
154
207
  transactionData.transaction.tipAmount = this.formatAmount(builder.gratuity);
@@ -193,6 +246,7 @@ class UpaController extends DeviceController_1.DeviceController {
193
246
  }
194
247
  const isDedicatedAmountCommand = transactionType === src_1.TransactionType.Reversal ||
195
248
  transactionType === src_1.TransactionType.Void ||
249
+ transactionType === src_1.TransactionType.Capture ||
196
250
  (transactionType === src_1.TransactionType.Delete &&
197
251
  builder.transactionModifier === src_1.TransactionModifier.DeletePreAuth) ||
198
252
  (transactionType === src_1.TransactionType.Edit &&
@@ -296,9 +350,7 @@ class UpaController extends DeviceController_1.DeviceController {
296
350
  if (builder.hasSecurityCode !== undefined) {
297
351
  processingIndicators.securityCode = builder.hasSecurityCode ? "Y" : "N";
298
352
  }
299
- // Only add processingIndicators for Sale, Auth, and Refund - NOT for CardVerify (Verify)
300
- if (Object.keys(processingIndicators).length > 0 &&
301
- transactionType !== src_1.TransactionType.Verify) {
353
+ if (Object.keys(processingIndicators).length > 0) {
302
354
  transactionData.processingIndicators = processingIndicators;
303
355
  }
304
356
  if (authBuilder.lodging) {
@@ -321,6 +373,18 @@ class UpaController extends DeviceController_1.DeviceController {
321
373
  // start line 412 mid
322
374
  transactionData.transaction.amount = this.formatAmount(builder.amount);
323
375
  transactionData.transaction.preAuthAmount = this.formatAmount(authBuilder.preAuthAmount);
376
+ transactionData.transaction.taxAmount = this.formatAmount(builder.taxAmount);
377
+ transactionData.transaction.taxIndicator = builder.taxExempt;
378
+ transactionData.transaction.invoiceNbr = builder.invoiceNumber;
379
+ transactionData.transaction.tipAmount = this.formatAmount(builder.gratuity);
380
+ transactionData.transaction.cashBackAmount = this.formatAmount(builder.cashBackAmount);
381
+ transactionData.transaction.processCPC =
382
+ authBuilder.processCPC !== undefined
383
+ ? authBuilder.processCPC
384
+ ? "1"
385
+ : "0"
386
+ : undefined;
387
+ transactionData.transaction.purchaseOrder = builder.orderId;
324
388
  }
325
389
  else if (transactionType === src_1.TransactionType.Sale) {
326
390
  transactionData.transaction.invoiceNbr = builder.invoiceNumber;
@@ -339,6 +403,15 @@ class UpaController extends DeviceController_1.DeviceController {
339
403
  : undefined;
340
404
  transactionData.transaction.tipAmount = this.formatAmount(builder.gratuity);
341
405
  transactionData.transaction.cashBackAmount = this.formatAmount(builder.cashBackAmount);
406
+ transactionData.transaction.taxAmount = this.formatAmount(builder.taxAmount);
407
+ transactionData.transaction.taxIndicator = builder.taxExempt;
408
+ transactionData.transaction.processCPC =
409
+ authBuilder.processCPC !== undefined
410
+ ? authBuilder.processCPC
411
+ ? "1"
412
+ : "0"
413
+ : undefined;
414
+ transactionData.transaction.purchaseOrder = builder.orderId;
342
415
  // Add lineItems if provided
343
416
  if (Array.isArray(authBuilder.lineItems) &&
344
417
  authBuilder.lineItems.length > 0) {
@@ -349,7 +422,14 @@ class UpaController extends DeviceController_1.DeviceController {
349
422
  }
350
423
  }
351
424
  else {
352
- transactionData.transaction.baseAmount = this.formatAmount(builder.amount);
425
+ // For Capture, use totalAmount instead of baseAmount
426
+ // For other types (TipAdjust, Void, Edit), use baseAmount
427
+ if (transactionType === src_1.TransactionType.Capture) {
428
+ transactionData.transaction.totalAmount = this.formatAmount(builder.amount);
429
+ }
430
+ else {
431
+ transactionData.transaction.baseAmount = this.formatAmount(builder.amount);
432
+ }
353
433
  //amount change to baseAmount for tip adjust, cash back amount is not sent for tip adjust
354
434
  transactionData.transaction.cashBackAmount = this.formatAmount(builder.cashBackAmount);
355
435
  transactionData.transaction.tipAmount = this.formatAmount(builder.gratuity);
@@ -364,10 +444,22 @@ class UpaController extends DeviceController_1.DeviceController {
364
444
  transactionData.transaction.taxAmount = this.formatAmount(builder.taxAmount);
365
445
  }
366
446
  transactionData.transaction.referenceNumber = builder.terminalRefNumber;
447
+ transactionData.transaction.shippingAmount = this.formatAmount(authBuilder.shippingAmount);
448
+ // Use direct taxIndicator if set, otherwise use taxExempt
449
+ if (authBuilder.taxIndicator !== undefined) {
450
+ transactionData.transaction.taxIndicator = authBuilder.taxIndicator;
451
+ }
452
+ else if (transactionType !== src_1.TransactionType.Auth &&
453
+ builder.taxExempt !== undefined) {
454
+ transactionData.transaction.taxIndicator = builder.taxExempt;
455
+ }
367
456
  transactionData.transaction.prescriptionAmount = this.formatAmount(authBuilder.prescriptionAmount);
368
457
  transactionData.transaction.clinicAmount = this.formatAmount(authBuilder.clinicAmount);
369
458
  transactionData.transaction.dentalAmount = this.formatAmount(authBuilder.dentalAmount);
370
459
  transactionData.transaction.visionOpticalAmount = this.formatAmount(authBuilder.visionOpticalAmount);
460
+ transactionData.transaction.surchargeAmount = this.formatAmount(authBuilder.surchargeAmount);
461
+ transactionData.transaction.confirmationAmount =
462
+ authBuilder.confirmAmount;
371
463
  transactionData.transaction.cardAcquisition = authBuilder.cardAcquisition;
372
464
  if (authBuilder.transactionDate) {
373
465
  transactionData.transaction.tranDate =
@@ -1 +1 @@
1
- {"version":3,"file":"UpaController.js","sourceRoot":"","sources":["../../../../src/Terminals/UPA/UpaController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpaController.js","sourceRoot":"","sources":["../../../../src/Terminals/UPA/UpaController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const src_1 = require("../../../../src");
4
+ const BaseGpApiTestConfig_1 = require("../../../Data/BaseGpApiTestConfig");
5
+ const defaultConfigName = "default";
6
+ const merchantConfigName = "merchant-sale";
7
+ const mmaConfigName = "mma-account-merchant-sale";
8
+ const merchantScopedAppId = "wuqol13QQJu0vcjbdN9892cl5IcyJgPU";
9
+ const merchantScopedAppKey = "jdOJNxsGbE0nLeTx";
10
+ const merchantScopedMerchantId = "MER_3abc0724f49c40e59a61309ae6d37dfd";
11
+ const partnerAppId = "ju9LDqNIxUgY2NeQPgwqc0fLbq3AcJCL";
12
+ const partnerAppKey = "KYYh3YJwyfzqjWNa";
13
+ const merchantManagementAccountID = "MMA_344aebc638864d7381909dcf78d4c760";
14
+ const mmaMerchantId = "MER_6517954c0c8544feb3f74c825e2b032c";
15
+ const requestEndpoints = [];
16
+ const requestLogger = {
17
+ requestSent: (_verb, endpoint) => {
18
+ requestEndpoints.push(endpoint);
19
+ },
20
+ responseReceived: async () => undefined,
21
+ responseError: async () => undefined,
22
+ };
23
+ const createCard = (cardPresent = false) => {
24
+ const card = new src_1.CreditCardData();
25
+ card.number = "5425230000004415";
26
+ card.expMonth = "12";
27
+ card.expYear = "2027";
28
+ card.cvn = "123";
29
+ card.cardPresent = cardPresent;
30
+ return card;
31
+ };
32
+ const createConfig = (appId, appKey, channel) => {
33
+ const config = new src_1.GpApiConfig();
34
+ config.appId = appId;
35
+ config.appKey = appKey;
36
+ config.channel = channel;
37
+ config.country = "US";
38
+ config.environment = src_1.Environment.Test;
39
+ config.accessTokenInfo = new src_1.AccessTokenInfo();
40
+ config.accessTokenInfo.transactionProcessingAccountName =
41
+ "transaction_processing";
42
+ config.accessTokenInfo.riskAssessmentAccountName = "EOS_RiskAssessment";
43
+ config.challengeNotificationUrl = "https://ensi808o85za.x.pipedream.net/";
44
+ config.methodNotificationUrl = "https://ensi808o85za.x.pipedream.net/";
45
+ config.merchantContactUrl = "https://ensi808o85za.x.pipedream.net/";
46
+ config.requestLogger = requestLogger;
47
+ return config;
48
+ };
49
+ describe("GP-API MMA account routing", () => {
50
+ beforeEach(() => {
51
+ requestEndpoints.length = 0;
52
+ src_1.ServicesContainer.removeConfiguration(defaultConfigName);
53
+ src_1.ServicesContainer.removeConfiguration(merchantConfigName);
54
+ src_1.ServicesContainer.removeConfiguration(mmaConfigName);
55
+ src_1.ServicesContainer.configureService(BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent), defaultConfigName);
56
+ const merchantConfig = createConfig(merchantScopedAppId, merchantScopedAppKey, src_1.Channel.CardPresent);
57
+ merchantConfig.merchantId = merchantScopedMerchantId;
58
+ merchantConfig.accessTokenInfo.transactionProcessingAccountName =
59
+ "test_account_CungkardAk";
60
+ src_1.ServicesContainer.configureService(merchantConfig, merchantConfigName);
61
+ const mmaConfig = createConfig(partnerAppId, partnerAppKey, src_1.Channel.CardNotPresent);
62
+ mmaConfig.merchantId = mmaMerchantId;
63
+ mmaConfig.merchantManagementAccountID = merchantManagementAccountID;
64
+ src_1.ServicesContainer.configureService(mmaConfig, mmaConfigName);
65
+ });
66
+ afterAll(() => {
67
+ src_1.ServicesContainer.removeConfiguration(defaultConfigName);
68
+ src_1.ServicesContainer.removeConfiguration(merchantConfigName);
69
+ src_1.ServicesContainer.removeConfiguration(mmaConfigName);
70
+ });
71
+ test("charges through the MMA merchant transactions endpoint", async () => {
72
+ const response = await createCard()
73
+ .charge(1.01)
74
+ .withCurrency("USD")
75
+ .execute(mmaConfigName);
76
+ expect(response).toBeTruthy();
77
+ expect(response.responseCode).toBe("SUCCESS");
78
+ });
79
+ test("charges through the existing merchant transactions endpoint", async () => {
80
+ const response = await createCard(true)
81
+ .charge(1.01)
82
+ .withCurrency("GBP")
83
+ .execute(merchantConfigName);
84
+ expect(response).toBeTruthy();
85
+ expect(response.responseCode).toBe("SUCCESS");
86
+ });
87
+ test("charges through the default transactions endpoint", async () => {
88
+ const response = await createCard()
89
+ .charge(1.01)
90
+ .withCurrency("GBP")
91
+ .execute(defaultConfigName);
92
+ expect(response).toBeTruthy();
93
+ expect(response.responseCode).toBe("SUCCESS");
94
+ });
95
+ test("captures through the MMA merchant endpoint", async () => {
96
+ const authorization = await createCard()
97
+ .authorize(1.01)
98
+ .withCurrency("USD")
99
+ .execute(mmaConfigName);
100
+ const response = await authorization.capture(1.01).execute(mmaConfigName);
101
+ expect(response).toBeTruthy();
102
+ });
103
+ test("reports a transaction through the MMA merchant endpoint", async () => {
104
+ const authorization = await createCard()
105
+ .authorize(1.01)
106
+ .withCurrency("USD")
107
+ .execute(mmaConfigName);
108
+ try {
109
+ const response = await src_1.ReportingService.transactionDetail(authorization.transactionId).execute(mmaConfigName);
110
+ expect(response.transactionId).toBe(authorization.transactionId);
111
+ }
112
+ catch (error) {
113
+ expect(error).toBeInstanceOf(src_1.GatewayError);
114
+ }
115
+ expect(requestEndpoints.some((endpoint) => endpoint.startsWith(`https://apis.sandbox.globalpay.com/ucp/accounts/${merchantManagementAccountID}/merchants/${mmaMerchantId}/transactions/${authorization.transactionId}`))).toBe(true);
116
+ });
117
+ test("checks 3DS enrollment through the MMA merchant endpoint", async () => {
118
+ const card = createCard();
119
+ card.number = "4263970000005262";
120
+ card.cardHolderName = "James Mason";
121
+ const response = await src_1.Secure3dService.checkEnrollment(card)
122
+ .withAmount(1.01)
123
+ .withCurrency("USD")
124
+ .execute(mmaConfigName);
125
+ expect(response).toBeTruthy();
126
+ expect(requestEndpoints.some((endpoint) => endpoint.includes(`/accounts/${merchantManagementAccountID}/merchants/${mmaMerchantId}/authentications`))).toBe(true);
127
+ });
128
+ test("rejects an MMA merchant that is not associated with the account", async () => {
129
+ const invalidConfig = createConfig(partnerAppId, partnerAppKey, src_1.Channel.CardNotPresent);
130
+ invalidConfig.merchantManagementAccountID = merchantManagementAccountID;
131
+ invalidConfig.merchantId = "MER_20c2b3fcfedd484e9c3723347db46b71";
132
+ src_1.ServicesContainer.configureService(invalidConfig, "invalid-mma-merchant");
133
+ await expect(createCard()
134
+ .charge(1.01)
135
+ .withCurrency("USD")
136
+ .execute("invalid-mma-merchant")).rejects.toBeInstanceOf(src_1.GatewayError);
137
+ src_1.ServicesContainer.removeConfiguration("invalid-mma-merchant");
138
+ });
139
+ test("rejects a merchant-scoped request without currency", async () => {
140
+ await expect(createCard(true).charge(1.01).execute(merchantConfigName)).rejects.toBeInstanceOf(src_1.GatewayError);
141
+ });
142
+ test("rejects an MMA merchant-scoped request without currency", async () => {
143
+ await expect(createCard().charge(1.01).execute(mmaConfigName)).rejects.toBeInstanceOf(src_1.GatewayError);
144
+ });
145
+ test("rejects a default request without currency", async () => {
146
+ await expect(createCard().charge(1.01).execute(defaultConfigName)).rejects.toBeInstanceOf(src_1.GatewayError);
147
+ });
148
+ });
149
+ //# sourceMappingURL=GpApiMMAAccount.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GpApiMMAAccount.test.js","sourceRoot":"","sources":["../../../../../test/Integration/Gateways/GpApiConnector/GpApiMMAAccount.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const GpApiRequest_1 = require("../../../../src/Entities/GpApi/GpApiRequest");
4
+ const merchantId = "MER_6517954c0c8544feb3f74c825e2b032c";
5
+ const merchantManagementAccountID = "MMA_344aebc638864d7381909dcf78d4c760";
6
+ describe("GP-API MMA account routing", () => {
7
+ test("leaves the default transaction route unscoped", () => {
8
+ expect(GpApiRequest_1.GpApiRequest.getMerchantUrl({})).toBe("");
9
+ });
10
+ test("routes merchant-scoped requests through the configured merchant", () => {
11
+ const config = { merchantId };
12
+ expect(GpApiRequest_1.GpApiRequest.getMerchantUrl(config)).toBe(`/merchants/${merchantId}`);
13
+ });
14
+ test("routes merchant-scoped requests through the configured MMA", () => {
15
+ const config = {
16
+ merchantId,
17
+ merchantManagementAccountID,
18
+ };
19
+ expect(GpApiRequest_1.GpApiRequest.getMerchantUrl(config)).toBe(`/accounts/${merchantManagementAccountID}/merchants/${merchantId}`);
20
+ });
21
+ test("uses the supplied merchant id for an MMA-scoped override", () => {
22
+ const config = { merchantManagementAccountID };
23
+ expect(GpApiRequest_1.GpApiRequest.getMerchantUrl(config, merchantId)).toBe(`/accounts/${merchantManagementAccountID}/merchants/${merchantId}`);
24
+ });
25
+ test("does not scope access-token requests", () => {
26
+ expect(GpApiRequest_1.GpApiRequest.ACCESS_TOKEN_ENDPOINT).toBe("/accesstoken");
27
+ });
28
+ });
29
+ //# sourceMappingURL=GpApiMMAAccount.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GpApiMMAAccount.test.js","sourceRoot":"","sources":["../../../../../test/Unit/Gateways/GpApiConnector/GpApiMMAAccount.test.ts"],"names":[],"mappings":";;AAAA,8EAA2E;AAE3E,MAAM,UAAU,GAAG,sCAAsC,CAAC;AAC1D,MAAM,2BAA2B,GAAG,sCAAsC,CAAC;AAE3E,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,2BAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,CAAC;QAE9B,MAAM,CAAC,2BAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAC9C,cAAc,UAAU,EAAE,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG;YACb,UAAU;YACV,2BAA2B;SAC5B,CAAC;QAEF,MAAM,CAAC,2BAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAC9C,aAAa,2BAA2B,cAAc,UAAU,EAAE,CACnE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACpE,MAAM,MAAM,GAAG,EAAE,2BAA2B,EAAE,CAAC;QAE/C,MAAM,CAAC,2BAAY,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAC1D,aAAa,2BAA2B,cAAc,UAAU,EAAE,CACnE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,2BAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Unit tests for TerminalAuthBuilder and TerminalManageBuilder
3
+ * Testing newly added properties and builder methods for UPA parity with .NET SDK
4
+ *
5
+ * Properties added to TerminalAuthBuilder:
6
+ * - clerkId
7
+ * - prescriptionAmount
8
+ * - clinicAmount
9
+ * - dentalAmount
10
+ * - visionOpticalAmount
11
+ * - confirmAmount
12
+ * - surchargeAmount
13
+ *
14
+ * Properties added to TerminalManageBuilder:
15
+ * - clerkId
16
+ */
17
+ export {};