diff --git a/core/scripts/testing/scripts.js b/core/scripts/testing/scripts.js index 965bd8183e3..ff8236c6a0f 100644 --- a/core/scripts/testing/scripts.js +++ b/core/scripts/testing/scripts.js @@ -57,11 +57,19 @@ * Values can be `light`, `dark`, `high-contrast`, * or `high-contrast-dark`. Default to `light` for tests. */ - const paletteQuery = window.location.search.match(/palette=([a-z]+)/); - const paletteHash = window.location.hash.match(/palette=([a-z]+)/); + const validPalettes = ['light', 'dark', 'high-contrast', 'high-contrast-dark']; + const paletteQuery = window.location.search.match(/palette=([a-z-]+)/); + const paletteHash = window.location.hash.match(/palette=([a-z-]+)/); const darkClass = document.body?.classList.contains('ion-palette-dark') ? 'dark' : null; + const highContrastClass = document.body?.classList.contains('ion-palette-high-contrast') ? 'high-contrast' : null; + const highContrastDarkClass = darkClass && highContrastClass ? 'high-contrast-dark' : null; - const paletteName = paletteQuery?.[1] || paletteHash?.[1] || darkClass || 'light'; + let paletteName = paletteQuery?.[1] || paletteHash?.[1] || highContrastDarkClass || darkClass || highContrastClass || 'light'; + + if (!validPalettes.includes(paletteName)) { + console.warn(`Invalid palette name: '${paletteName}'. Falling back to 'light' palette.`); + paletteName = 'light'; + } if (paletteName !== 'light') { const linkTag = document.createElement('link');