globalpayments-api 3.10.12 → 3.10.14

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 (52) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/lib/src/Builders/AuthorizationBuilder.d.ts +8 -0
  3. package/lib/src/Builders/AuthorizationBuilder.js +16 -0
  4. package/lib/src/Builders/AuthorizationBuilder.js.map +1 -1
  5. package/lib/src/Builders/ManagementBuilder.d.ts +10 -0
  6. package/lib/src/Builders/ManagementBuilder.js +24 -0
  7. package/lib/src/Builders/ManagementBuilder.js.map +1 -1
  8. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js +21 -0
  9. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js.map +1 -1
  10. package/lib/src/Entities/Enums.d.ts +1 -1
  11. package/lib/src/Entities/Enums.js +1 -1
  12. package/lib/src/Gateways/GpApiConnector.d.ts +0 -6
  13. package/lib/src/Gateways/GpApiConnector.js +1 -38
  14. package/lib/src/Gateways/GpApiConnector.js.map +1 -1
  15. package/lib/src/Gateways/PorticoConnector.d.ts +1 -1
  16. package/lib/src/Gateways/PorticoConnector.js +8 -4
  17. package/lib/src/Gateways/PorticoConnector.js.map +1 -1
  18. package/lib/src/Terminals/Builders/TerminalAuthBuilder.d.ts +1 -1
  19. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js +11 -18
  20. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js.map +1 -1
  21. package/lib/src/Terminals/Builders/TerminalManageBuilder.d.ts +1 -0
  22. package/lib/src/Terminals/Builders/TerminalManageBuilder.js +4 -0
  23. package/lib/src/Terminals/Builders/TerminalManageBuilder.js.map +1 -1
  24. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js +9 -2
  25. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js.map +1 -1
  26. package/lib/src/Terminals/UPA/UpaController.d.ts +1 -1
  27. package/lib/src/Terminals/UPA/UpaController.js +22 -21
  28. package/lib/src/Terminals/UPA/UpaController.js.map +1 -1
  29. package/lib/src/Utils/SdkVersion.d.ts +1 -0
  30. package/lib/src/Utils/SdkVersion.js +48 -0
  31. package/lib/src/Utils/SdkVersion.js.map +1 -0
  32. package/lib/src/Utils/index.d.ts +1 -0
  33. package/lib/src/Utils/index.js +1 -0
  34. package/lib/src/Utils/index.js.map +1 -1
  35. package/lib/test/Integration/Gateways/CI/gpapi/GpApiTransactionsTests.test.d.ts +1 -0
  36. package/lib/test/Integration/Gateways/CI/gpapi/GpApiTransactionsTests.test.js +69 -0
  37. package/lib/test/Integration/Gateways/CI/gpapi/GpApiTransactionsTests.test.js.map +1 -0
  38. package/lib/test/Integration/Gateways/CI/portico/PorticoCreditTests.test.d.ts +1 -0
  39. package/lib/test/Integration/Gateways/CI/portico/PorticoCreditTests.test.js +111 -0
  40. package/lib/test/Integration/Gateways/CI/portico/PorticoCreditTests.test.js.map +1 -0
  41. package/lib/test/Integration/Gateways/CI/upa_mitc/UpaFunctionalityTests.test.d.ts +1 -0
  42. package/lib/test/Integration/Gateways/CI/upa_mitc/UpaFunctionalityTests.test.js +84 -0
  43. package/lib/test/Integration/Gateways/CI/upa_mitc/UpaFunctionalityTests.test.js.map +1 -0
  44. package/lib/test/Integration/Gateways/GpApiConnector/VisaAft.test.d.ts +1 -0
  45. package/lib/test/Integration/Gateways/GpApiConnector/VisaAft.test.js +168 -0
  46. package/lib/test/Integration/Gateways/GpApiConnector/VisaAft.test.js.map +1 -0
  47. package/lib/test/Integration/Gateways/PorticoConnector/Credit.test.js +150 -3
  48. package/lib/test/Integration/Gateways/PorticoConnector/Credit.test.js.map +1 -1
  49. package/lib/test/Utils/CiTestingHarness.d.ts +43 -0
  50. package/lib/test/Utils/CiTestingHarness.js +211 -0
  51. package/lib/test/Utils/CiTestingHarness.js.map +1 -0
  52. package/package.json +1 -1
