From ac59dcb5259f486c9dd3378b087e634148b0c06e Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Mon, 17 Feb 2020 10:19:47 +0100 Subject: [PATCH] additional auto-animate tests --- js/reveal.js | 9 +++++---- test/test-auto-animate.html | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/js/reveal.js b/js/reveal.js index 376a57ec..5e2cf507 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -3866,7 +3866,6 @@ // Create a new auto-animate sheet autoAnimateStyleSheet = autoAnimateStyleSheet || document.createElement( 'style' ); autoAnimateStyleSheet.type = 'text/css'; - autoAnimateStyleSheet.className = 'auto-animate-styes'; document.head.appendChild( autoAnimateStyleSheet ); var slideOptions = getAutoAnimateOptions( toSlide, { @@ -3904,10 +3903,12 @@ // Start the animation next cycle requestAnimationFrame( function() { - // This forces our newly injected styles to be applied in Firefox - getComputedStyle( autoAnimateStyleSheet ).fontWeight; + if( autoAnimateStyleSheet ) { + // This forces our newly injected styles to be applied in Firefox + getComputedStyle( autoAnimateStyleSheet ).fontWeight; - toSlide.dataset.autoAnimate = 'running'; + toSlide.dataset.autoAnimate = 'running'; + } } ); } diff --git a/test/test-auto-animate.html b/test/test-auto-animate.html index 116e4d48..60c32f4b 100644 --- a/test/test-auto-animate.html +++ b/test/test-auto-animate.html @@ -52,6 +52,7 @@ const slides = Array.prototype.map.call( document.querySelectorAll( '.slides section' ), slide => { return { + slide: slide, h1: slide.querySelector( 'h1' ), h2: slide.querySelector( 'h2' ), h3: slide.querySelector( 'h3' ) @@ -102,6 +103,23 @@ slides[1].h1.addEventListener( 'transitionend', callback ); }); + QUnit.test( 'Does not add [data-auto-animate] on non auto-animated slides', assert => { + Reveal.slide(2); + Reveal.next(); + assert.ok( slides[3].slide.hasAttribute( 'data-auto-animate' ) === false ) + }); + + QUnit.test( 'autoAnimate config option', assert => { + Reveal.configure({ autoAnimate: false }); + + assert.ok( document.querySelectorAll( 'data-auto-animate-target' ).length === 0, 'Removes all [data-auto-animate-target]' ) + assert.ok( Array.prototype.every.call( document.querySelectorAll( 'section[data-auto-animate]' ), el => { + return el.dataset.autoAnimate === ''; + }, 'All data-auto-animate attributes are reset' ) ); + + Reveal.configure({ autoAnimate: true }); + }); + } ); Reveal.initialize();