import { crosscheck, run, html, css } from './util/run' crosscheck(() => { test('important modifier', () => { let config = { important: false, darkMode: 'class', content: [ { raw: html`
`, }, ], corePlugins: { preflight: false }, plugins: [ function ({ theme, matchUtilities, addComponents }) { matchUtilities( { 'custom-parent': (value) => { return { '.custom-child': { margin: value, }, } }, }, { values: theme('spacing') } ) addComponents({ '.btn': { '&.disabled, &:disabled': { color: 'gray', }, }, }) }, ], } let input = css` @tailwind components; @tailwind utilities; ` return run(input, config).then((result) => { expect(result.css).toMatchFormattedCss(css` .\!container { width: 100% !important; } @media (min-width: 640px) { .\!container { max-width: 640px !important; } } @media (min-width: 768px) { .\!container { max-width: 768px !important; } } @media (min-width: 1024px) { .\!container { max-width: 1024px !important; } } @media (min-width: 1280px) { .\!container { max-width: 1280px !important; } } @media (min-width: 1536px) { .\!container { max-width: 1536px !important; } } .btn.disabled, .btn:disabled { color: gray; } .btn.\!disabled { color: gray !important; } .\!font-bold { font-weight: 700 !important; } .\!custom-parent-5 .custom-child { margin: 1.25rem !important; } .hover\:\!text-center:hover { text-align: center !important; } @media (min-width: 1024px) { .lg\:\!opacity-50 { opacity: 0.5 !important; } } @media (min-width: 1280px) { .xl\:focus\:disabled\:\!float-right:disabled:focus { float: right !important; } } `) }) }) test('the important modifier works on utilities using :where()', () => { let config = { content: [ { raw: html` `, }, ], corePlugins: { preflight: false }, plugins: [ function ({ addComponents }) { addComponents({ ':where(.btn)': { backgroundColor: '#00f', }, }) }, ], } let input = css` @tailwind components; @tailwind utilities; ` return run(input, config).then((result) => { expect(result.css).toMatchFormattedCss(css` :where(.\!btn) { background-color: #00f !important; } :where(.btn) { background-color: #00f; } :where(.hover\:btn:hover) { background-color: #00f; } :where(.hover\:focus\:disabled\:\!btn:disabled:focus:hover) { background-color: #00f !important; } `) }) }) })