Skip to content

Commit f9d90eb

Browse files
iveysaurdevversion
authored andcommitted
Add tests for thumb and track position on drag
1 parent ea98ebd commit f9d90eb

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/components/slider/slider.spec.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)