UNPKG

silegismg-editor-articulacao

Version:
153 lines (142 loc) 8.43 kB
/* Copyright 2017 Assembleia Legislativa de Minas Gerais * * This file is part of Editor-Articulacao. * * Editor-Articulacao is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, version 3. * * Editor-Articulacao is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Editor-Articulacao. If not, see <http://www.gnu.org/licenses/>. */ describe('Importação do LexML', function () { 'use strict'; var importarDeLexML = window.importarDeLexML; it('Deve importar os artigos 1 a 3 da constituição federal', function () { var articulacao = `<Articulacao> <Titulo id="tit1"> <Rotulo>Título I</Rotulo> <NomeAgrupador>Dos Princípios Fundamentais</NomeAgrupador> <Artigo id="art1"> <Rotulo>Art. 1º</Rotulo> <Caput id="art1_cpt"> <p>A República Federativa do Brasil, formada pela união indissolúvel dos Estados e Municípios e do Distrito Federal, constitui-se em Estado democrático de direito e tem como fundamentos:</p> <Inciso id="art1_cpt_inc1"> <Rotulo>I -</Rotulo> <p>a soberania;</p> </Inciso> <Inciso id="art1_cpt_inc2"> <Rotulo>II -</Rotulo> <p>a cidadania;</p> </Inciso> <Inciso id="art1_cpt_inc3"> <Rotulo>III -</Rotulo> <p>a dignidade da pessoa humana;</p> </Inciso> <Inciso id="art1_cpt_inc4"> <Rotulo>IV -</Rotulo> <p>os valores sociais do trabalho e da livre iniciativa;</p> </Inciso> <Inciso id="art1_cpt_inc5"> <Rotulo>V -</Rotulo> <p>o pluralismo político.</p> </Inciso> </Caput> <Paragrafo id="art1_par1u"> <Rotulo>Parágrafo único.</Rotulo> <p>Todo o poder emana do povo, que o exerce por meio de representantes eleitos ou diretamente, nos termos desta Constituição.</p> </Paragrafo> </Artigo> <Artigo id="art2"> <Rotulo>Art. 2º</Rotulo> <Caput id="art2_cpt"> <p>São Poderes da União, independentes e harmônicos entre si, o Legislativo, o Executivo e o Judiciário.</p> </Caput> </Artigo> <Artigo id="art3"> <Rotulo>Art. 3º</Rotulo> <Caput id="art3_cpt"> <p>Constituem objetivos fundamentais da República Federativa do Brasil:</p> <Inciso id="art3_cpt_inc1"> <Rotulo>I -</Rotulo> <p>construir uma sociedade livre, justa e solidária;</p> </Inciso> <Inciso id="art3_cpt_inc2"> <Rotulo>II -</Rotulo> <p>garantir o desenvolvimento nacional;</p> </Inciso> <Inciso id="art3_cpt_inc3"> <Rotulo>III -</Rotulo> <p>erradicar a pobreza e a marginalização e reduzir as desigualdades sociais e regionais;</p> </Inciso> <Inciso id="art3_cpt_inc4"> <Rotulo>IV -</Rotulo> <p>promover o bem de todos, sem preconceitos de origem, raça, sexo, cor, idade e quaisquer outras formas de discriminação.</p> </Inciso> </Caput> </Artigo> </Articulacao>`; var fragmento = importarDeLexML(articulacao); var container = document.createElement('div'); container.appendChild(fragmento); expect(container.innerHTML).toBe('<p data-tipo="titulo">Dos Princípios Fundamentais</p><p data-tipo="artigo">A República Federativa do Brasil, formada pela união indissolúvel dos Estados e Municípios e do Distrito Federal, constitui-se em Estado democrático de direito e tem como fundamentos:</p><p data-tipo="inciso">a soberania;</p><p data-tipo="inciso">a cidadania;</p><p data-tipo="inciso">a dignidade da pessoa humana;</p><p data-tipo="inciso">os valores sociais do trabalho e da livre iniciativa;</p><p data-tipo="inciso">o pluralismo político.</p><p data-tipo="paragrafo" class="unico">Todo o poder emana do povo, que o exerce por meio de representantes eleitos ou diretamente, nos termos desta Constituição.</p><p data-tipo="artigo">São Poderes da União, independentes e harmônicos entre si, o Legislativo, o Executivo e o Judiciário.</p><p data-tipo="artigo">Constituem objetivos fundamentais da República Federativa do Brasil:</p><p data-tipo="inciso">construir uma sociedade livre, justa e solidária;</p><p data-tipo="inciso">garantir o desenvolvimento nacional;</p><p data-tipo="inciso">erradicar a pobreza e a marginalização e reduzir as desigualdades sociais e regionais;</p><p data-tipo="inciso">promover o bem de todos, sem preconceitos de origem, raça, sexo, cor, idade e quaisquer outras formas de discriminação.</p>'); }); it('Deve importar citações dentro de artigo', function () { var articulacao = `<Articulacao xmlns="http://www.lexml.gov.br/1.0"> <Artigo id="art1"> <Rotulo>Art. 1º –</Rotulo> <Caput id="art1_cpt"> <p>Ficam acrescidos ao art. 2º da Lei nº 1.234, de 31 de fevereiro de 2018, os incisos III e IV:</p> <p>"Art. 2º - (...)</p> <p>III - testar a importação;</p> <p>IV - outro teste.".</p> </Caput> </Artigo> <Artigo id="art2"> <Rotulo>Art. 2º –</Rotulo> <Caput id="art2_cpt"> <p>Esta lei entra em vigor na data de sua publicação.</p> </Caput> </Artigo> </Articulacao>`; var fragmento = importarDeLexML(articulacao); var container = document.createElement('div'); container.appendChild(fragmento); expect(container.innerHTML).toBe('<p data-tipo="artigo">Ficam acrescidos ao art. 2º da Lei nº 1.234, de 31 de fevereiro de 2018, os incisos III e IV:</p>' + '<p data-tipo="continuacao">"Art. 2º - (...)</p>' + '<p data-tipo="continuacao">III - testar a importação;</p>' + '<p data-tipo="continuacao">IV - outro teste.".</p>' + '<p data-tipo="artigo">Esta lei entra em vigor na data de sua publicação.</p>'); }); it('Deve transformar parágrafo vazio', function() { var articulacao = `Articulacao xmlns="http://www.lexml.gov.br/1.0"> <Artigo id="art1"> <Rotulo>Art. 1º –</Rotulo> <Caput id="art1_cpt"> <p>Teste:</p> <Inciso id="art1_cpt_inc1"> <Rotulo>II &#8211;</Rotulo> <p>Teste.</p> <Alinea id="art1_cpt_inc1_ali1"> <Rotulo>a)</Rotulo> <p /> <Item id="art3_cpt_inc7_ali1_ite1"> <Rotulo>1)</Rotulo> <p>Teste</p> </Item> </Alinea> </Inciso> </Caput> </Artigo> </Articulacao>`; var fragmento = importarDeLexML(articulacao); var container = document.createElement('div'); container.appendChild(fragmento); expect(container.innerHTML).toBe('<p data-tipo="artigo">Teste:</p><p data-tipo="inciso">Teste.</p><p data-tipo="alinea"></p><p data-tipo="item">Teste</p>'); }); });