test.js 5.27 KB
var should = require("should");
var partner = require("./partner-masterpulsa");

describe("#partner-masterpulsa", function() {
    describe("#calculateSignature", function() {
        var dt =  '20160330';
        var cid = '90ab7e6c-c8ae-11e5-b7d5-002590495d2a';
        var secret = '02fed8147f24';
        var expected = '796705c6f3c30ad0690a05cb1e481d865e5f2517559f20e93537edea80250baf';
    
        it('should return correct sign', function() {
            partner.calculateSignature(cid, secret, dt).should.equal(expected);
        });
    });
    
    describe("#parsePaymentResponse", function() {
        var message = "SUCCESS#[0] PEMBAYARAN SUKSES ke: refnum:0MS1213516666D0E1AB5BA8F15507678#30/03/16 14:58\n0MS1213516666D0E1AB5BA8F15507678\nTestDummyP\n77777777777\n774444444444\nB1/6600 VA\nRP 21.600\nKWH35,2\nSTROOM/TOKEN 6379 0660 1856 6802 5756\nADM 1.600,00#2016-03-30 14:58:41#TestDummyPanjang7744444#77777777777#774444444444#B1/6600#21600#35.2#6379-0660-1856-6802-5756#0#0#1600#2400#0";
        var response = partner.parsePaymentResponse(message);
        
        it('should return correct status', function() {
            response.status.should.equal('SUCCESS');
        });
        
        it('should return correct rcmesage', function() {
            response.rcmessage.should.equal('[0] PEMBAYARAN SUKSES ke: refnum:0MS1213516666D0E1AB5BA8F15507678');
        });
        
        it('should return correct resptext', function() {
            response.resptext.should.equal("30/03/16 14:58\n0MS1213516666D0E1AB5BA8F15507678\nTestDummyP\n77777777777\n774444444444\nB1/6600 VA\nRP 21.600\nKWH35,2\nSTROOM/TOKEN 6379 0660 1856 6802 5756\nADM 1.600,00");
        });
        
        it('should return correct dt', function() {
            response.dt.should.equal('2016-03-30 14:58:41');
        });
        
        it('should return correct namapel', function() {
            response.namapel.should.equal('TestDummyPanjang7744444');
        });
        
        it('should return correct msn', function() {
            response.msn.should.equal('77777777777');
        });
        
        it('should return correct idpel', function() {
            response.idpel.should.equal('774444444444');
        });
        
        it('should return correct tarifdaya', function() {
            response.tarifdaya.should.equal('B1/6600');
        });
        
        it('should return correct tarif', function() {
            response.tarif.should.equal('B1');
        });
        
        it('should return correct daya', function() {
            response.daya.should.equal('6600');
        });
        
        it('should return correct hargapelanggan', function() {
            response.hargapelanggan.should.equal('21600');
        });
        
        it('should return correct jumlahkwh', function() {
            response.jumlahkwh.should.equal('35.2');
        });
        
        it('should return correct token', function() {
            response.token.should.equal('6379-0660-1856-6802-5756');
        });
        
        it('should return correct ppn', function() {
            response.ppn.should.equal('0');
        });
        
        it('should return correct ppj', function() {
            response.ppj.should.equal('0');
        });
        
        it('should return correct adm', function() {
            response.adm.should.equal('1600');
        });
        
        it('should return correct angsuran', function() {
            response.angsuran.should.equal('2400');
        });
        
        it('should return correct meterai', function() {
            response.meterai.should.equal('0');
        });
        
    });
    
    describe('#getErrorCode', function() {
        
        it('should return correct errorCode', function() {
            partner.getErrorCode('[0] PEMBAYARAN SUKSES ke: refnum:0MS1213516666D0E1AB5BA8F15507678').should.equal('0');
        });

    });
    
    describe('#getST24ResponseCode', function() {
        
        it('should return correct st24 response code', function() {
            partner.getST24ResponseCode('00').should.equal('00');
            partner.getST24ResponseCode('13').should.equal('13');
            partner.getST24ResponseCode('14').should.equal('14');
            partner.getST24ResponseCode('47').should.equal('47');
            partner.getST24ResponseCode('67').should.equal('91');
            partner.getST24ResponseCode('55').should.equal('40');
        });
    });
    
    describe('#generateSN', function() {
        var message = "SUCCESS#[0] PEMBAYARAN SUKSES ke: refnum:0MS1213516666D0E1AB5BA8F15507678#30/03/16 14:58\n0MS1213516666D0E1AB5BA8F15507678\nTestDummyP\n77777777777\n774444444444\nB1/6600 VA\nRP 21.600\nKWH35,2\nSTROOM/TOKEN 6379 0660 1856 6802 5756\nADM 1.600,00#2016-03-30 14:58:41#TestDummyPanjang7744444#77777777777#774444444444#B1/6600#21600#35.2#6379-0660-1856-6802-5756#0#0#1600#2400#0";
        var response = partner.parsePaymentResponse(message);
        
        it('should return correct SN', function() {
            partner.generateSN(response).should.equal('6379-0660-1856-6802-5756/TestDummyPanjang7744444/B1/6600VA/35.2');
        });
        
    });
    
    describe('#generateDt', function() {
        it('should return correct dt', function() {
            partner.generateDt('20160401160147').should.equal('20160401');
        });
    });
});