globalpayments-api 3.11.3 → 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 +4 -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/Terminals/Abstractions/IDeviceResponse.d.ts +2 -0
- package/lib/src/Terminals/Builders/TerminalAuthBuilder.d.ts +13 -0
- package/lib/src/Terminals/Builders/TerminalAuthBuilder.js +24 -0
- 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/TransactionResponse.d.ts +2 -0
- package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js +6 -0
- package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js.map +1 -1
- package/lib/src/Terminals/UPA/UpaController.js +31 -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/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 +100 -2
- 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/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/Integration/Terminals/UPA/UpaTransactionResponseLive.test.d.ts +0 -1
- package/lib/test/Integration/Terminals/UPA/UpaTransactionResponseLive.test.js +0 -378
- package/lib/test/Integration/Terminals/UPA/UpaTransactionResponseLive.test.js.map +0 -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.d.ts +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/BatchList.test.js +0 -64
- package/lib/test/Unit/Terminals/UPA/Reponses/BatchList.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/BatchReportResponse.test.d.ts +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/BatchReportResponse.test.js +0 -145
- package/lib/test/Unit/Terminals/UPA/Reponses/BatchReportResponse.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/OpenTabDetailsResponse.test.d.ts +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/OpenTabDetailsResponse.test.js +0 -70
- package/lib/test/Unit/Terminals/UPA/Reponses/OpenTabDetailsResponse.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/SafReportResponse.test.d.ts +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/SafReportResponse.test.js +0 -112
- package/lib/test/Unit/Terminals/UPA/Reponses/SafReportResponse.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/UpaEODResponse.test.d.ts +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.d.ts +0 -1
- package/lib/test/Unit/Terminals/UPA/Reponses/UpaSAFResponse.test.js +0 -95
- package/lib/test/Unit/Terminals/UPA/Reponses/UpaSAFResponse.test.js.map +0 -1
- package/lib/test/Unit/Terminals/UPA/Responses/UpaTransactionResponse.test.d.ts +0 -1
- package/lib/test/Unit/Terminals/UPA/Responses/UpaTransactionResponse.test.js +0 -1624
- package/lib/test/Unit/Terminals/UPA/Responses/UpaTransactionResponse.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
|
@@ -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,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UPA JIRA Story Validation Test Suite
|
|
3
|
+
*
|
|
4
|
+
* Validates comprehensive UPA functionality for merchant transaction processing.
|
|
5
|
+
* Ensures all required fields and methods are implemented per JIRA story requirements:
|
|
6
|
+
* - clerkId (withClerkId method)
|
|
7
|
+
* - cardOnFileIndicator (proper mapping support)
|
|
8
|
+
* - cardBrandTransId (withCardBrandTransId method)
|
|
9
|
+
* - lineItemLeft/Right (withLineItem methods)
|
|
10
|
+
* - languageCode (complete implementation)
|
|
11
|
+
* - directMktShipMonth/Day (correct date handling)
|
|
12
|
+
* - merchantDecision (property and mapping)
|
|
13
|
+
* - acquisitionTypes (property and mapping)
|
|
14
|
+
* - baseAmount (separation from totalAmount)
|
|
15
|
+
* - preAuthAmount (proper decimal formatting)
|
|
16
|
+
* - Card-On-File (initial vs subsequent, multiple initiator types)
|
|
17
|
+
* - Lodging Data (full integration)
|
|
18
|
+
* - Processing Indicators (quickChip, checkLuhn, securityCode)
|
|
19
|
+
*
|
|
20
|
+
* Region: US
|
|
21
|
+
* Gateway: GP-API
|
|
22
|
+
* Environment: Sandbox
|
|
23
|
+
* Devices: UPA
|
|
24
|
+
* Payment Types: MC, VISA, Amex
|
|
25
|
+
*/
|
|
26
|
+
export {};
|