]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
test: add tests to check attributes when AccordionMenu is opened/closed
authorNicolas Coden <nicolas@ncoden.fr>
Sat, 10 Nov 2018 21:21:08 +0000 (22:21 +0100)
committerNicolas Coden <nicolas@ncoden.fr>
Sat, 10 Nov 2018 21:21:08 +0000 (22:21 +0100)
test/javascript/components/accordionMenu.js

index d2b57796d1f0f046f4f73db957ffead2c98a7ecd..d1f5a8b9e4f58d635d8d40ef11d340f10bdb90e9 100644 (file)
@@ -43,18 +43,24 @@ describe('Accordion Menu', function() {
       plugin.options.should.be.an('object');
     });
   });
-  
+
   describe('up()', function() {
     it('closes the targeted submenu', function(done) {
       $html = $(template).appendTo('body');
       plugin = new Foundation.AccordionMenu($html);
+      const $submenu = $html.find('.is-accordion-submenu').eq(0);
 
       // Open it first
-      plugin.down($html.find('.is-accordion-submenu').eq(0));
-      
-      plugin.up($html.find('.is-accordion-submenu').eq(0));
+      plugin.down($submenu);
+
+      plugin.up($submenu);
+
       setTimeout(() => {
-        $html.find('.is-accordion-submenu').eq(0).should.be.hidden;
+        // Should be hidden
+        $submenu.should.be.hidden;
+        // Should have attributes updated and without active classe
+        $submenu.should.have.attr('aria-hidden', 'true');
+        $submenu.should.not.have.class('is-active');
         done();
       }, 1);
     });
@@ -89,9 +95,15 @@ describe('Accordion Menu', function() {
     it('opens the targeted submenu', function() {
       $html = $(template).appendTo('body');
       plugin = new Foundation.AccordionMenu($html, {});
+      const $submenu = $html.find('.is-accordion-submenu').eq(0);
 
-      plugin.down($html.find('.is-accordion-submenu').eq(0));
-      $html.find('.is-accordion-submenu').eq(0).should.be.visible;
+      plugin.down($submenu);
+
+      // Should be visible
+      $submenu.should.be.visible;
+      // Should have attributes updated and with an active classe
+      $submenu.should.have.attr('aria-hidden', 'false');
+      $submenu.should.have.class('is-active');
     });
 
     it('toggles attributes of title of the targeted submenu', function() {
@@ -108,7 +120,7 @@ describe('Accordion Menu', function() {
 
       // Open another one first
       plugin.down($html.find('.is-accordion-submenu').eq(0));
-      
+
       plugin.down($html.find('.is-accordion-submenu').eq(2));
       $html.find('.is-accordion-submenu').eq(0).should.be.hidden;
     });
@@ -119,7 +131,7 @@ describe('Accordion Menu', function() {
 
       // Open another one first
       plugin.down($html.find('.is-accordion-submenu').eq(0));
-      
+
       plugin.down($html.find('.is-accordion-submenu').eq(2));
       $html.find('.is-accordion-submenu').eq(0).should.be.visible;
     });