From f2ec5da0b5e36941c82c9b25e4ba774699565684 Mon Sep 17 00:00:00 2001 From: JC Franco Date: Thu, 20 Oct 2022 14:01:18 -0700 Subject: [PATCH] fix(slider): fix slider (single-value) error when clicking range --- src/components/slider/slider.e2e.ts | 54 +++++++++++++++++++++++++++++ src/components/slider/slider.tsx | 7 ++-- 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/components/slider/slider.e2e.ts b/src/components/slider/slider.e2e.ts index 5285cc07ac4..1c6096e1879 100644 --- a/src/components/slider/slider.e2e.ts +++ b/src/components/slider/slider.e2e.ts @@ -270,6 +270,60 @@ describe("calcite-slider", () => { expect(changeEvent).toHaveReceivedEventTimes(1); }); + describe("thumb focus for single value", () => { + const sliderForThumbFocusTests = html``; + + it("should focus thumb when clicked near", async () => { + const page = await newE2EPage(); + await page.setContent(html`${sliderForThumbFocusTests}`); + const slider = await page.find("calcite-slider"); + const [trackX, trackY] = await getElementXY(page, "calcite-slider", ".track"); + + await page.mouse.move(trackX + 50, trackY); + await page.mouse.down(); + await page.mouse.up(); + await page.waitForChanges(); + + let isThumbFocused = await page.$eval("calcite-slider", (slider) => + slider.shadowRoot.activeElement?.classList.contains("thumb--value") + ); + + expect(isThumbFocused).toBe(true); + expect(await slider.getProperty("value")).toBe(50); + + await page.mouse.move(trackX + 40, trackY); + await page.mouse.down(); + await page.mouse.up(); + await page.waitForChanges(); + + isThumbFocused = await page.$eval("calcite-slider", (slider) => + slider.shadowRoot.activeElement?.classList.contains("thumb--value") + ); + + expect(isThumbFocused).toBe(true); + expect(await slider.getProperty("value")).toBe(40); + + await page.mouse.move(trackX + 60, trackY); + await page.mouse.down(); + await page.mouse.up(); + await page.waitForChanges(); + + isThumbFocused = await page.$eval("calcite-slider", (slider) => + slider.shadowRoot.activeElement?.classList.contains("thumb--value") + ); + + expect(isThumbFocused).toBe(true); + expect(await slider.getProperty("value")).toBe(60); + }); + }); + describe("thumb focus in range", () => { const sliderForThumbFocusTests = html`