@@ -3,4 +3,5 @@ export * from "./CountryUtils";
3
3
  export * from "./GenerationUtils";
4
4
  export * from "./IRawRequestBuilder";
5
5
  export * from "./Logging";
6
+ export * from "./SdkVersion";
6
7
  export * from "./StringUtils";
@@ -19,5 +19,6 @@ __exportStar(require("./CountryUtils"), exports);
19
19
  __exportStar(require("./GenerationUtils"), exports);
20
20
  __exportStar(require("./IRawRequestBuilder"), exports);
21
21
  __exportStar(require("./Logging"), exports);
22
+ __exportStar(require("./SdkVersion"), exports);
22
23
  __exportStar(require("./StringUtils"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B;AAC/B,oDAAkC;AAClC,uDAAqC;AACrC,4CAA0B;AAC1B,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B;AAC/B,oDAAkC;AAClC,uDAAqC;AACrC,4CAA0B;AAC1B,+CAA6B;AAC7B,gDAA8B"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const src_1 = require("../../../../../src");
4
+ const CiTestingHarness_1 = require("../../../../Utils/CiTestingHarness");
5
+ const APP_ID = "4gPqnGBkppGYvoE5UX9EWQlotTxGUDbs";
6
+ const APP_KEY = "FQyJA5VuEQfcji2M";
7
+ const ciTestingHarness = new CiTestingHarness_1.CiTestingHarness("https://apis.sandbox.globalpay.com/ucp", CiTestingHarness_1.CacheMode.Locked, "GpApiTransactionsTests");
8
+ const currentTime = ciTestingHarness.getCurrentTime();
9
+ const expMonth = (currentTime.getMonth() + 1).toString();
10
+ const expYear = (currentTime.getFullYear() + 1).toString();
11
+ const card = new src_1.CreditCardData();
12
+ card.number = "4263970000005262";
13
+ card.expMonth = expMonth;
14
+ card.expYear = expYear;
15
+ card.cvn = "123";
16
+ card.cardPresent = true;
17
+ const amount = "2.02";
18
+ const currency = "USD";
19
+ function gpApiSetup(appId, appKey, channel) {
20
+ const config = new src_1.GpApiConfig();
21
+ config.appId = appId;
22
+ config.appKey = appKey;
23
+ config.channel = channel;
24
+ config.challengeNotificationUrl = "https://ensi808o85za.x.pipedream.net/";
25
+ config.methodNotificationUrl = "https://ensi808o85za.x.pipedream.net/";
26
+ config.merchantContactUrl = "https://enp4qhvjseljg.x.pipedream.net/";
27
+ const accessTokenInfo = new src_1.AccessTokenInfo();
28
+ accessTokenInfo.transactionProcessingAccountName = "transaction_processing";
29
+ accessTokenInfo.riskAssessmentAccountName = "EOS_RiskAssessment";
30
+ config.accessTokenInfo = accessTokenInfo;
31
+ return config;
32
+ }
33
+ function configureGpApiService() {
34
+ const config = gpApiSetup(APP_ID, APP_KEY, src_1.Channel.CardNotPresent);
35
+ config.serviceUrl = ciTestingHarness.getTestingUrl();
36
+ src_1.ServicesContainer.configureService(config);
37
+ ciTestingHarness.reset();
38
+ }
39
+ function assertTransactionResponse(transaction, transactionStatus) {
40
+ expect(transaction).toBeTruthy();
41
+ expect(["00", "SUCCESS"]).toContain(transaction.responseCode);
42
+ expect(transaction.responseMessage).toBe(transactionStatus);
43
+ }
44
+ test("postCapture", async () => {
45
+ ciTestingHarness.setFunction("GP-API|Transactions|POST Capture");
46
+ configureGpApiService();
47
+ const transaction = await card
48
+ .authorize(amount)
49
+ .withCurrency(currency)
50
+ .withClientTransactionId(ciTestingHarness.generateRandomId("postCapture_auth"))
51
+ .execute();
52
+ assertTransactionResponse(transaction, src_1.TransactionStatus.PREAUTHORIZED);
53
+ const capture = await transaction
54
+ .capture(amount)
55
+ .withClientTransactionId(ciTestingHarness.generateRandomId("postCapture_capture"))
56
+ .execute();
57
+ assertTransactionResponse(capture, src_1.TransactionStatus.CAPTURED);
58
+ });
59
+ test("postCharge", async () => {
60
+ ciTestingHarness.setFunction("GP-API|Transactions|POST Create");
61
+ configureGpApiService();
62
+ const transaction = await card
63
+ .charge(amount)
64
+ .withCurrency(currency)
65
+ .withClientTransactionId(ciTestingHarness.generateRandomId("postCreate"))
66
+ .execute();
67
+ assertTransactionResponse(transaction, src_1.TransactionStatus.CAPTURED);
68
+ });
69
+ //# sourceMappingURL=GpApiTransactionsTests.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GpApiTransactionsTests.test.js","sourceRoot":"","sources":["../../../../../../test/Integration/Gateways/CI/gpapi/GpApiTransactionsTests.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const src_1 = require("../../../../../src");
4
+ const CiTestingHarness_1 = require("../../../../Utils/CiTestingHarness");
5
+ const ciTestingHarness = new CiTestingHarness_1.CiTestingHarness("https://cert.api2.heartlandportico.com", CiTestingHarness_1.CacheMode.Locked, "PorticoCreditTests");
6
+ const card = new src_1.CreditCardData();
7
+ card.number = "4111111111111111";
8
+ card.expMonth = "12";
9
+ card.expYear = "2025";
10
+ card.cvn = "123";
11
+ const track = new src_1.CreditTrackData();
12
+ track.value =
13
+ "<E1050711%B4012001000000016^VI TEST CREDIT^251200000000000000000000?|LO04K0WFOmdkDz0um+GwUkILL8ZZOP6Zc4rCpZ9+kg2T3JBT4AEOilWTI|+++++++Dbbn04ekG|11;4012001000000016=25120000000000000000?|1u2F/aEhbdoPixyAPGyIDv3gBfF|+++++++Dbbn04ekG|00|||/wECAQECAoFGAgEH2wYcShV78RZwb3NAc2VjdXJlZXhjaGFuZ2UubmV0PX50qfj4dt0lu9oFBESQQNkpoxEVpCW3ZKmoIV3T93zphPS3XKP4+DiVlM8VIOOmAuRrpzxNi0TN/DWXWSjUC8m/PI2dACGdl/hVJ/imfqIs68wYDnp8j0ZfgvM26MlnDbTVRrSx68Nzj2QAgpBCHcaBb/FZm9T7pfMr2Mlh2YcAt6gGG1i2bJgiEJn8IiSDX5M2ybzqRT86PCbKle/XCTwFFe1X|>;";
14
+ track.encryptionData = src_1.EncryptionData.version1();
15
+ const commercialData = new src_1.CommercialData(src_1.TaxType.SalesTax, src_1.TransactionModifier.LevelIII);
16
+ commercialData.poNumber = "9876543210";
17
+ commercialData.taxAmount = "10";
18
+ commercialData.destinationPostalCode = "85212";
19
+ commercialData.destinationCountryCode = "USA";
20
+ commercialData.originPostalCode = "22193";
21
+ commercialData.summaryCommodityCode = "SSC";
22
+ commercialData.customerReferenceId = "UVATREF162";
23
+ commercialData.orderDate = ciTestingHarness.getCurrentTime();
24
+ commercialData.freightAmount = "10";
25
+ commercialData.dutyAmount = "10";
26
+ const ad = new src_1.AdditionalTaxDetails();
27
+ ad.taxAmount = "10";
28
+ ad.taxRate = "10";
29
+ commercialData.additionalTaxDetails = ad;
30
+ const commercialLineItem = new src_1.CommercialLineItem();
31
+ commercialLineItem.description = "PRODUCT 1 NOTES";
32
+ commercialLineItem.productCode = "PRDCD1";
33
+ commercialLineItem.unitCost = "0.01";
34
+ commercialLineItem.quantity = "1";
35
+ commercialLineItem.unitOfMeasure = "METER";
36
+ commercialLineItem.totalAmount = "10";
37
+ const discountDetails = new src_1.DiscountDetails();
38
+ discountDetails.discountAmount = "1";
39
+ commercialLineItem.discountDetails = discountDetails;
40
+ commercialData.addLineItems(commercialLineItem);
41
+ function configurePorticoService() {
42
+ const config = new src_1.PorticoConfig();
43
+ config.secretApiKey = "skapi_cert_MTeSAQAfG1UA9qQDrzl-kz4toXvARyieptFwSKP24w";
44
+ config.developerId = "002914";
45
+ config.versionNumber = "3026";
46
+ config.serviceUrl = ciTestingHarness.getTestingUrl();
47
+ src_1.ServicesContainer.configureService(config);
48
+ ciTestingHarness.reset();
49
+ }
50
+ test("creditSale", async () => {
51
+ ciTestingHarness.setFunction("Portico|Credit Transactions|CreditSale");
52
+ configurePorticoService();
53
+ const clientTxnID = ciTestingHarness.generateRandomId("creditSale");
54
+ const response = await card
55
+ .charge("15.5")
56
+ .withCurrency("USD")
57
+ .withClientTransactionId(clientTxnID)
58
+ .withAllowDuplicates(true)
59
+ .execute();
60
+ expect(response).toBeTruthy();
61
+ expect(response.responseCode).toBe("00");
62
+ expect(response.clientTransactionId).toBe(clientTxnID);
63
+ });
64
+ test("creditTxnEdit", async () => {
65
+ ciTestingHarness.setFunction("Portico|Credit Transactions|CreditTxnEdit - aka Gratuity");
66
+ configurePorticoService();
67
+ const clientTxnID = ciTestingHarness.generateRandomId("creditTxnEdit_charge");
68
+ const chargeResponse = await card
69
+ .charge("15")
70
+ .withCurrency("USD")
71
+ .withClientTransactionId(clientTxnID)
72
+ .withAllowDuplicates(true)
73
+ .execute();
74
+ expect(chargeResponse).toBeTruthy();
75
+ expect(chargeResponse.responseCode).toBe("00");
76
+ const editClientTxnID = ciTestingHarness.generateRandomId("creditTxnEdit_edit");
77
+ const editResponse = await chargeResponse
78
+ .edit()
79
+ .withCurrency("USD")
80
+ .withGratuity("2")
81
+ .withClientTransactionId(editClientTxnID)
82
+ .execute();
83
+ expect(editResponse).toBeTruthy();
84
+ expect(editResponse.responseCode).toBe("00");
85
+ expect(editResponse.clientTransactionId).toBe(editClientTxnID);
86
+ });
87
+ test("creditAdditionalAuth", async () => {
88
+ ciTestingHarness.setFunction("Portico|Credit Transactions|CreditAdditionalAuth");
89
+ configurePorticoService();
90
+ const clientTxnID = ciTestingHarness.generateRandomId("creditAdditionalAuth_auth");
91
+ const authResponse = await card
92
+ .authorize("10")
93
+ .withCurrency("USD")
94
+ .withClientTransactionId(clientTxnID)
95
+ .withAllowDuplicates(true)
96
+ .execute();
97
+ expect(authResponse).toBeTruthy();
98
+ expect(authResponse.responseCode).toBe("00");
99
+ expect(authResponse.clientTransactionId).toBe(clientTxnID);
100
+ const additionalAuthClientTxnID = ciTestingHarness.generateRandomId("creditAdditionalAuth_additional");
101
+ const additionalAuthResponse = await src_1.Transaction.fromId(authResponse.transactionId)
102
+ .additionalAuth("10")
103
+ .withCurrency("USD")
104
+ .withModifier(src_1.TransactionModifier.Incremental)
105
+ .withClientTransactionId(additionalAuthClientTxnID)
106
+ .execute();
107
+ expect(additionalAuthResponse).toBeTruthy();
108
+ expect(additionalAuthResponse.responseCode).toBe("00");
109
+ expect(additionalAuthResponse.clientTransactionId).toBe(additionalAuthClientTxnID);
110
+ });
111
+ //# sourceMappingURL=PorticoCreditTests.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PorticoCreditTests.test.js","sourceRoot":"","sources":["../../../../../../test/Integration/Gateways/CI/portico/PorticoCreditTests.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const src_1 = require("../../../../../src");
4
+ const DeviceService_1 = require("../../../../../src/Services/DeviceService");
5
+ const Enums_1 = require("../../../../../src/Terminals/Enums");
6
+ const CiTestingHarness_1 = require("../../../../Utils/CiTestingHarness");
7
+ const MITC_UPA_APP_ID = "6l8Xr23kHL9tGmAtXUvCEXKskvF7aLGq";
8
+ const MITC_UPA_APP_KEY = "z0ApiLDfXrKmrlNa";
9
+ const harnessCacheMode = CiTestingHarness_1.CacheMode.Locked;
10
+ const ciTestingHarness = new CiTestingHarness_1.CiTestingHarness("https://apis.sandbox.globalpay.com/ucp", harnessCacheMode, "UpaFunctionalityTests");
11
+ function getGpApiConfig() {
12
+ const accessTokenInfo = new src_1.AccessTokenInfo();
13
+ accessTokenInfo.transactionProcessingAccountName = "90916726";
14
+ const gatewayConfig = new src_1.GpApiConfig();
15
+ gatewayConfig.appId = MITC_UPA_APP_ID;
16
+ gatewayConfig.appKey = MITC_UPA_APP_KEY;
17
+ gatewayConfig.channel = src_1.Channel.CardPresent;
18
+ gatewayConfig.country = "US";
19
+ gatewayConfig.deviceCurrency = "USD";
20
+ gatewayConfig.accessTokenInfo = accessTokenInfo;
21
+ gatewayConfig.serviceUrl = ciTestingHarness.getTestingUrl();
22
+ return gatewayConfig;
23
+ }
24
+ function createDevice(testKey) {
25
+ const connectionConfig = new src_1.ConnectionConfig();
26
+ connectionConfig.gatewayConfig = getGpApiConfig();
27
+ connectionConfig.deviceType = src_1.DeviceType.UPA_DEVICE;
28
+ connectionConfig.connectionMode = Enums_1.ConnectionModes.MEET_IN_THE_CLOUD;
29
+ connectionConfig.timeout = 30000;
30
+ connectionConfig.requestIdProvider =
31
+ ciTestingHarness.createRequestIdProvider(testKey);
32
+ const device = DeviceService_1.DeviceService.create(connectionConfig);
33
+ device.ecrId = "12";
34
+ ciTestingHarness.reset();
35
+ return device;
36
+ }
37
+ function assertMitcUpaResponse(response) {
38
+ expect("SUCCESS").toContain(response.deviceResponseCode);
39
+ }
40
+ test("CreditSale", async () => {
41
+ ciTestingHarness.setFunction("UPA|Functionality|Credit Sale");
42
+ const device = createDevice("CreditSale");
43
+ const amount = ciTestingHarness.generateRandomAmount("CreditSale_amount", 1, 10, 2);
44
+ const response = await device
45
+ .sale(parseFloat(amount))
46
+ .withEcrId(13)
47
+ .execute();
48
+ expect(response).toBeTruthy();
49
+ assertMitcUpaResponse(response);
50
+ });
51
+ test("RefundAgainstCard", async () => {
52
+ ciTestingHarness.setFunction("UPA|Functionality|Refund against Card");
53
+ const device = createDevice("RefundAgainstCard");
54
+ const amount = ciTestingHarness.generateRandomAmount("RefundAgainstCard_amount", 1, 10, 2);
55
+ const response = await device
56
+ .refund(parseFloat(amount))
57
+ .withEcrId(13)
58
+ .execute();
59
+ expect(response).toBeTruthy();
60
+ assertMitcUpaResponse(response);
61
+ });
62
+ test("RefundAgainstTransactionId", async () => {
63
+ ciTestingHarness.setFunction("UPA|Functionality|Refund against Transaction ID");
64
+ const device = createDevice("RefundAgainstTransactionId");
65
+ const amount = ciTestingHarness.generateRandomAmount("RefundAgainstTransactionId_amount", 1, 10, 2);
66
+ const saleResponse = await device
67
+ .sale(parseFloat(amount))
68
+ .withEcrId(13)
69
+ .execute();
70
+ expect(saleResponse).toBeTruthy();
71
+ assertMitcUpaResponse(saleResponse);
72
+ // @ts-ignore
73
+ if (harnessCacheMode === CiTestingHarness_1.CacheMode.Unlocked) {
74
+ await new Promise((resolve) => setTimeout(resolve, 15000));
75
+ }
76
+ const refundResponse = await device
77
+ .refundById(parseFloat(amount))
78
+ .withEcrId(13)
79
+ .withTransactionId(saleResponse.transactionId)
80
+ .execute();
81
+ expect(refundResponse).toBeTruthy();
82
+ assertMitcUpaResponse(refundResponse);
83
+ });
84
+ //# sourceMappingURL=UpaFunctionalityTests.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpaFunctionalityTests.test.js","sourceRoot":"","sources":["../../../../../../test/Integration/Gateways/CI/upa_mitc/UpaFunctionalityTests.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
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 currency = "GBP";
6
+ const setupConfig = () => {
7
+ const config = BaseGpApiTestConfig_1.BaseGpApiTestConfig.gpApiSetupConfig(src_1.Channel.CardNotPresent);
8
+ config.country = "GB";
9
+ config.requestLogger = new src_1.SampleRequestLogger(new src_1.Logger("logs"));
10
+ return config;
11
+ };
12
+ const buildCard = () => {
13
+ const date = new Date();
14
+ const card = new src_1.CreditCardData();
15
+ card.number = "4263970000005262";
16
+ card.expMonth = (date.getMonth() + 1).toString().padStart(2, "0");
17
+ card.expYear = (date.getFullYear() + 1).toString();
18
+ card.cvn = "131";
19
+ card.cardHolderName = "James Mason";
20
+ return card;
21
+ };
22
+ const aftFields = [
23
+ "John Smith",
24
+ "10 High Street",
25
+ "Nottingham",
26
+ "GBR",
27
+ "02",
28
+ "123456789",
29
+ ];
30
+ beforeAll(() => {
31
+ src_1.ServicesContainer.configureService(setupConfig());
32
+ });
33
+ beforeEach(() => {
34
+ src_1.ServicesContainer.configureService(setupConfig());
35
+ });
36
+ afterAll(() => {
37
+ BaseGpApiTestConfig_1.BaseGpApiTestConfig.resetGpApiConfig();
38
+ });
39
+ // Story scenario (AH-2074):
40
+ // "Merchant in the UK does an authorize transaction with an AFT type.
41
+ // Given I want to process an AFT, When I send a request with the supplementary
42
+ // data, Then I get confirmation it was properly processed."
43
+ test("UK merchant - Visa AFT sale with supplementary data (story scenario)", async () => {
44
+ const response = await buildCard()
45
+ .charge(19.99)
46
+ .withCurrency(currency)
47
+ .withClientTransactionId("APM-20200417")
48
+ .withSupplementaryData("VISA_DIRECT_AFT", [
49
+ "Sender Name",
50
+ "Sender Address",
51
+ "Sender City",
52
+ "Sender Country",
53
+ "Account Number Type",
54
+ "Recipient Account Number",
55
+ ])
56
+ .withAllowDuplicates(true)
57
+ .execute();
58
+ expect(response).toBeTruthy();
59
+ expect(response.responseCode).toBe("SUCCESS");
60
+ expect(response.responseMessage).toBe(src_1.TransactionStatus.CAPTURED);
61
+ });
62
+ // GpApiVisaAftTest::testVisaAftSale
63
+ test("visa AFT sale", async () => {
64
+ const response = await buildCard()
65
+ .charge(42)
66
+ .withCurrency(currency)
67
+ .withSupplementaryData("VISA_DIRECT_AFT", aftFields)
68
+ .withAllowDuplicates(true)
69
+ .execute();
70
+ expect(response).toBeTruthy();
71
+ expect(response.responseCode).toBe("SUCCESS");
72
+ expect(response.responseMessage).toBe(src_1.TransactionStatus.CAPTURED);
73
+ });
74
+ // GpApiVisaAftTest::testVisaAftInvalidType
75
+ test("visa AFT sale with invalid supplementary data type", async () => {
76
+ const response = await buildCard()
77
+ .charge(42)
78
+ .withCurrency(currency)
79
+ .withSupplementaryData("INVALID_TYPE", aftFields)
80
+ .withAllowDuplicates(true)
81
+ .execute();
82
+ expect(response).toBeTruthy();
83
+ expect(response.responseCode).toBe("SUCCESS");
84
+ expect(response.responseMessage).toBe(src_1.TransactionStatus.CAPTURED);
85
+ });
86
+ // GpApiVisaAftTest::testVisaAftEmptyData
87
+ test("visa AFT sale with empty supplementary data fields", async () => {
88
+ const response = await buildCard()
89
+ .charge(42)
90
+ .withCurrency(currency)
91
+ .withSupplementaryData("VISA_DIRECT_AFT", [])
92
+ .withAllowDuplicates(true)
93
+ .execute();
94
+ expect(response).toBeTruthy();
95
+ expect(response.responseCode).toBe("SUCCESS");
96
+ expect(response.responseMessage).toBe(src_1.TransactionStatus.CAPTURED);
97
+ });
98
+ // GpApiVisaAftTest::testVisaAftNullSupplementaryData
99
+ test("visa AFT sale with null supplementary data fields", async () => {
100
+ const response = await buildCard()
101
+ .charge(42)
102
+ .withCurrency(currency)
103
+ .withSupplementaryData("VISA_DIRECT_AFT", null)
104
+ .withAllowDuplicates(true)
105
+ .execute();
106
+ expect(response).toBeTruthy();
107
+ expect(response.responseCode).toBe("SUCCESS");
108
+ expect(response.responseMessage).toBe(src_1.TransactionStatus.CAPTURED);
109
+ });
110
+ // GpApiVisaAftTest::testVisaAftMissingCurrency
111
+ test("visa AFT sale without currency throws MANDATORY_DATA_MISSING", async () => {
112
+ let caught = false;
113
+ try {
114
+ await buildCard()
115
+ .charge(42)
116
+ .withSupplementaryData("VISA_DIRECT_AFT", aftFields)
117
+ .withAllowDuplicates(true)
118
+ .execute();
119
+ }
120
+ catch (error) {
121
+ caught = true;
122
+ expect(error).toBeTruthy();
123
+ expect(error?.message.includes("MANDATORY_DATA_MISSING")).toBe(true);
124
+ expect(error?.message.includes("currency")).toBe(true);
125
+ }
126
+ expect(caught).toBe(true);
127
+ });
128
+ // GpApiVisaAftTest::testVisaAftInvalidCurrency
129
+ test("visa AFT sale with invalid currency throws SYSTEM_ERROR", async () => {
130
+ let caught = false;
131
+ try {
132
+ await buildCard()
133
+ .charge(42)
134
+ .withCurrency("XYZ")
135
+ .withSupplementaryData("VISA_DIRECT_AFT", aftFields)
136
+ .withAllowDuplicates(true)
137
+ .execute();
138
+ }
139
+ catch (error) {
140
+ caught = true;
141
+ expect(error).toBeTruthy();
142
+ expect(error?.message.includes("SYSTEM_ERROR")).toBe(true);
143
+ expect(error instanceof src_1.GatewayError).toBe(true);
144
+ }
145
+ expect(caught).toBe(true);
146
+ });
147
+ // GpApiVisaAftTest::testVisaAftZeroAmount
148
+ // Note: GP-API sandbox returns INVALID_REQUEST_DATA (not MANDATORY_DATA_MISSING)
149
+ test("visa AFT sale with zero amount throws an amount error", async () => {
150
+ let caught = false;
151
+ try {
152
+ await buildCard()
153
+ .charge(0)
154
+ .withCurrency(currency)
155
+ .withSupplementaryData("VISA_DIRECT_AFT", aftFields)
156
+ .withAllowDuplicates(true)
157
+ .execute();
158
+ }
159
+ catch (error) {
160
+ caught = true;
161
+ expect(error).toBeTruthy();
162
+ expect(error instanceof src_1.GatewayError).toBe(true);
163
+ expect(error?.message.includes("INVALID_REQUEST_DATA")).toBe(true);
164
+ expect(error?.message.toLowerCase().includes("amount")).toBe(true);
165
+ }
166
+ expect(caught).toBe(true);
167
+ });
168
+ //# sourceMappingURL=VisaAft.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisaAft.test.js","sourceRoot":"","sources":["../../../../../test/Integration/Gateways/GpApiConnector/VisaAft.test.ts"],"names":[],"mappings":"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"}