]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
tests: replace duplicate code in the toggler test 11052/head
authorDaniel Ruf <daniel@daniel-ruf.de>
Sat, 17 Mar 2018 19:29:33 +0000 (20:29 +0100)
committerDaniel Ruf <daniel@daniel-ruf.de>
Sat, 17 Mar 2018 19:29:33 +0000 (20:29 +0100)
test/javascript/components/toggler.js

index 65c6ed77fd32181eb27c6fa891dcafa6ce764677..7d90107950121e9b4f69084a35509a326bef268f 100644 (file)
@@ -7,6 +7,14 @@ describe('Toggler', function() {
     $html.remove();
   });
 
+  function appendTriggers() {
+    return $(`<div>
+      <a data-open="toggler">Open</a>
+      <a data-close="toggler">Close</a>
+      <a data-toggle="toggler">Toggle</a>
+    </div>`).appendTo('body')
+  }
+
   describe('constructor()', function() {
     it('stores the element and plugin options', function() {
       $html = $('<div id="toggler" data-toggler="class"></div>').appendTo('body');
@@ -42,47 +50,29 @@ describe('Toggler', function() {
 
     it('adds Aria attributes to click triggers', function() {
       $html = $('<div id="toggler" data-toggler="class"></div>').appendTo('body');
-      var $triggers = $(`<div>
-          <a data-open="toggler">Open</a>
-          <a data-close="toggler">Close</a>
-          <a data-toggle="toggler">Toggle</a>
-        </div>`).appendTo('body');
+      var $triggers = appendTriggers();
       plugin = new Foundation.Toggler($html, {});
 
-      $triggers.find('[data-open]').should.have.attr('aria-controls', 'toggler');
-      $triggers.find('[data-close]').should.have.attr('aria-controls', 'toggler');
-      $triggers.find('[data-toggle]').should.have.attr('aria-controls', 'toggler');
+      $triggers.find('[data-open], [data-close], [data-toggle]').should.have.attr('aria-controls', 'toggler');
 
       $triggers.remove();
     });
 
     it('sets aria-expanded to true if the element is visible', function() {
       $html = $('<div id="toggler" data-toggler="class"></div>').appendTo('body');
-      var $triggers = $(`<div>
-          <a data-open="toggler">Open</a>
-          <a data-close="toggler">Close</a>
-          <a data-toggle="toggler">Toggle</a>
-        </div>`).appendTo('body');
+      var $triggers = appendTriggers();
       plugin = new Foundation.Toggler($html, {});
 
-      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'true');
-      $triggers.find('[data-close]').should.have.attr('aria-expanded', 'true');
-      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'true');
+      $triggers.find('[data-open], [data-close], [data-toggle]').should.have.attr('aria-expanded', 'true');
     });
 
     it('sets aria-expanded to false if the element is invisible', function() {
       var $css = $('<style>#toggler { display: none }</style>').appendTo('body');
       $html = $('<div id="toggler" data-toggler="class"></div>').appendTo('body');
-      var $triggers = $(`<div>
-          <a data-open="toggler">Open</a>
-          <a data-close="toggler">Close</a>
-          <a data-toggle="toggler">Toggle</a>
-        </div>`).appendTo('body');
+      var $triggers = appendTriggers();
       plugin = new Foundation.Toggler($html, {});
 
-      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'false');
-      $triggers.find('[data-close]').should.have.attr('aria-expanded', 'false');
-      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'false');
+      $triggers.find('[data-open], [data-close], [data-toggle]').should.have.attr('aria-expanded', 'false');
       $css.remove();
     });
   });
@@ -106,22 +96,14 @@ describe('Toggler', function() {
 
     it('updates aria-expanded after the class is toggled', function() {
       $html = $('<div id="toggler" data-toggler="class"></div>').appendTo('body');
-      var $triggers = $(`<div>
-          <a data-open="toggler">Open</a>
-          <a data-close="toggler">Close</a>
-          <a data-toggle="toggler">Toggle</a>
-        </div>`).appendTo('body');
+      var $triggers = appendTriggers();
       plugin = new Foundation.Toggler($html, {});
 
       plugin._toggleClass();
-      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'true');
-      $triggers.find('[data-close]').should.have.attr('aria-expanded', 'true');
-      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'true');
+      $triggers.find('[data-open], [data-close], [data-toggle]').should.have.attr('aria-expanded', 'true');
 
       plugin._toggleClass();
-      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'false');
-      $triggers.find('[data-close]').should.have.attr('aria-expanded', 'false');
-      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'false');
+      $triggers.find('[data-open], [data-close], [data-toggle]').should.have.attr('aria-expanded', 'false');
     });
   });
 
@@ -130,19 +112,11 @@ describe('Toggler', function() {
     it('animates an invisible element in', function(done) {
       var $css = $('<style>#toggler { display: none; }</style>').appendTo('body');
       $html = $('<div id="toggler" data-toggler data-animate="fade-in fade-out"></div>').appendTo('body');
-      var $triggers = $(`<div>
-          <a data-open="toggler">Open</a>
-          <a data-close="toggler">Close</a>
-          <a data-toggle="toggler">Toggle</a>
-        </div>`).appendTo('body');
 
       plugin = new Foundation.Toggler($html, {});
 
       $html.on('on.zf.toggler', function() {
         $('#toggler').should.be.visible;
-        $triggers.find('[data-open]').should.have.attr('aria-expanded', 'true');
-        $triggers.find('[data-close]').should.have.attr('aria-expanded', 'true');
-        $triggers.find('[data-open]').should.have.attr('aria-expanded', 'true');
         $css.remove();
         done();
       });
@@ -150,21 +124,13 @@ describe('Toggler', function() {
       plugin._toggleAnimate();
     });
 
-    it('animates an visible element out', function(done) {
+    it('animates a visible element out', function(done) {
       $html = $('<div id="toggler" data-toggler data-animate="fade-in fade-out"></div>').appendTo('body');
-      var $triggers = $(`<div>
-          <a data-open="toggler">Open</a>
-          <a data-close="toggler">Close</a>
-          <a data-toggle="toggler">Toggle</a>
-        </div>`).appendTo('body');
 
       plugin = new Foundation.Toggler($html, {});
 
       $html.on('off.zf.toggler', function() {
         $('#toggler').should.be.hidden;
-        $triggers.find('[data-open]').should.have.attr('aria-expanded', 'false');
-        $triggers.find('[data-close]').should.have.attr('aria-expanded', 'false');
-        $triggers.find('[data-open]').should.have.attr('aria-expanded', 'false');
         done();
       });