UNPKG

@martcarrefour/robokassa

Version:

Robokassa Node.JS integration (Note: Original repository is now actively maintained)

98 lines (90 loc) 2.71 kB
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'); }); });