@martcarrefour/robokassa
Version:
Robokassa Node.JS integration (Note: Original repository is now actively maintained)
98 lines (90 loc) • 2.71 kB
text/typescript
import {
buildSendingSignatureString,
calculateSendingSignatureValue,
} from './calculateSendingSignatureValue';
describe('#calculateSendingSignatureValue', () => {
describe('#buildSendingSignatureString', () => {
it('should build string WITHOUT user parameters', () => {
const result = buildSendingSignatureString({
password1: 'my_password1',
merchantLogin: 'my_merchant_login',
order: {
description: 'my_description',
outSum: '100.00',
invId: 42,
},
});
expect(result).toEqual('my_merchant_login:100.00:42:my_password1');
});
it('should build string WITH sorted user parameters', () => {
const result = buildSendingSignatureString({
password1: 'my_password1',
merchantLogin: 'my_merchant_login',
order: {
description: 'my_description',
outSum: '200.00',
invId: 84,
userParameters: {
Shp_user_id: '123',
Shp_email: 'test@test.com',
},
},
});
expect(result).toEqual(
'my_merchant_login:200.00:84:my_password1:Shp_email=test@test.com:Shp_user_id=123',
);
});
it('should build string including receipt', () => {
const result = buildSendingSignatureString({
password1: 'my_password1',
merchantLogin: 'my_merchant_login',
order: {
description: 'my_description',
outSum: '200.00',
invId: 84,
receipt: {
items: [
{
name: 'test',
quantity: 1,
sum: 200,
tax: 'vat20',
},
],
},
},
});
expect(result).toEqual(
'my_merchant_login:200.00:84:{"items":[{"name":"test","quantity":1,"sum":200,"tax":"vat20"}]}:my_password1',
);
});
});
it('should calculate correctly hash for an order WITH sorted user parameters, including receipt', () => {
const result = calculateSendingSignatureValue({
hashAlgorithm: 'md5',
merchantLogin: 'test-socionom.org',
password1: 'my_password1',
order: {
userParameters: {
shp_interface: 'link',
},
description: 'test2',
outSum: '200.00',
invId: 0,
receipt: {
items: [
{
name: 'test',
quantity: 1,
sum: 200,
payment_method: 'full_payment',
payment_object: 'service',
tax: 'vat20',
},
],
},
},
});
expect(result).toEqual('888f7275e88d20ead0fc62cdf5b69f72');
});
});