@@ -27,6 +27,18 @@ function keyboardEvent(key: string): KeyboardEvent {
2727 return new KeyboardEvent ( 'keydown' , { key} ) ;
2828}
2929
30+ function pointerEvent ( type : 'pointerdown' | 'pointerup' , pointerType : 'mouse' | 'touch' , clientX : number ) : PointerEvent {
31+ return new PointerEvent ( type , {
32+ pointerId : 1 ,
33+ clientX,
34+ clientY : 0 ,
35+ pointerType,
36+ isPrimary : true ,
37+ bubbles : true ,
38+ cancelable : true ,
39+ } ) ;
40+ }
41+
3042const defaultHandle : SliderHandle = { id : 0 , value : 0 , ariaLabel : 'Value' , ariaValueText : undefined , ariaLabelledBy : undefined } ;
3143
3244const defaultState : ( ) => SliderState = ( ) => ( {
@@ -83,15 +95,17 @@ describe(`Slider basic`, () => {
8395 let defConfig : WritableSignal < Partial < SliderProps > > ;
8496
8597 const clickAreaX = ( clientX : number ) => {
86- attachDirectiveAndSendEvent ( slider . directives . clickableAreaDirective , undefined , ( node ) =>
87- node . dispatchEvent ( new MouseEvent ( 'mousedown' , { clientX} ) ) ,
88- ) ;
98+ attachDirectiveAndSendEvent ( slider . directives . clickableAreaDirective , undefined , ( node ) => {
99+ node . dispatchEvent ( pointerEvent ( 'pointerdown' , 'mouse' , clientX ) ) ;
100+ node . dispatchEvent ( pointerEvent ( 'pointerup' , 'mouse' , clientX ) ) ;
101+ } ) ;
89102 } ;
90103
91104 const touchAreaX = ( clientX : number ) => {
92- attachDirectiveAndSendEvent ( slider . directives . clickableAreaDirective , undefined , ( node ) =>
93- node . dispatchEvent ( new TouchEvent ( 'touchstart' , { touches : [ new Touch ( { clientX, identifier : 0 , target : new EventTarget ( ) } ) ] } ) ) ,
94- ) ;
105+ attachDirectiveAndSendEvent ( slider . directives . clickableAreaDirective , undefined , ( node ) => {
106+ node . dispatchEvent ( pointerEvent ( 'pointerdown' , 'touch' , clientX ) ) ;
107+ node . dispatchEvent ( pointerEvent ( 'pointerup' , 'touch' , clientX ) ) ;
108+ } ) ;
95109 } ;
96110 const useKeyOnHandle = ( key : string ) => {
97111 attachDirectiveAndSendEvent ( slider . directives . handleEventsDirective , { item : { id : 0 } } , ( node ) => node . dispatchEvent ( keyboardEvent ( key ) ) ) ;
@@ -1790,9 +1804,10 @@ describe(`Slider range`, () => {
17901804 let defConfig : WritableSignal < Partial < SliderProps > > ;
17911805 let currentLowLabel : HTMLDivElement , currentHighLabel : HTMLDivElement , combinedLabel : HTMLDivElement ;
17921806 const clickAreaX = ( clientX : number ) => {
1793- attachDirectiveAndSendEvent ( slider . directives . clickableAreaDirective , undefined , ( node ) =>
1794- node . dispatchEvent ( new MouseEvent ( 'mousedown' , { clientX} ) ) ,
1795- ) ;
1807+ attachDirectiveAndSendEvent ( slider . directives . clickableAreaDirective , undefined , ( node ) => {
1808+ node . dispatchEvent ( pointerEvent ( 'pointerdown' , 'mouse' , clientX ) ) ;
1809+ node . dispatchEvent ( pointerEvent ( 'pointerup' , 'mouse' , clientX ) ) ;
1810+ } ) ;
17961811 } ;
17971812 const useKeyOnHandle = ( key : string , handleId = 0 ) => {
17981813 attachDirectiveAndSendEvent ( slider . directives . handleEventsDirective , { item : { id : handleId } } , ( node ) => node . dispatchEvent ( keyboardEvent ( key ) ) ) ;
0 commit comments