get-params-members.js 2 KB
/* global describe it */

const fs = require('fs');
const should = require('should');
const xmlParser = require('fast-xml-parser');
const getParamsMembers = require('../../lib/generic-xmlrpc/get-params-members');

const xmlParserOptions = {
    parseNodeValue: false,
    trimValues: true,
};

const topUpRequestPayload = fs.readFileSync('./test-data/top-up-request-1.xml').toString();

const topUpRequestObj = xmlParser.parse(topUpRequestPayload, xmlParserOptions);

const methodResponsePayload = fs.readFileSync('./test-data/method-response-1.xml').toString();
const methodResponseObj = xmlParser.parse(methodResponsePayload, xmlParserOptions);

describe('#generic-xmlrpc', () => {
    describe('#get-params-members', () => {
        it('should return correct result (from topUpRequest)', () => {
            const result = getParamsMembers(topUpRequestObj);

            should.exists(result, '68DC1F18');
            result.find((item) => item.name === 'MSISDN').value.should.equal('0818111222', 'FF483A06');
            result.find((item) => item.name === 'REQUESTID').value.should.equal('123456', '65208338');
            result.find((item) => item.name === 'PIN').value.should.equal('6633', 'B420C34C');
            result.find((item) => item.name === 'NOHP').value.should.equal('0818111333', '706A0594');
            result.find((item) => item.name === 'NOM').value.should.equal('XR10', 'F594F6B3');
        });

        it('should return correct result (from methodResponse)', () => {
            const result = getParamsMembers(methodResponseObj);

            should.exists(result, '426E3B71');
            result.find((item) => item.name === 'RESPONSECODE').value.should.equal('00', '8AFE55D2');
            result.find((item) => item.name === 'REQUESTID').value.should.equal('123456', 'BDD4A32F');
            result.find((item) => item.name === 'MESSAGE').value.should.equal('TOP UP BERHASIL', 'D817F0F5');
            result.find((item) => item.name === 'TRANSACTIONID').value.should.equal('666333', '9E2ED185');
        });
    });
});