globalpayments-api 3.11.3 → 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.
- package/CHANGELOG.md +11 -1
- package/README.md +18 -0
- package/lib/src/Builders/AuthorizationBuilder.d.ts +0 -1
- package/lib/src/Builders/AuthorizationBuilder.js +0 -4
- package/lib/src/Builders/AuthorizationBuilder.js.map +1 -1
- package/lib/src/Builders/RecurringBuilder.js +12 -1
- package/lib/src/Builders/RecurringBuilder.js.map +1 -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 +24 -0
- package/lib/src/Terminals/Builders/TerminalAuthBuilder.js +53 -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 +8 -0
- package/lib/src/Terminals/Builders/TerminalManageBuilder.js.map +1 -1
- package/lib/src/Terminals/UPA/Reponses/TransactionResponse.d.ts +6 -0
- package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js +30 -0
- package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js.map +1 -1
- package/lib/src/Terminals/UPA/UpaController.js +124 -8
- 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/Integration/Gateways/GpApiConnector/GpApiMMAAccount.test.js +149 -0
- package/lib/test/Integration/Gateways/GpApiConnector/GpApiMMAAccount.test.js.map +1 -0
- package/lib/test/Unit/Gateways/GpApiConnector/GpApiMMAAccount.test.js +29 -0
- package/lib/test/Unit/Gateways/GpApiConnector/GpApiMMAAccount.test.js.map +1 -0
- 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/Builders/TerminalBuilderParityTests.test.d.ts +17 -0
- package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.test.js +325 -0
- package/lib/test/Unit/Terminals/Builders/TerminalBuilderParityTests.test.js.map +1 -0
- package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js +150 -3
- package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js.map +1 -1
- package/lib/test/Unit/Terminals/UPA/UpaCredit.test.js +274 -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 +2 -2
- 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.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
- /package/lib/test/Integration/{Terminals/UPA/UpaTransactionResponseLive.test.d.ts → Gateways/GpApiConnector/GpApiMMAAccount.test.d.ts} +0 -0
- /package/lib/test/Unit/{Builders/AuthorizationBuilder/SupplementaryData.test.d.ts → Gateways/GpApiConnector/GpApiMMAAccount.test.d.ts} +0 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Unit tests for TerminalAuthBuilder and TerminalManageBuilder
|
|
4
|
+
* Testing newly added properties and builder methods for UPA parity with .NET SDK
|
|
5
|
+
*
|
|
6
|
+
* Properties added to TerminalAuthBuilder:
|
|
7
|
+
* - clerkId
|
|
8
|
+
* - prescriptionAmount
|
|
9
|
+
* - clinicAmount
|
|
10
|
+
* - dentalAmount
|
|
11
|
+
* - visionOpticalAmount
|
|
12
|
+
* - confirmAmount
|
|
13
|
+
* - surchargeAmount
|
|
14
|
+
*
|
|
15
|
+
* Properties added to TerminalManageBuilder:
|
|
16
|
+
* - clerkId
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
const src_1 = require("../../../../src");
|
|
20
|
+
describe("TerminalAuthBuilder Parity Tests", () => {
|
|
21
|
+
describe("Medical Amount Properties", () => {
|
|
22
|
+
let builder;
|
|
23
|
+
beforeEach(() => {
|
|
24
|
+
builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale);
|
|
25
|
+
});
|
|
26
|
+
test("withPrescriptionAmount() should set prescriptionAmount property", () => {
|
|
27
|
+
const prescriptionAmt = 25.5;
|
|
28
|
+
const result = builder.withPrescriptionAmount(prescriptionAmt);
|
|
29
|
+
expect(builder.prescriptionAmount).toBe(prescriptionAmt);
|
|
30
|
+
expect(result).toBe(builder); // Fluent API returns this
|
|
31
|
+
});
|
|
32
|
+
test("withClinicAmount() should set clinicAmount property", () => {
|
|
33
|
+
const clinicAmt = 45.75;
|
|
34
|
+
const result = builder.withClinicAmount(clinicAmt);
|
|
35
|
+
expect(builder.clinicAmount).toBe(clinicAmt);
|
|
36
|
+
expect(result).toBe(builder);
|
|
37
|
+
});
|
|
38
|
+
test("withDentalAmount() should set dentalAmount property", () => {
|
|
39
|
+
const dentalAmt = 100.0;
|
|
40
|
+
const result = builder.withDentalAmount(dentalAmt);
|
|
41
|
+
expect(builder.dentalAmount).toBe(dentalAmt);
|
|
42
|
+
expect(result).toBe(builder);
|
|
43
|
+
});
|
|
44
|
+
test("withVisionOpticalAmount() should set visionOpticalAmount property", () => {
|
|
45
|
+
const visionAmt = 200.5;
|
|
46
|
+
const result = builder.withVisionOpticalAmount(visionAmt);
|
|
47
|
+
expect(builder.visionOpticalAmount).toBe(visionAmt);
|
|
48
|
+
expect(result).toBe(builder);
|
|
49
|
+
});
|
|
50
|
+
test("Medical amounts can be chained together", () => {
|
|
51
|
+
builder
|
|
52
|
+
.withPrescriptionAmount(25.5)
|
|
53
|
+
.withClinicAmount(45.75)
|
|
54
|
+
.withDentalAmount(100.0)
|
|
55
|
+
.withVisionOpticalAmount(200.5);
|
|
56
|
+
expect(builder.prescriptionAmount).toBe(25.5);
|
|
57
|
+
expect(builder.clinicAmount).toBe(45.75);
|
|
58
|
+
expect(builder.dentalAmount).toBe(100.0);
|
|
59
|
+
expect(builder.visionOpticalAmount).toBe(200.5);
|
|
60
|
+
});
|
|
61
|
+
test("Medical amounts can be zero", () => {
|
|
62
|
+
builder.withPrescriptionAmount(0);
|
|
63
|
+
expect(builder.prescriptionAmount).toBe(0);
|
|
64
|
+
});
|
|
65
|
+
test("Medical amounts can be decimal values", () => {
|
|
66
|
+
builder
|
|
67
|
+
.withPrescriptionAmount(25.99)
|
|
68
|
+
.withClinicAmount(45.01)
|
|
69
|
+
.withDentalAmount(100.5)
|
|
70
|
+
.withVisionOpticalAmount(200.25);
|
|
71
|
+
expect(builder.prescriptionAmount).toBe(25.99);
|
|
72
|
+
expect(builder.clinicAmount).toBe(45.01);
|
|
73
|
+
expect(builder.dentalAmount).toBe(100.5);
|
|
74
|
+
expect(builder.visionOpticalAmount).toBe(200.25);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe("Base Class Property - Clerk ID", () => {
|
|
78
|
+
let builder;
|
|
79
|
+
beforeEach(() => {
|
|
80
|
+
builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale);
|
|
81
|
+
});
|
|
82
|
+
test("withClerkId() (inherited from base class) should set clerkId property", () => {
|
|
83
|
+
const clerkId = 12345;
|
|
84
|
+
const result = builder.withClerkId(clerkId);
|
|
85
|
+
expect(builder.clerkId).toBe(clerkId);
|
|
86
|
+
expect(result).toBe(builder);
|
|
87
|
+
});
|
|
88
|
+
test("withClerkId() can be used in fluent chain with new medical properties", () => {
|
|
89
|
+
builder
|
|
90
|
+
.withAmount(10.0)
|
|
91
|
+
.withClerkId(456)
|
|
92
|
+
.withPrescriptionAmount(25.0)
|
|
93
|
+
.withInvoiceNumber("INV123");
|
|
94
|
+
expect(builder.amount).toBe(10.0);
|
|
95
|
+
expect(builder.clerkId).toBe(456);
|
|
96
|
+
expect(builder.prescriptionAmount).toBe(25.0);
|
|
97
|
+
expect(builder.invoiceNumber).toBe("INV123");
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
describe("Confirmation Amount Property", () => {
|
|
101
|
+
let builder;
|
|
102
|
+
beforeEach(() => {
|
|
103
|
+
builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale);
|
|
104
|
+
});
|
|
105
|
+
test("withConfirmationAmount() should set confirmAmount property to true", () => {
|
|
106
|
+
const result = builder.withConfirmationAmount(true);
|
|
107
|
+
expect(builder.confirmAmount).toBe(true);
|
|
108
|
+
expect(result).toBe(builder);
|
|
109
|
+
});
|
|
110
|
+
test("withConfirmationAmount() should set confirmAmount property to false", () => {
|
|
111
|
+
builder.withConfirmationAmount(false);
|
|
112
|
+
expect(builder.confirmAmount).toBe(false);
|
|
113
|
+
});
|
|
114
|
+
test("withConfirmationAmount() can be toggled", () => {
|
|
115
|
+
builder.withConfirmationAmount(true);
|
|
116
|
+
expect(builder.confirmAmount).toBe(true);
|
|
117
|
+
builder.withConfirmationAmount(false);
|
|
118
|
+
expect(builder.confirmAmount).toBe(false);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe("Surcharge Amount Property", () => {
|
|
122
|
+
let builder;
|
|
123
|
+
beforeEach(() => {
|
|
124
|
+
builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale);
|
|
125
|
+
});
|
|
126
|
+
test("withSurchargeAmount() should set surchargeAmount property", () => {
|
|
127
|
+
const surchargeAmt = 2.5;
|
|
128
|
+
const result = builder.withSurchargeAmount(surchargeAmt);
|
|
129
|
+
expect(builder.surchargeAmount).toBe(surchargeAmt);
|
|
130
|
+
expect(result).toBe(builder);
|
|
131
|
+
});
|
|
132
|
+
test("withSurchargeAmount() should accept zero", () => {
|
|
133
|
+
builder.withSurchargeAmount(0);
|
|
134
|
+
expect(builder.surchargeAmount).toBe(0);
|
|
135
|
+
});
|
|
136
|
+
test("withSurchargeAmount() should accept decimal values", () => {
|
|
137
|
+
builder.withSurchargeAmount(5.99);
|
|
138
|
+
expect(builder.surchargeAmount).toBe(5.99);
|
|
139
|
+
});
|
|
140
|
+
test("withSurchargeAmount() can be combined with amount", () => {
|
|
141
|
+
builder.withAmount(100.0).withSurchargeAmount(2.5);
|
|
142
|
+
expect(builder.amount).toBe(100.0);
|
|
143
|
+
expect(builder.surchargeAmount).toBe(2.5);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe("Complex Builder Chains", () => {
|
|
147
|
+
test("All new builder methods work together in a comprehensive transaction", () => {
|
|
148
|
+
const builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale)
|
|
149
|
+
.withAmount(100.0)
|
|
150
|
+
.withClerkId(789)
|
|
151
|
+
.withPrescriptionAmount(25.0)
|
|
152
|
+
.withClinicAmount(35.0)
|
|
153
|
+
.withDentalAmount(20.0)
|
|
154
|
+
.withVisionOpticalAmount(10.0)
|
|
155
|
+
.withConfirmationAmount(true)
|
|
156
|
+
.withSurchargeAmount(5.0)
|
|
157
|
+
.withInvoiceNumber("INV2026001");
|
|
158
|
+
expect(builder.amount).toBe(100.0);
|
|
159
|
+
expect(builder.clerkId).toBe(789);
|
|
160
|
+
expect(builder.prescriptionAmount).toBe(25.0);
|
|
161
|
+
expect(builder.clinicAmount).toBe(35.0);
|
|
162
|
+
expect(builder.dentalAmount).toBe(20.0);
|
|
163
|
+
expect(builder.visionOpticalAmount).toBe(10.0);
|
|
164
|
+
expect(builder.confirmAmount).toBe(true);
|
|
165
|
+
expect(builder.surchargeAmount).toBe(5.0);
|
|
166
|
+
expect(builder.invoiceNumber).toBe("INV2026001");
|
|
167
|
+
});
|
|
168
|
+
test("Medical amounts can be omitted for normal transactions", () => {
|
|
169
|
+
const builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale)
|
|
170
|
+
.withAmount(50.0)
|
|
171
|
+
.withClerkId(123);
|
|
172
|
+
expect(builder.amount).toBe(50.0);
|
|
173
|
+
expect(builder.clerkId).toBe(123);
|
|
174
|
+
expect(builder.prescriptionAmount).toBeUndefined();
|
|
175
|
+
expect(builder.clinicAmount).toBeUndefined();
|
|
176
|
+
expect(builder.dentalAmount).toBeUndefined();
|
|
177
|
+
expect(builder.visionOpticalAmount).toBeUndefined();
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
describe("Transaction Type Compatibility", () => {
|
|
181
|
+
test("New properties work with Auth transaction type", () => {
|
|
182
|
+
const builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Auth)
|
|
183
|
+
.withAmount(50.0)
|
|
184
|
+
.withClerkId(111);
|
|
185
|
+
expect(builder.transactionType).toBe(src_1.TransactionType.Auth);
|
|
186
|
+
expect(builder.amount).toBe(50.0);
|
|
187
|
+
expect(builder.clerkId).toBe(111);
|
|
188
|
+
});
|
|
189
|
+
test("New properties work with Refund transaction type", () => {
|
|
190
|
+
const builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Refund)
|
|
191
|
+
.withAmount(25.0)
|
|
192
|
+
.withClerkId(222);
|
|
193
|
+
expect(builder.transactionType).toBe(src_1.TransactionType.Refund);
|
|
194
|
+
expect(builder.amount).toBe(25.0);
|
|
195
|
+
expect(builder.clerkId).toBe(222);
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
describe("TerminalManageBuilder Parity Tests", () => {
|
|
200
|
+
describe("Base Class Property - Clerk ID (inherited)", () => {
|
|
201
|
+
let builder;
|
|
202
|
+
beforeEach(() => {
|
|
203
|
+
builder = new src_1.TerminalManageBuilder(src_1.TransactionType.Capture);
|
|
204
|
+
});
|
|
205
|
+
test("withClerkId() (inherited from base class) should set clerkId property", () => {
|
|
206
|
+
const clerkId = 54321;
|
|
207
|
+
const result = builder.withClerkId(clerkId);
|
|
208
|
+
expect(builder.clerkId).toBe(clerkId);
|
|
209
|
+
expect(result).toBe(builder);
|
|
210
|
+
});
|
|
211
|
+
test("withClerkId() can be used in fluent chain with ProcessCPC", () => {
|
|
212
|
+
builder
|
|
213
|
+
.withAmount(500.0)
|
|
214
|
+
.withClerkId(555)
|
|
215
|
+
.withProcessCPC(true)
|
|
216
|
+
.withTransactionId("TXN123");
|
|
217
|
+
expect(builder.amount).toBe(500.0);
|
|
218
|
+
expect(builder.clerkId).toBe(555);
|
|
219
|
+
expect(builder.processCPC).toBe(true);
|
|
220
|
+
expect(builder.transactionId).toBe("TXN123");
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
describe("ProcessCPC Property Verification", () => {
|
|
224
|
+
let builder;
|
|
225
|
+
beforeEach(() => {
|
|
226
|
+
builder = new src_1.TerminalManageBuilder(src_1.TransactionType.Capture);
|
|
227
|
+
});
|
|
228
|
+
test("withProcessCPC() should be available and working", () => {
|
|
229
|
+
const result = builder.withProcessCPC(true);
|
|
230
|
+
expect(builder.processCPC).toBe(true);
|
|
231
|
+
expect(result).toBe(builder);
|
|
232
|
+
});
|
|
233
|
+
test("withProcessCPC() with false value", () => {
|
|
234
|
+
builder.withProcessCPC(false);
|
|
235
|
+
expect(builder.processCPC).toBe(false);
|
|
236
|
+
});
|
|
237
|
+
test("ProcessCPC and ClerkId can be combined", () => {
|
|
238
|
+
builder.withProcessCPC(true).withClerkId(999).withAmount(100.0);
|
|
239
|
+
expect(builder.processCPC).toBe(true);
|
|
240
|
+
expect(builder.clerkId).toBe(999);
|
|
241
|
+
expect(builder.amount).toBe(100.0);
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
describe("Transaction Type Compatibility", () => {
|
|
245
|
+
test("ClerkId works with Capture transaction type", () => {
|
|
246
|
+
const builder = new src_1.TerminalManageBuilder(src_1.TransactionType.Capture)
|
|
247
|
+
.withAmount(75.0)
|
|
248
|
+
.withClerkId(333);
|
|
249
|
+
expect(builder.transactionType).toBe(src_1.TransactionType.Capture);
|
|
250
|
+
expect(builder.clerkId).toBe(333);
|
|
251
|
+
expect(builder.amount).toBe(75.0);
|
|
252
|
+
});
|
|
253
|
+
test("ClerkId works with Refund transaction type", () => {
|
|
254
|
+
const builder = new src_1.TerminalManageBuilder(src_1.TransactionType.Refund)
|
|
255
|
+
.withAmount(50.0)
|
|
256
|
+
.withClerkId(444);
|
|
257
|
+
expect(builder.transactionType).toBe(src_1.TransactionType.Refund);
|
|
258
|
+
expect(builder.clerkId).toBe(444);
|
|
259
|
+
});
|
|
260
|
+
test("ClerkId works with Void transaction type", () => {
|
|
261
|
+
const builder = new src_1.TerminalManageBuilder(src_1.TransactionType.Void).withClerkId(555);
|
|
262
|
+
expect(builder.transactionType).toBe(src_1.TransactionType.Void);
|
|
263
|
+
expect(builder.clerkId).toBe(555);
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
describe("Builder Properties Defaults", () => {
|
|
268
|
+
test("TerminalAuthBuilder properties default to undefined", () => {
|
|
269
|
+
const builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale);
|
|
270
|
+
expect(builder.clerkId).toBeUndefined();
|
|
271
|
+
expect(builder.prescriptionAmount).toBeUndefined();
|
|
272
|
+
expect(builder.clinicAmount).toBeUndefined();
|
|
273
|
+
expect(builder.dentalAmount).toBeUndefined();
|
|
274
|
+
expect(builder.visionOpticalAmount).toBeUndefined();
|
|
275
|
+
expect(builder.confirmAmount).toBeUndefined();
|
|
276
|
+
expect(builder.surchargeAmount).toBeUndefined();
|
|
277
|
+
});
|
|
278
|
+
test("TerminalManageBuilder clerkId defaults to undefined", () => {
|
|
279
|
+
const builder = new src_1.TerminalManageBuilder(src_1.TransactionType.Capture);
|
|
280
|
+
expect(builder.clerkId).toBeUndefined();
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
describe("Property Type Validation", () => {
|
|
284
|
+
describe("Numeric Properties", () => {
|
|
285
|
+
test("ClerkId accepts valid numbers", () => {
|
|
286
|
+
const builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale);
|
|
287
|
+
builder.withClerkId(12345);
|
|
288
|
+
expect(typeof builder.clerkId).toBe("number");
|
|
289
|
+
expect(builder.clerkId).toBe(12345);
|
|
290
|
+
});
|
|
291
|
+
test("Medical amounts accept valid decimal numbers", () => {
|
|
292
|
+
const builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale);
|
|
293
|
+
builder
|
|
294
|
+
.withPrescriptionAmount(10.5)
|
|
295
|
+
.withClinicAmount(20.75)
|
|
296
|
+
.withDentalAmount(30.99)
|
|
297
|
+
.withVisionOpticalAmount(40.01);
|
|
298
|
+
expect(typeof builder.prescriptionAmount).toBe("number");
|
|
299
|
+
expect(typeof builder.clinicAmount).toBe("number");
|
|
300
|
+
expect(typeof builder.dentalAmount).toBe("number");
|
|
301
|
+
expect(typeof builder.visionOpticalAmount).toBe("number");
|
|
302
|
+
});
|
|
303
|
+
test("Surcharge amount accepts valid decimal numbers", () => {
|
|
304
|
+
const builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale);
|
|
305
|
+
builder.withSurchargeAmount(5.5);
|
|
306
|
+
expect(typeof builder.surchargeAmount).toBe("number");
|
|
307
|
+
expect(builder.surchargeAmount).toBe(5.5);
|
|
308
|
+
});
|
|
309
|
+
});
|
|
310
|
+
describe("Boolean Properties", () => {
|
|
311
|
+
test("ConfirmAmount accepts boolean values", () => {
|
|
312
|
+
const builder = new src_1.TerminalAuthBuilder(src_1.TransactionType.Sale);
|
|
313
|
+
builder.withConfirmationAmount(true);
|
|
314
|
+
expect(typeof builder.confirmAmount).toBe("boolean");
|
|
315
|
+
expect(builder.confirmAmount).toBe(true);
|
|
316
|
+
});
|
|
317
|
+
test("ProcessCPC accepts boolean values in TerminalManageBuilder", () => {
|
|
318
|
+
const builder = new src_1.TerminalManageBuilder(src_1.TransactionType.Capture);
|
|
319
|
+
builder.withProcessCPC(false);
|
|
320
|
+
expect(typeof builder.processCPC).toBe("boolean");
|
|
321
|
+
expect(builder.processCPC).toBe(false);
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
//# sourceMappingURL=TerminalBuilderParityTests.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TerminalBuilderParityTests.test.js","sourceRoot":"","sources":["../../../../../test/Unit/Terminals/Builders/TerminalBuilderParityTests.test.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAEH,yCAIyB;AAEzB,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,IAAI,OAA4B,CAAC;QAEjC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;YAC3E,MAAM,eAAe,GAAG,IAAI,CAAC;YAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;YAE/D,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC/D,MAAM,SAAS,GAAG,KAAK,CAAC;YACxB,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEnD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC/D,MAAM,SAAS,GAAG,KAAK,CAAC;YACxB,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEnD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC7E,MAAM,SAAS,GAAG,KAAK,CAAC;YACxB,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YAE1D,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACnD,OAAO;iBACJ,sBAAsB,CAAC,IAAI,CAAC;iBAC5B,gBAAgB,CAAC,KAAK,CAAC;iBACvB,gBAAgB,CAAC,KAAK,CAAC;iBACvB,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACvC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YACjD,OAAO;iBACJ,sBAAsB,CAAC,KAAK,CAAC;iBAC7B,gBAAgB,CAAC,KAAK,CAAC;iBACvB,gBAAgB,CAAC,KAAK,CAAC;iBACvB,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAEnC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,IAAI,OAA4B,CAAC;QAEjC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;YACjF,MAAM,OAAO,GAAG,KAAK,CAAC;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAE5C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;YACjF,OAAO;iBACJ,UAAU,CAAC,IAAI,CAAC;iBAChB,WAAW,CAAC,GAAG,CAAC;iBAChB,sBAAsB,CAAC,IAAI,CAAC;iBAC5B,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,IAAI,OAA4B,CAAC;QAEjC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAEpD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC/E,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACnD,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,IAAI,OAA4B,CAAC;QAEjC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACrE,MAAM,YAAY,GAAG,GAAG,CAAC;YACzB,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAEzD,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACpD,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC9D,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC7D,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEnD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAChF,MAAM,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC;iBAC1D,UAAU,CAAC,KAAK,CAAC;iBACjB,WAAW,CAAC,GAAG,CAAC;iBAChB,sBAAsB,CAAC,IAAI,CAAC;iBAC5B,gBAAgB,CAAC,IAAI,CAAC;iBACtB,gBAAgB,CAAC,IAAI,CAAC;iBACtB,uBAAuB,CAAC,IAAI,CAAC;iBAC7B,sBAAsB,CAAC,IAAI,CAAC;iBAC5B,mBAAmB,CAAC,GAAG,CAAC;iBACxB,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAClE,MAAM,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC;iBAC1D,UAAU,CAAC,IAAI,CAAC;iBAChB,WAAW,CAAC,GAAG,CAAC,CAAC;YAEpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,aAAa,EAAE,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC;iBAC1D,UAAU,CAAC,IAAI,CAAC;iBAChB,WAAW,CAAC,GAAG,CAAC,CAAC;YAEpB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC5D,MAAM,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,MAAM,CAAC;iBAC5D,UAAU,CAAC,IAAI,CAAC;iBAChB,WAAW,CAAC,GAAG,CAAC,CAAC;YAEpB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,qBAAe,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAC1D,IAAI,OAA8B,CAAC;QAEnC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,GAAG,IAAI,2BAAqB,CAAC,qBAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;YACjF,MAAM,OAAO,GAAG,KAAK,CAAC;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAE5C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACrE,OAAO;iBACJ,UAAU,CAAC,KAAK,CAAC;iBACjB,WAAW,CAAC,GAAG,CAAC;iBAChB,cAAc,CAAC,IAAI,CAAC;iBACpB,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,IAAI,OAA8B,CAAC;QAEnC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,GAAG,IAAI,2BAAqB,CAAC,qBAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC7C,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAClD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEhE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACvD,MAAM,OAAO,GAAG,IAAI,2BAAqB,CAAC,qBAAe,CAAC,OAAO,CAAC;iBAC/D,UAAU,CAAC,IAAI,CAAC;iBAChB,WAAW,CAAC,GAAG,CAAC,CAAC;YAEpB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,qBAAe,CAAC,OAAO,CAAC,CAAC;YAC9D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACtD,MAAM,OAAO,GAAG,IAAI,2BAAqB,CAAC,qBAAe,CAAC,MAAM,CAAC;iBAC9D,UAAU,CAAC,IAAI,CAAC;iBAChB,WAAW,CAAC,GAAG,CAAC,CAAC;YAEpB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,qBAAe,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACpD,MAAM,OAAO,GAAG,IAAI,2BAAqB,CACvC,qBAAe,CAAC,IAAI,CACrB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAEnB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;QAE9D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,aAAa,EAAE,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG,IAAI,2BAAqB,CAAC,qBAAe,CAAC,OAAO,CAAC,CAAC;QAEnE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACzC,MAAM,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACxD,MAAM,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAO;iBACJ,sBAAsB,CAAC,IAAI,CAAC;iBAC5B,gBAAgB,CAAC,KAAK,CAAC;iBACvB,gBAAgB,CAAC,KAAK,CAAC;iBACvB,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,CAAC,OAAO,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,OAAO,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,CAAC,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAChD,MAAM,OAAO,GAAG,IAAI,yBAAmB,CAAC,qBAAe,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAErC,MAAM,CAAC,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACtE,MAAM,OAAO,GAAG,IAAI,2BAAqB,CAAC,qBAAe,CAAC,OAAO,CAAC,CAAC;YACnE,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAE9B,MAAM,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
/**
|
|
4
|
-
* Unit tests for device-level methods:
|
|
4
|
+
* Unit tests for device-level methods and administrative transactions:
|
|
5
5
|
* endOfDay(), sendStoreAndForward(), getSignature(), ping(),
|
|
6
6
|
* balance(), reverse(), deletePreAuth(),
|
|
7
7
|
* startCardTransaction(), reboot(),
|
|
8
|
-
* MITC connection mode, deleteSaf(), cancel(), registerPOS()
|
|
9
|
-
*
|
|
8
|
+
* MITC connection mode, deleteSaf(), cancel(), registerPOS(),
|
|
9
|
+
* refund() with clerkId and enhanced fields,
|
|
10
|
+
* verify() with address verification and CVV verification,
|
|
11
|
+
* lineItem() with LineItemDisplay spec
|
|
10
12
|
*/
|
|
11
13
|
const src_1 = require("../../../../src");
|
|
12
14
|
const DeviceService_1 = require("../../../../src/Services/DeviceService");
|
|
@@ -1256,5 +1258,150 @@ afterEach(async () => {
|
|
|
1256
1258
|
throw err;
|
|
1257
1259
|
}
|
|
1258
1260
|
});
|
|
1261
|
+
// ===============================================================//
|
|
1262
|
+
test("[UpaManageTests:600] capture() serializes processCPC indicator", async () => {
|
|
1263
|
+
const controller = src_1.ServicesContainer.instance().getDeviceController();
|
|
1264
|
+
const responseauth = await device
|
|
1265
|
+
.authorize(10.0)
|
|
1266
|
+
.withEcrId(13)
|
|
1267
|
+
.execute();
|
|
1268
|
+
const builder = device
|
|
1269
|
+
.capture()
|
|
1270
|
+
.withTransactionId(responseauth.transactionId)
|
|
1271
|
+
.withAmount(10.0)
|
|
1272
|
+
.withEcrId(13)
|
|
1273
|
+
.withProcessCPC(true);
|
|
1274
|
+
const request = controller.buildManageTransaction(builder).getJsonRequest();
|
|
1275
|
+
console.log("[UpaManageTests:600] Capture with processCPC request payload:\n" +
|
|
1276
|
+
JSON.stringify(request, null, 2));
|
|
1277
|
+
expect(request.data.command).toBe("AuthCompletion");
|
|
1278
|
+
expect(request.data.data.transaction.processCPC).toBe("1");
|
|
1279
|
+
const response = await builder.execute();
|
|
1280
|
+
expect(response.status).toBe("Success");
|
|
1281
|
+
});
|
|
1282
|
+
test("[UpaManageTests:601] capture() serializes processCPC false as 0", async () => {
|
|
1283
|
+
const responseauth = await device
|
|
1284
|
+
.authorize(10.0)
|
|
1285
|
+
.withEcrId(13)
|
|
1286
|
+
.execute();
|
|
1287
|
+
const controller = src_1.ServicesContainer.instance().getDeviceController();
|
|
1288
|
+
sleep(100);
|
|
1289
|
+
const builder = device
|
|
1290
|
+
.capture()
|
|
1291
|
+
.withTransactionId(responseauth.transactionId)
|
|
1292
|
+
.withAmount(10.0)
|
|
1293
|
+
.withEcrId(13)
|
|
1294
|
+
.withProcessCPC(false);
|
|
1295
|
+
const request = controller.buildManageTransaction(builder).getJsonRequest();
|
|
1296
|
+
console.log("[UpaManageTests:601] Capture with processCPC false request payload:\n" +
|
|
1297
|
+
JSON.stringify(request, null, 2));
|
|
1298
|
+
expect(request.data.command).toBe("AuthCompletion");
|
|
1299
|
+
expect(request.data.data.transaction.processCPC).toBe("0");
|
|
1300
|
+
const response = await builder.execute();
|
|
1301
|
+
expect(response.status).toBe("Success");
|
|
1302
|
+
});
|
|
1303
|
+
});
|
|
1304
|
+
// refund() with all administrative enhancements
|
|
1305
|
+
// ===========================================================================
|
|
1306
|
+
(0, UpaHelpertest_1.describeUpaLive)("UPA Credit – refund() with enhanced fields", () => {
|
|
1307
|
+
let device;
|
|
1308
|
+
beforeEach(() => {
|
|
1309
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
1310
|
+
});
|
|
1311
|
+
test("refund() includes clerkId in request", async () => {
|
|
1312
|
+
const saleresponse = await device.sale(5).withEcrId(13).execute();
|
|
1313
|
+
const builder = await device
|
|
1314
|
+
.refund(2)
|
|
1315
|
+
.withEcrId(13)
|
|
1316
|
+
.withReferenceNumber(saleresponse.terminalRefNumber)
|
|
1317
|
+
.withClerkId(123);
|
|
1318
|
+
const response = await builder.execute();
|
|
1319
|
+
console.log("Response Status:", response.status);
|
|
1320
|
+
expect(response).toBeDefined();
|
|
1321
|
+
expect(response.status).toBe("Success");
|
|
1322
|
+
});
|
|
1323
|
+
test("refund() by transaction ID", async () => {
|
|
1324
|
+
const saleResponse = await device.sale(10).withEcrId(13).execute();
|
|
1325
|
+
expect(saleResponse).toBeDefined();
|
|
1326
|
+
expect(saleResponse.status).toBe("Success");
|
|
1327
|
+
const response = await device
|
|
1328
|
+
.refund(10)
|
|
1329
|
+
.withEcrId(13)
|
|
1330
|
+
.withTransactionId(saleResponse.gatewayTxnId)
|
|
1331
|
+
.execute();
|
|
1332
|
+
expect(response).toBeDefined();
|
|
1333
|
+
expect(response.status).toBe("Success");
|
|
1334
|
+
expect(response.transactionAmount).toBe(10);
|
|
1335
|
+
console.log(`[Refund By TransID] Amount: ${response.transactionAmount}, Status: ${response.status}`);
|
|
1336
|
+
});
|
|
1337
|
+
});
|
|
1338
|
+
// ===========================================================================
|
|
1339
|
+
// verify() with all administrative enhancements
|
|
1340
|
+
// ===========================================================================
|
|
1341
|
+
(0, UpaHelpertest_1.describeUpaLive)("UPA Credit – verify() with enhanced fields", () => {
|
|
1342
|
+
let device;
|
|
1343
|
+
beforeEach(() => {
|
|
1344
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
1345
|
+
});
|
|
1346
|
+
test("verify() includes address verification in request", async () => {
|
|
1347
|
+
const address = new src_1.Address();
|
|
1348
|
+
address.addressLine1 = "123 Main St";
|
|
1349
|
+
address.city = "New York";
|
|
1350
|
+
address.state = "NY";
|
|
1351
|
+
address.postalCode = "10001";
|
|
1352
|
+
address.countryCode = "US";
|
|
1353
|
+
const response = await device
|
|
1354
|
+
.verify()
|
|
1355
|
+
.withEcrId(13)
|
|
1356
|
+
.withAddress(address)
|
|
1357
|
+
.withClerkId(1234)
|
|
1358
|
+
.execute();
|
|
1359
|
+
expect(response).toBeDefined();
|
|
1360
|
+
expect(response.status).toBe("Success");
|
|
1361
|
+
expect(response.maskedCardNumber).toBeDefined();
|
|
1362
|
+
expect(response.cardType).toBeDefined();
|
|
1363
|
+
console.log(`[Verify Address] AVS Code: ${response.avsResponseCode}, Status: ${response.status}`);
|
|
1364
|
+
});
|
|
1365
|
+
});
|
|
1366
|
+
// ===========================================================================
|
|
1367
|
+
// lineItem() with LineItemDisplay spec (lineItemLeft, lineItemRight)
|
|
1368
|
+
// ===========================================================================
|
|
1369
|
+
(0, UpaHelpertest_1.describeUpaLive)("UPA Credit – lineItem() with LineItemDisplay spec", () => {
|
|
1370
|
+
let device;
|
|
1371
|
+
beforeEach(() => {
|
|
1372
|
+
device = (0, UpaHelpertest_1.createTestDevice)();
|
|
1373
|
+
});
|
|
1374
|
+
test("lineItem() displays lineItemLeft and lineItemRight per spec", async () => {
|
|
1375
|
+
const response = await device.lineItem("Toothpaste", "10.00");
|
|
1376
|
+
expect(response).toBeInstanceOf(TransactionResponse_1.TransactionResponse);
|
|
1377
|
+
expect(response).toBeDefined();
|
|
1378
|
+
console.log(`[LineItem] Item displayed successfully`);
|
|
1379
|
+
// Clear device UI
|
|
1380
|
+
await device.cancel();
|
|
1381
|
+
});
|
|
1382
|
+
test("lineItem() uses ecrId from device instead of hardcoded value", async () => {
|
|
1383
|
+
device.ecrId = "12";
|
|
1384
|
+
const response = await device.lineItem("Test Item", "$5.00");
|
|
1385
|
+
expect(response).toBeInstanceOf(TransactionResponse_1.TransactionResponse);
|
|
1386
|
+
console.log(`[LineItem CustomEcrId] Item displayed with EcrId: 12`);
|
|
1387
|
+
// Clear device UI
|
|
1388
|
+
await device.cancel();
|
|
1389
|
+
});
|
|
1390
|
+
test("lineItem() handles optional parameters correctly", async () => {
|
|
1391
|
+
const response = await device.lineItem("Item Only");
|
|
1392
|
+
expect(response).toBeInstanceOf(TransactionResponse_1.TransactionResponse);
|
|
1393
|
+
console.log(`[LineItem Minimal] Item displayed with minimal parameters`);
|
|
1394
|
+
// Clear device UI
|
|
1395
|
+
await device.cancel();
|
|
1396
|
+
});
|
|
1397
|
+
test("lineItem() throws error for null leftText", async () => {
|
|
1398
|
+
try {
|
|
1399
|
+
await device.lineItem(null);
|
|
1400
|
+
fail("Should have thrown an error");
|
|
1401
|
+
}
|
|
1402
|
+
catch (error) {
|
|
1403
|
+
expect(error.message).toContain("cannot be null");
|
|
1404
|
+
}
|
|
1405
|
+
});
|
|
1259
1406
|
});
|
|
1260
1407
|
//# sourceMappingURL=UpaAdmin.test.js.map
|