mirror of
https://github.com/jlengrand/adyen-node-api-library.git
synced 2026-03-10 08:01:20 +00:00
implemented tests for print receipt request with special characters
This commit is contained in:
@@ -21,12 +21,17 @@ import Client from "../client";
|
||||
import Config from "../config";
|
||||
import {
|
||||
AmountsReq,
|
||||
DocumentQualifierType,
|
||||
MessageCategoryType,
|
||||
MessageClassType,
|
||||
MessageHeader,
|
||||
MessageType,
|
||||
OutputFormatType,
|
||||
OutputText,
|
||||
PaymentRequest,
|
||||
PaymentTransaction,
|
||||
PrintRequest,
|
||||
ResponseModeType,
|
||||
ReversalReasonType,
|
||||
ReversalRequest,
|
||||
SaleData,
|
||||
@@ -34,6 +39,8 @@ import {
|
||||
TerminalApiRequest,
|
||||
TransactionIdentification
|
||||
} from "../typings/terminal/models";
|
||||
import CharacterStyleEnum = OutputText.CharacterStyleEnum;
|
||||
import AlignmentEnum = OutputText.AlignmentEnum;
|
||||
|
||||
export const createClient = (apiKey = process.env.ADYEN_API_KEY): Client => {
|
||||
const config: Config = new Config();
|
||||
@@ -101,6 +108,34 @@ const paymentRequest: PaymentRequest = {
|
||||
saleData,
|
||||
};
|
||||
|
||||
const printRequest: PrintRequest = {
|
||||
printOutput: {
|
||||
documentQualifier:DocumentQualifierType.CashierReceipt,
|
||||
responseMode: ResponseModeType.PrintEnd,
|
||||
outputContent: {
|
||||
outputFormat: OutputFormatType.Text,
|
||||
outputText:[
|
||||
{
|
||||
characterStyle: CharacterStyleEnum.Bold,
|
||||
alignment: AlignmentEnum.Centred,
|
||||
endOfLineFlag:true,
|
||||
text:"This is a title"
|
||||
},
|
||||
{
|
||||
endOfLineFlag:false,
|
||||
alignment: AlignmentEnum.Left,
|
||||
text:"This is the key"
|
||||
},
|
||||
{
|
||||
endOfLineFlag:true,
|
||||
alignment: AlignmentEnum.Right,
|
||||
text:"value - üäöÖÜÄß"
|
||||
},
|
||||
],
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const getReversalRequest = (poiTransaction: TransactionIdentification): ReversalRequest => ({
|
||||
originalPOITransaction: {
|
||||
pOITransactionID: {
|
||||
@@ -128,3 +163,9 @@ export const createTerminalAPIRefundRequest = (transactionIdentification: Transa
|
||||
const saleToPOIRequest = getSaleToPOIRequest(messageHeader, { reversalRequest: getReversalRequest(transactionIdentification) });
|
||||
return { saleToPOIRequest };
|
||||
};
|
||||
|
||||
export const createTerminalAPIReceiptRequest = (): TerminalApiRequest => {
|
||||
const messageHeader = getMessageHeader({ messageCategory: MessageCategoryType.Print});
|
||||
const saleToPOIRequest = getSaleToPOIRequest(messageHeader, { printRequest });
|
||||
return { saleToPOIRequest };
|
||||
};
|
||||
|
||||
@@ -18,7 +18,11 @@
|
||||
*/
|
||||
|
||||
import nock from "nock";
|
||||
import { createClient, createTerminalAPIPaymentRequest } from "../__mocks__/base";
|
||||
import {
|
||||
createClient,
|
||||
createTerminalAPIPaymentRequest,
|
||||
createTerminalAPIReceiptRequest
|
||||
} from "../__mocks__/base";
|
||||
import { localEncRes, wrongEncRes } from "../__mocks__/terminalApi/local";
|
||||
import Client from "../client";
|
||||
import TerminalLocalAPI from "../services/terminalLocalAPI";
|
||||
@@ -84,4 +88,28 @@ describe("Terminal Local API", (): void => {
|
||||
expect(e.message).toEqual("Hmac validation failed");
|
||||
}
|
||||
});
|
||||
|
||||
test.each([isCI, true])("should print a receipt, isMock %p", async (isMock): Promise<void> => {
|
||||
!isMock && nock.restore();
|
||||
scope.post("/").reply(200, localEncRes);
|
||||
|
||||
const terminalApiReceiptRequest = createTerminalAPIReceiptRequest();
|
||||
const securityKey: SecurityKey = {
|
||||
adyenCryptoVersion: 0,
|
||||
keyIdentifier: "CryptoKeyIdentifier12345",
|
||||
keyVersion: 0,
|
||||
passphrase: "p@ssw0rd123456",
|
||||
};
|
||||
|
||||
const terminalApiResponse: TerminalApiResponse =
|
||||
await terminalLocalAPI.request(terminalApiReceiptRequest, securityKey);
|
||||
|
||||
//TODO: Implement encrypted printresponse
|
||||
if(isMock) {
|
||||
expect(terminalApiResponse.saleToPOIResponse?.paymentResponse).toBeDefined();
|
||||
} else {
|
||||
expect(terminalApiResponse.saleToPOIResponse?.printResponse).toBeDefined();
|
||||
}
|
||||
expect(terminalApiResponse.saleToPOIResponse?.messageHeader).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -47,7 +47,6 @@ class TerminalLocalAPI extends ApiKeyAuthenticatedService {
|
||||
securityKey: SecurityKey,
|
||||
): Promise<TerminalApiResponse> {
|
||||
const formattedRequest = ObjectSerializer.serialize(terminalApiRequest, "TerminalApiRequest");
|
||||
|
||||
if (formattedRequest.SaleToPOIRequest?.PaymentRequest?.SaleData?.SaleToAcquirerData) {
|
||||
const dataString = JSON.stringify(formattedRequest.SaleToPOIRequest.PaymentRequest.SaleData.SaleToAcquirerData);
|
||||
formattedRequest.SaleToPOIRequest.PaymentRequest.SaleData.SaleToAcquirerData = Buffer.from(dataString).toString("base64");
|
||||
|
||||
Reference in New Issue
Block a user