@@ -69,6 +69,16 @@ describe("pat-scroll-box", function () {
6969 expect ( el . classList ) . not . toContain ( "scrolling-up" ) ;
7070 expect ( el . classList ) . toContain ( "scrolling-down" ) ;
7171
72+ el . scrollTop = 250 ; // overscrolling / elastic scrolling in Safari
73+ el . dispatchEvent ( events . scroll_event ( ) ) ;
74+ await utils . animation_frame ( ) ;
75+ expect ( el . classList ) . not . toContain ( "scroll-position-top" ) ;
76+ expect ( el . classList ) . toContain ( "scroll-position-bottom" ) ;
77+ expect ( el . classList ) . not . toContain ( "scroll-up" ) ;
78+ expect ( el . classList ) . toContain ( "scroll-down" ) ;
79+ expect ( el . classList ) . not . toContain ( "scrolling-up" ) ;
80+ expect ( el . classList ) . toContain ( "scrolling-down" ) ;
81+
7282 el . scrollTop = 0 ;
7383 el . dispatchEvent ( events . scroll_event ( ) ) ;
7484 await utils . animation_frame ( ) ;
@@ -79,6 +89,16 @@ describe("pat-scroll-box", function () {
7989 expect ( el . classList ) . toContain ( "scrolling-up" ) ;
8090 expect ( el . classList ) . not . toContain ( "scrolling-down" ) ;
8191
92+ el . scrollTop = - 50 ; // overscrolling / elastic scrolling in Safari
93+ el . dispatchEvent ( events . scroll_event ( ) ) ;
94+ await utils . animation_frame ( ) ;
95+ expect ( el . classList ) . toContain ( "scroll-position-top" ) ;
96+ expect ( el . classList ) . not . toContain ( "scroll-position-bottom" ) ;
97+ expect ( el . classList ) . toContain ( "scroll-up" ) ;
98+ expect ( el . classList ) . not . toContain ( "scroll-down" ) ;
99+ expect ( el . classList ) . toContain ( "scrolling-up" ) ;
100+ expect ( el . classList ) . not . toContain ( "scrolling-down" ) ;
101+
82102 // Test for clearing the scrolling classes after a scroll stop
83103 // scroll-up and scroll-down are not cleared.
84104
0 commit comments