UNPKG

@adonisinoda/gerar-boletos

Version:
343 lines (280 loc) 11.5 kB
const PdfGerador = require('../../../lib/pdf-gerador'); var path = require('path'), fs = require('fs'), boletos = require('../../../lib/utils/functions/boletoUtils.js'), Itau = require('../../../lib/boleto/bancos/itau.js'), geradorDeLinhaDigitavel = require('../../../lib/boleto/gerador-de-linha-digitavel.js'), GeradorDeBoleto = require('../../../lib/boleto/gerador-de-boleto.js'), Datas = boletos.Datas, Endereco = boletos.Endereco, Beneficiario = boletos.Beneficiario, Pagador = boletos.Pagador, Boleto = boletos.Boleto, banco, boleto, beneficiario; module.exports = { setUp: function(done) { const datas = Datas.novasDatas(); datas.comDocumento('03-20-2013'); datas.comProcessamento('03-20-2013'); datas.comVencimento('04-01-2013'); const pagador = Pagador.novoPagador(); pagador.comNome('Fulano de Tal da Silva'); pagador.comRegistroNacional('00132781000178'); beneficiario = Beneficiario.novoBeneficiario(); beneficiario.comNome('Gammasoft Desenvolvimento de Software Ltda'); beneficiario.comRegistroNacional('19950366000150'); beneficiario.comAgencia('167'); beneficiario.comCarteira('157'); beneficiario.comCodigoBeneficiario('45145'); beneficiario.comNossoNumero('21897666'); beneficiario.comDigitoNossoNumero('6'); banco = new Itau(); boleto = Boleto.novoBoleto(); boleto.comDatas(datas); boleto.comBeneficiario(beneficiario); boleto.comBanco(banco); boleto.comPagador(pagador); boleto.comValorBoleto(2680.16); boleto.comNumeroDoDocumento(575); done(); }, 'Nosso número formatado deve ter oito digitos': function(test) { var beneficiario = Beneficiario.novoBeneficiario().comNossoNumero('9000206'), numeroFormatado = banco.getNossoNumeroFormatado(beneficiario); test.equals(8, numeroFormatado.length); test.equals('09000206', numeroFormatado); test.done(); }, 'Carteira formatado deve ter três dígitos': function(test) { var beneficiario = Beneficiario.novoBeneficiario().comCarteira('1'), numeroFormatado = banco.getCarteiraFormatado(beneficiario); test.equals(3, numeroFormatado.length); test.equals('001', numeroFormatado); test.done(); }, 'Conta corrente formatada deve ter cinco dígitos': function(test) { var numeroFormatado = banco.getCodigoFormatado(beneficiario); test.equals(5, numeroFormatado.length); test.equals('45145', numeroFormatado); test.done(); }, 'Verifica geração da linha digitável - 1': function(test) { var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto), linhaEsperada = '34191.57213 89766.660164 74514.590004 6 56550000268016'; test.equal(linhaEsperada, geradorDeLinhaDigitavel(codigoDeBarras, banco)); test.done(); }, 'Verifica geração da linha digitável - 2': function(test) { const datas = Datas.novasDatas(); datas.comDocumento('03-20-2014'); datas.comProcessamento('03-20-2014'); datas.comVencimento('04-10-2014'); beneficiario = Beneficiario.novoBeneficiario(); beneficiario.comNome('Mario Amaral'); beneficiario.comAgencia('8462'); beneficiario.comCarteira('174'); beneficiario.comCodigoBeneficiario('05825'); beneficiario.comNossoNumero('00015135'); beneficiario.comDigitoNossoNumero('6'); const pagador = Pagador.novoPagador(); pagador.comNome('Rodrigo de Sousa'); boleto = Boleto.novoBoleto(); boleto.comDatas(datas); boleto.comBeneficiario(beneficiario); boleto.comBanco(banco); boleto.comPagador(pagador); boleto.comValorBoleto(2680.16); boleto.comNumeroDoDocumento('575'); boleto.comBanco(banco); var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto), linhaEsperada = '34191.74002 01513.568467 20582.590004 6 60290000268016'; test.equal(linhaEsperada, geradorDeLinhaDigitavel(codigoDeBarras, banco)); test.done(); }, 'Verifica geração da linha digitável - 3': function(test) { const datas = Datas.novasDatas(); datas.comDocumento('05-21-2014'); datas.comProcessamento('05-21-2014'); datas.comVencimento('05-21-2014'); beneficiario = Beneficiario.novoBeneficiario(); beneficiario.comCarteira('181'); beneficiario.comAgencia('654'); beneficiario.comCodigoBeneficiario('8711'); //Não se deve indicar o dígito da agencia beneficiario.comNossoNumero('94588021'); beneficiario.comDigitoNossoNumero('4'); const pagador = Pagador.novoPagador(); boleto = Boleto.novoBoleto(); boleto.comEspecieDocumento('DSI'); boleto.comDatas(datas); boleto.comBeneficiario(beneficiario); boleto.comBanco(banco); boleto.comPagador(pagador); boleto.comValorBoleto(575); boleto.comNumeroDoDocumento('1'); boleto.comBanco(banco); var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto), linhaEsperada = '34191.81940 58802.140655 40871.130007 4 60700000057500', linhaGerada = geradorDeLinhaDigitavel(codigoDeBarras, banco); test.equal(linhaEsperada, linhaGerada); test.done(); }, 'Verifica geração da linha digitável - 4': function(test) { const datas = Datas.novasDatas(); datas.comDocumento('05-29-2014'); datas.comProcessamento('05-29-2014'); datas.comVencimento('06-23-2014'); beneficiario = Beneficiario.novoBeneficiario(); beneficiario.comCarteira('157'); beneficiario.comAgencia('654'); beneficiario.comCodigoBeneficiario('8711'); //Não se deve indicar o dígito da agencia beneficiario.comNossoNumero('89605074'); beneficiario.comDigitoNossoNumero('2'); const pagador = Pagador.novoPagador(); boleto = Boleto.novoBoleto(); boleto.comEspecieDocumento('DSI'); boleto.comDatas(datas); boleto.comBeneficiario(beneficiario); boleto.comBanco(banco); boleto.comPagador(pagador); boleto.comValorBoleto(115.38); boleto.comNumeroDoDocumento('2'); boleto.comBanco(banco); var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto), linhaEsperada = '34191.57890 60507.420655 40871.130007 1 61030000011538', linhaGerada = geradorDeLinhaDigitavel(codigoDeBarras, banco); test.equal(linhaEsperada, linhaGerada); test.done(); }, 'Verifica geração da linha digitável - 5': function(test) { const datas = Datas.novasDatas(); datas.comDocumento('08-20-2014'); datas.comProcessamento('08-20-2014'); datas.comVencimento('08-27-2014'); beneficiario = Beneficiario.novoBeneficiario(); beneficiario.comCarteira('157'); beneficiario.comAgencia('654'); beneficiario.comCodigoBeneficiario('8711'); //Não se deve indicar o dígito da agencia beneficiario.comNossoNumero('02891620'); beneficiario.comDigitoNossoNumero('8'); const pagador = Pagador.novoPagador(); boleto = Boleto.novoBoleto(); boleto.comEspecieDocumento('DSI'); boleto.comDatas(datas); boleto.comBeneficiario(beneficiario); boleto.comBanco(banco); boleto.comPagador(pagador); boleto.comValorBoleto(115.38); boleto.comNumeroDoDocumento('4'); boleto.comBanco(banco); var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto), linhaEsperada = '34191.57023 89162.080652 40871.130007 4 61680000011538', linhaGerada = geradorDeLinhaDigitavel(codigoDeBarras, banco); test.equal(linhaEsperada, linhaGerada); test.done(); }, 'Verifica geração da linha digitável - 6': function(test) { const datas = Datas.novasDatas(); datas.comDocumento('09-19-2014'); datas.comProcessamento('09-19-2014'); datas.comVencimento('09-26-2014'); beneficiario = Beneficiario.novoBeneficiario(); beneficiario.comCarteira('157'); beneficiario.comAgencia('654'); beneficiario.comCodigoBeneficiario('8711'); //Não se deve indicar o dígito da agencia beneficiario.comNossoNumero('07967777'); beneficiario.comDigitoNossoNumero('4'); const pagador = Pagador.novoPagador(); boleto = Boleto.novoBoleto(); boleto.comEspecieDocumento('FS'); boleto.comDatas(datas); boleto.comBeneficiario(beneficiario); boleto.comBanco(banco); boleto.comPagador(pagador); boleto.comValorBoleto(230.76); boleto.comNumeroDoDocumento('5'); boleto.comBanco(banco); var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto), linhaEsperada = '34191.57072 96777.740653 40871.130007 9 61980000023076', linhaGerada = geradorDeLinhaDigitavel(codigoDeBarras, banco); test.equal(linhaEsperada, linhaGerada); test.done(); }, 'Verifica nome correto do banco': function(test) { test.equals(banco.getNome(), 'Banco Itaú S/A'); test.done(); }, 'Verifica a numeração correta do banco': function(test) { test.equal(banco.getNumeroFormatadoComDigito(), '341-7'); test.done(); }, 'Verifica deve imprimir o nome do banco no boleto': function(test) { test.ok(banco.getImprimirNome()); test.done(); }, 'Verifica geração do código de barras': function(test) { var codigoDeBarras = banco.geraCodigoDeBarrasPara(boleto); test.equal('34196565500002680161572189766660167451459000', codigoDeBarras); test.done(); }, 'Verifica que arquivo de imagem do logotipo existe': function(test){ test.ok(fs.existsSync(banco.getImagem())); test.done(); }, 'Exibir campo CIP retorna falso': function(test){ test.equal(banco.exibirCampoCip(), false); test.done(); }, 'Verifica criação de pdf': function(test) { //Mover para teste adequado const datas2 = Datas.novasDatas(); datas2.comDocumento('09-19-2014'); datas2.comProcessamento('09-19-2014'); datas2.comVencimento('09-26-2014'); var beneficiario2 = Beneficiario.novoBeneficiario(); beneficiario2.comNome('José da Silva'); beneficiario2.comRegistroNacional('397.861.533-91'); beneficiario2.comCarteira('157'); beneficiario2.comAgencia('654'); beneficiario2.comCodigoBeneficiario('8711'); //Não se deve indicar o dígito da conta beneficiario2.comNossoNumero('07967777'); beneficiario2.comDigitoNossoNumero('4'); var pagador2 = Pagador.novoPagador(); pagador2.comNome('Asnésio da Silva'); var boleto2 = Boleto.novoBoleto(); boleto2.comEspecieDocumento('FS'); boleto2.comDatas(datas2); boleto2.comBeneficiario(beneficiario2); boleto2.comBanco(banco); boleto2.comPagador(pagador2); boleto2.comValorBoleto(230.76); boleto2.comNumeroDoDocumento('5'); boleto2.comBanco(banco); var enderecoDoPagador = Endereco.novoEndereco(); enderecoDoPagador.comLogradouro('Avenida dos Testes Unitários'); enderecoDoPagador.comBairro('Barra da Tijuca'); enderecoDoPagador.comCep('72000000'); enderecoDoPagador.comCidade('Rio de Janeiro'); enderecoDoPagador.comUf('RJ'); pagador2.comEndereco(enderecoDoPagador); boleto.comLocaisDePagamento([ 'Pagável em qualquer banco ou casa lotérica até o vencimento', 'Após o vencimento pagável apenas em agências Itaú' ]); boleto.comInstrucoes([ 'Conceder desconto de R$ 10,00 até o vencimento', 'Multa de R$ 2,34 após o vencimento', 'Mora de R$ 0,76 ao dia após o vencimento', 'Protestar após 10 dias de vencido', 'Agradecemos a preferência, volte sempre!' ]); // const geradorDeBoleto = new GeradorDeBoleto([boleto, boleto2]); new PdfGerador([boleto, boleto2]).pdfFile( '../tests/boleto/bancos/boleto-itau.pdf' ).then(async({path})=>{ test.ok(fs.existsSync(path)); test.equal(fs.unlinkSync(path), undefined); test.done(); }); } };