pcp-server-nodejs-sdk
Version:
[](https://sonarcloud.io/summary/new_code?id=PAYONE-GmbH_PCP-server-nodeJS-SDK) [ => {
const payment = {
token: {
paymentData: {
data: 'data',
header: {
applicationData: undefined,
publicKeyHash: 'hashhashhash',
transactionId: 'transaction-101',
},
signature: undefined,
version: undefined,
},
paymentMethod: {
displayName: 'The name is...',
network: undefined,
type: ApplePayPaymentMethodType.CREDIT,
paymentPass: undefined,
billingContact: undefined,
},
transactionIdentifier: 'transaction-101-cc',
},
billingContact: {
phoneNumber: '+1239452324',
emailAddress: 'mail@imail.com',
givenName: 'John',
familyName: 'Michell',
phoneticGivenName: '',
phoneticFamilyName: '',
addressLines: ['Alarichtstraße 12'],
locality: 'Berlin',
postalCode: '12105',
subAdministrativeArea: '',
},
shippingContact: undefined,
};
const expected = {
paymentProductId: 302,
publicKeyHash: 'hashhashhash',
ephemeralKey: undefined,
paymentProduct302SpecificInput: {
network: undefined,
token: {
signature: undefined,
header: {
transactionId: 'transaction-101',
applicationData: undefined,
},
},
},
};
describe('transformApplePayPaymentToMobilePaymentMethodSpecificInput', () => {
test('converts an ApplePayPayment correctly', () => {
expect(transformApplePayPaymentToMobilePaymentMethodSpecificInput(payment)).toEqual(expected);
});
test('converts an ApplePayPayment with a specific payment data version correctly', () => {
const payment2 = Object.assign(Object.assign({}, payment), { token: Object.assign(Object.assign({}, payment.token), { paymentData: Object.assign(Object.assign({}, payment.token.paymentData), { version: 'EC_V1' }) }) });
const expected2 = Object.assign(Object.assign({}, expected), { paymentProduct302SpecificInput: Object.assign(Object.assign({}, expected.paymentProduct302SpecificInput), { token: Object.assign(Object.assign({}, expected.paymentProduct302SpecificInput.token), { version: ApplePaymentTokenVersion.EC_V1 }) }) });
expect(transformApplePayPaymentToMobilePaymentMethodSpecificInput(payment2)).toEqual(expected2);
});
test('converts an ApplePayPayment with different networks correctly', () => {
const networks = [
{ string: 'MasterCard', network: Network.MASTERCARD },
{ string: 'Visa', network: Network.VISA },
{ string: 'Amex', network: Network.AMEX },
{ string: 'Girocard', network: Network.GIROCARD },
{ string: 'Discover', network: Network.DISCOVER },
{ string: 'JCB', network: Network.JCB },
];
networks.forEach(({ string, network }) => {
const payment3 = Object.assign(Object.assign({}, payment), { token: Object.assign(Object.assign({}, payment.token), { paymentMethod: Object.assign(Object.assign({}, payment.token.paymentMethod), { network: string }) }) });
const expected3 = Object.assign(Object.assign({}, expected), { paymentProduct302SpecificInput: Object.assign(Object.assign({}, expected.paymentProduct302SpecificInput), { network }) });
expect(transformApplePayPaymentToMobilePaymentMethodSpecificInput(payment3)).toEqual(expected3);
});
});
test('throws an error when the network is not recognized', () => {
const payment5 = Object.assign(Object.assign({}, payment), { token: Object.assign(Object.assign({}, payment.token), { paymentMethod: Object.assign(Object.assign({}, payment.token.paymentMethod), { network: 'Unknown' }) }) });
expect(() => transformApplePayPaymentToMobilePaymentMethodSpecificInput(payment5)).toThrowError(TypeError);
});
test('throws an error when the payment data version is not recognized', () => {
const payment6 = Object.assign(Object.assign({}, payment), { token: Object.assign(Object.assign({}, payment.token), { paymentData: Object.assign(Object.assign({}, payment.token.paymentData), { version: 'Unknown' }) }) });
expect(() => transformApplePayPaymentToMobilePaymentMethodSpecificInput(payment6)).toThrowError(TypeError);
});
});
});
//# sourceMappingURL=ApplePayTransformer.test.js.map