Advertisement
ralitsa_d

armage-dom

Nov 1st, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let expect = require("chai").expect;
  2. let jsdom = require("jsdom-global")();
  3. let $ = require("jquery");
  4.  
  5. function nuke(selector1, selector2) {
  6.     if (selector1 === selector2) return;
  7.     $(selector1).filter(selector2).remove();
  8. }
  9.  
  10. describe("nuke()", function() {
  11.     beforeEach(function () {
  12.         document.body.innerHTML = `<div id="target">
  13.     <div class="nested target">
  14.         <p>This is some text</p>
  15.     </div>
  16.     <div class="target">
  17.         <p>Empty div</p>
  18.     </div>
  19.     <div class="inside">
  20.         <span class="nested">Some more text</span>
  21.         <span class="target">Some more text</span>
  22.     </div>
  23. </div>
  24. `;
  25.     });
  26.  
  27.     it("with invalid first selector, should change nothing", function() {
  28.         let selector = '#target';
  29.         //let unchangedHtml = $(selector).html();
  30.         let lenBefore = $(selector).length;
  31.         nuke('p', '#target');
  32.         //let changedHtml = $(selector).html();
  33.         let lenAfter = $(selector).length;
  34.         expect(lenBefore).to.be.equal(lenAfter, "HTML changed incorrectly");
  35.     });
  36.  
  37.     it("with invalid second selector, should change nothing", function() {
  38.         let selector = '#target';
  39.         let unchangedHtml = $(selector).html();
  40.         nuke('#target', 8);
  41.         let changedHtml = $(selector).html();
  42.         expect(changedHtml).to.be.equal(unchangedHtml, "HTML changed incorrectly");
  43.     });
  44.  
  45.     it("with valid parameters, but first is omitted, should change nothing", function() {
  46.         let selector1 = '#target';
  47.         let selector2 = 'p';
  48.         let unchangedHtml = $(selector1).html();
  49.         nuke(selector1, selector2);
  50.         let changedHtml = $(selector1).html();
  51.         expect(changedHtml).to.be.equal(unchangedHtml, "HTML changed incorrectly");
  52.     });
  53.  
  54.     it("with valid parameters, but second parameter is omitted, should change nothing", function() {
  55.         let selector1 = '#target';
  56.         let selector2 = 'p';
  57.         let unchangedHtml = $(selector2).html();
  58.         nuke(selector2, selector1);
  59.         let changedHtml = $(selector2).html();
  60.         expect(changedHtml).to.be.equal(unchangedHtml, "HTML changed incorrectly");
  61.     });
  62.  
  63.     it("with valid parameters, which are the same, should change nothing", function() {
  64.         let selector = '#target';
  65.         let unchangedHtml = $(selector).html();
  66.         nuke('#target', '#target');
  67.         let changedHtml = $(selector).html();
  68.         expect(changedHtml).to.be.equal(unchangedHtml, "HTML changed incorrectly");
  69.     });
  70.  
  71.     it("with valid parameters, should change HTML", function() {
  72.         let selector1 = '.target';
  73.         let selector2 = '.nested';
  74.         nuke(selector1, selector2);
  75.         let changedHtmlLenght = $(selector1 + selector2).length;
  76.         expect(changedHtmlLenght).to.be.equal(0, "HTML changed incorrectly");
  77.     });
  78.  
  79. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement