瀏覽代碼

Add test cases.

NaotoshiFujita 3 年之前
父節點
當前提交
8117d009a0

+ 2 - 2
dist/js/splide.js

@@ -887,7 +887,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
 
     function onMove() {
       if (!destroyed) {
-        update();
+        update(true);
       }
     }
 
@@ -898,7 +898,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
         updateVisibility();
         toggleClass(slide, CLASS_PREV, index === curr - 1);
         toggleClass(slide, CLASS_NEXT, index === curr + 1);
-        excludeAttributes && updateAttributes();
+        !excludeAttributes && updateAttributes();
       }
     }
 

File diff suppressed because it is too large
+ 0 - 0
dist/js/splide.min.js


二進制
dist/js/splide.min.js.gz


File diff suppressed because it is too large
+ 0 - 0
dist/js/splide.min.js.map


+ 1 - 1
src/js/components/Slides/Slide.ts

@@ -158,7 +158,7 @@ export function Slide( Splide: Splide, index: number, slideIndex: number, slide:
    */
   function onMove(): void {
     if ( ! destroyed ) {
-      update();
+      update( true );
     }
   }
 

+ 34 - 0
src/js/components/Slides/test/slide.test.ts

@@ -100,6 +100,40 @@ describe( 'Slide', () => {
     expect( Slide2.slide.getAttribute( 'aria-hidden' ) ).toBeNull();
   } );
 
+  test( 'should not update aria-hidden on move even if `updateOnMove` is enabled.', () => {
+    const splide = init( { speed: 100, updateOnMove: true } );
+    const { Slides } = splide.Components;
+    const { list } = splide.Components.Elements;
+
+    const Slide0 = Slides.getAt( 0 );
+    const Slide1 = Slides.getAt( 1 );
+    const Slide2 = Slides.getAt( 2 );
+
+    splide.go( 1 );
+
+    expect( Slide0.slide.getAttribute( 'aria-hidden' ) ).toBeNull();
+    expect( Slide1.slide.getAttribute( 'aria-hidden' ) ).toBe( 'true' );
+    expect( Slide2.slide.getAttribute( 'aria-hidden' ) ).toBe( 'true' );
+
+    fire( list, 'transitionend' );
+
+    expect( Slide0.slide.getAttribute( 'aria-hidden' ) ).toBe( 'true' );
+    expect( Slide1.slide.getAttribute( 'aria-hidden' ) ).toBeNull();
+    expect( Slide2.slide.getAttribute( 'aria-hidden' ) ).toBe( 'true' );
+
+    splide.go( 2 );
+
+    expect( Slide0.slide.getAttribute( 'aria-hidden' ) ).toBe( 'true' );
+    expect( Slide1.slide.getAttribute( 'aria-hidden' ) ).toBeNull();
+    expect( Slide2.slide.getAttribute( 'aria-hidden' ) ).toBe( 'true' );
+
+    fire( list, 'transitionend' );
+
+    expect( Slide0.slide.getAttribute( 'aria-hidden' ) ).toBe( 'true' );
+    expect( Slide1.slide.getAttribute( 'aria-hidden' ) ).toBe( 'true' );
+    expect( Slide2.slide.getAttribute( 'aria-hidden' ) ).toBeNull();
+  } );
+
   test( 'can emit an event when the slide becomes visible.', () => {
     const splide = init( { speed: 0, perPage: 2 } );
     const { Slides } = splide.Components;

Some files were not shown because too many files changed in this diff