From c315db5f150428f6d8e0b2f6c83de63feb6ca036 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 3 Sep 2021 17:46:15 +0200 Subject: [PATCH] port @layer tests from AOT to JIT mode (#5379) --- tests/layer-at-rules.test.js | 131 +++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/tests/layer-at-rules.test.js b/tests/layer-at-rules.test.js index ac89d1784140..2cb7c11b7bdb 100644 --- a/tests/layer-at-rules.test.js +++ b/tests/layer-at-rules.test.js @@ -49,3 +49,134 @@ test('custom user-land utilities', () => { `) }) }) + +test('layers are grouped and inserted at the matching @tailwind rule', () => { + let config = { + content: [ + { raw: html`
` }, + ], + plugins: [ + function ({ addBase, addComponents, addUtilities }) { + addBase({ body: { margin: 0 } }) + + addComponents({ + '.input': { background: 'white' }, + }) + + addUtilities({ + '.float-squirrel': { float: 'squirrel' }, + }) + }, + ], + corePlugins: { preflight: false }, + } + + let input = css` + @layer vanilla { + strong { + font-weight: medium; + } + } + + @tailwind base; + @tailwind components; + @tailwind utilities; + + @layer components { + .btn { + background: blue; + } + } + + @layer utilities { + .align-banana { + text-align: banana; + } + } + + @layer base { + h1 { + font-weight: bold; + } + } + + @layer components { + .card { + border-radius: 12px; + } + } + + @layer base { + p { + font-weight: normal; + } + } + + @layer utilities { + .align-sandwich { + text-align: sandwich; + } + } + + @layer chocolate { + a { + text-decoration: underline; + } + } + ` + + expect.assertions(2) + + return run(input, config).then((result) => { + expect(result.warnings().length).toBe(0) + expect(result.css).toMatchFormattedCss(css` + @layer vanilla { + strong { + font-weight: medium; + } + } + + body { + margin: 0; + } + + h1 { + font-weight: bold; + } + + p { + font-weight: normal; + } + + .input { + background: white; + } + + .btn { + background: blue; + } + + .card { + border-radius: 12px; + } + + .float-squirrel { + float: squirrel; + } + + .align-banana { + text-align: banana; + } + + .align-sandwich { + text-align: sandwich; + } + + @layer chocolate { + a { + text-decoration: underline; + } + } + `) + }) +})