From 52ed2bf63777c764f57bb4c3a5d4a127bff46c50 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 30 Nov 2023 10:36:21 -0500 Subject: [PATCH] feat(range): expose label wrapper as shadow part (#28601) --- core/api.txt | 1 + core/setupJest.js | 21 ++++++++++++++++++++ core/src/components/range/range.scss | 7 ------- core/src/components/range/range.tsx | 2 ++ core/src/components/range/test/range.spec.ts | 18 +++++++++++++++++ core/src/jest.d.ts | 5 +++++ core/stencil.config.ts | 1 + 7 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 core/setupJest.js create mode 100644 core/src/jest.d.ts diff --git a/core/api.txt b/core/api.txt index 67e3adea16..6018835a03 100644 --- a/core/api.txt +++ b/core/api.txt @@ -1077,6 +1077,7 @@ ion-range,css-prop,--pin-color ion-range,part,bar ion-range,part,bar-active ion-range,part,knob +ion-range,part,label ion-range,part,pin ion-range,part,tick ion-range,part,tick-active diff --git a/core/setupJest.js b/core/setupJest.js new file mode 100644 index 0000000000..f2eb0e70a3 --- /dev/null +++ b/core/setupJest.js @@ -0,0 +1,21 @@ +expect.extend({ + toHaveShadowPart(received, part) { + if (typeof part !== 'string') { + throw new Error('expected toHaveShadowPart to be called with a string of the CSS shadow part name'); + } + + if (received.shadowRoot === null) { + throw new Error('expected toHaveShadowPart to be called on an element with a shadow root'); + } + + const shadowPart = received.shadowRoot.querySelector(`[part="${part}"]`); + const pass = shadowPart !== null; + + const message = `expected ${received.tagName.toLowerCase()} to have shadow part "${part}"`; + + return { + pass, + message: () => message, + }; + }, +}); diff --git a/core/src/components/range/range.scss b/core/src/components/range/range.scss index 20b2f30a7b..404fa5d77b 100644 --- a/core/src/components/range/range.scss +++ b/core/src/components/range/range.scss @@ -216,13 +216,6 @@ */ max-width: 200px; - /** - * This ensures that double tapping this text - * clicks the