transbank-sdk
Version:
Transbank SDK for Node.js
60 lines (46 loc) • 2.27 kB
text/typescript
import nock from 'nock';
import { Environment, IntegrationApiKeys, IntegrationCommerceCodes, Oneclick, Options, TransactionDetail, WebpayPlus } from '../../../lib';
import ApiConstants from '../../../lib/transbank/common/api_constants';
describe('InscriptionOneclickMallTest', () => {
const apiUrl = `${Environment.Integration}${ApiConstants.ONECLICK_ENDPOINT}`;
const option = new Options(IntegrationCommerceCodes.ONECLICK_MALL, IntegrationApiKeys.WEBPAY, Environment.Integration);
afterAll(() => {
nock.cleanAll();
});
test('start', async () => {
const expectedResponse = {
token: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
url_webpay: 'https://webpay3gint.transbank.cl/webpayserver/bp_multicode_inscription.cgi'
};
const username = "steve";
const email = "steve.rogers@continuum.cl";
const returnUrl = "https://localhost:8081/oneclick-mall/finish";
nock(apiUrl)
.post(`/inscriptions`)
.reply(200, expectedResponse);
const response = await new Oneclick.MallInscription(option)
.start(username, email, returnUrl);
expect(response.url_webpay).toBe(expectedResponse.url_webpay);
expect(response.token).toBe(expectedResponse.token);
});
test('finish', async () => {
const expectedResponse = {
response_code: 0,
authorization_code: '1213',
card_type: 'Visa',
card_number: 'XXXXXXXXXXXX6623',
tbk_user: 'aaaaaaaaaaaaa-bbbbbbbb-cccccc'
};
const testToken = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
nock(apiUrl)
.put(`/inscriptions/${testToken}`)
.reply(200, expectedResponse);
const response = await new Oneclick.MallInscription(option)
.finish(testToken);
expect(response.response_code).toBe(expectedResponse.response_code);
expect(response.authorization_code).toBe(expectedResponse.authorization_code);
expect(response.card_type).toBe(expectedResponse.card_type);
expect(response.card_number).toBe(expectedResponse.card_number);
expect(response.tbk_user).toBe(expectedResponse.tbk_user);
});
});