@@ -110,6 +110,37 @@ describe('MdSlider', () => {
110110 expect ( thumbDimensions . left ) . toBe ( offset ) ;
111111 } ) ;
112112
113+ it ( 'should update the track fill on drag' , ( ) => {
114+ let trackFillElement = sliderNativeElement . querySelector ( '.md-slider-track-fill' ) ;
115+ let trackFillDimensions = trackFillElement . getBoundingClientRect ( ) ;
116+ let sliderDimensions =
117+ sliderNativeElement . querySelector ( '.md-slider-track' ) . getBoundingClientRect ( ) ;
118+
119+ expect ( trackFillDimensions . width ) . toBe ( 0 ) ;
120+ dispatchDragEvent ( sliderNativeElement , 0 , 0.5 , gestureConfig ) ;
121+
122+ trackFillDimensions = trackFillElement . getBoundingClientRect ( ) ;
123+ expect ( trackFillDimensions . width ) . toBe ( sliderDimensions . width * 0.5 ) ;
124+ } ) ;
125+
126+ it ( 'should update the thumb position on drag' , ( ) => {
127+ let thumbElement = sliderNativeElement . querySelector ( '.md-slider-thumb-position' ) ;
128+ let thumbDimensions = thumbElement . getBoundingClientRect ( ) ;
129+ let thumbWidth =
130+ sliderNativeElement . querySelector ( '.md-slider-thumb' ) . getBoundingClientRect ( ) . width ;
131+ let sliderDimensions =
132+ sliderNativeElement . querySelector ( '.md-slider-track' ) . getBoundingClientRect ( ) ;
133+
134+ expect ( thumbDimensions . left ) . toBe ( sliderDimensions . left - ( thumbWidth / 2 ) ) ;
135+ dispatchDragEvent ( sliderNativeElement , 0 , 0.5 , gestureConfig ) ;
136+
137+ thumbDimensions = thumbElement . getBoundingClientRect ( ) ;
138+ // The thumb's offset is expected to be equal to the slider's offset + half the slider's width
139+ // (from the click event) - half the thumb width (to center the thumb).
140+ let offset = sliderDimensions . left + ( sliderDimensions . width * 0.5 ) - ( thumbWidth / 2 ) ;
141+ expect ( thumbDimensions . left ) . toBe ( offset ) ;
142+ } ) ;
143+
113144 it ( 'should add the md-slider-active class on click' , ( ) => {
114145 let containerElement = sliderNativeElement . querySelector ( '.md-slider-container' ) ;
115146 expect ( containerElement . classList ) . not . toContain ( 'md-slider-active' ) ;
0 commit comments