From a42ac8d00ecf2e64163cb39f7c47607bfaa8aba0 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Fri, 2 Oct 2020 12:05:15 +0700 Subject: [PATCH] Perbaikan getBillCount. TESTED --- index.js | 10 ++++++---- test/main.js | 36 ++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 3ce5311..1a88f6c 100644 --- a/index.js +++ b/index.js @@ -245,10 +245,12 @@ function getBillCount(detailSplitted, customKeyword) { if (!detailSplitted) return 0; return Number( - (customKeyword && detailSplitted[customKeyword]) - || detailSplitted['JMLBLN'] - || '0' - ); + ( + (customKeyword && detailSplitted[customKeyword]) + || detailSplitted['JMLBLN'] + || '' + ).replace(/\D+$/g, '') + ) || 0; } exports.getRcFromMessage = getRcFromMessage; diff --git a/test/main.js b/test/main.js index 70b0b25..c04ca99 100644 --- a/test/main.js +++ b/test/main.js @@ -300,10 +300,38 @@ describe('#irs', function() { describe('#getBillCount', () => { it('should return correct value', () => { - irs.getBillCount('0BNS25G5087744307740/NAMA:SUYATMAN/DAYA:900/TARIF:R1M/JMLBLN:2BLN/PERIODE:201911,201912/METERKINI:3606/METERLALU:3564/TAGIHAN:117260/ADM:5000/DENDA:9000/TOTALBAYAR:131260').should.equal(2); - should.not.exists(irs.getBillCount('0BNS25G5087744307740/NAMA:SUYATMAN/DAYA:900/TARIF:R1M/JMLBLN:BLN/PERIODE:201911,201912/METERKINI:3606/METERLALU:3564/TAGIHAN:117260/ADM:5000/DENDA:9000/TOTALBAYAR:131260')); - should.not.exists(irs.getBillCount('')); - should.not.exists(irs.getBillCount()); + // irs.getBillCount('0BNS25G5087744307740/NAMA:SUYATMAN/DAYA:900/TARIF:R1M/JMLBLN:2BLN/PERIODE:201911,201912/METERKINI:3606/METERLALU:3564/TAGIHAN:117260/ADM:5000/DENDA:9000/TOTALBAYAR:131260').should.equal(2); + irs.getBillCount({ + NAMA: 'SUYATMAN', + DAYA: '900', + TARIF: 'R1M', + JMLBLN: 'BLN', + PERIODE: '201911,201912', + }).should.equal(0); + + irs.getBillCount({ + NAMA: 'SUYATMAN', + DAYA: '900', + TARIF: 'R1M', + JMLBLN: '2', + PERIODE: '201911,201912', + }).should.equal(2); + + irs.getBillCount({ + NAMA: 'SUYATMAN', + DAYA: '900', + TARIF: 'R1M', + JMLBLN: '2BLN', + PERIODE: '201911,201912', + }, null).should.equal(2); + + irs.getBillCount({ + NAMA: 'SUYATMAN', + DAYA: '900', + TARIF: 'R1M', + JML: '2BLN', + PERIODE: '201911,201912', + }, 'JML').should.equal(2); }); }); }); \ No newline at end of file -- 1.9.0