import path from 'path' import { run, css } from './util/run' test('using @layer without @tailwind', async () => { let config = { content: [path.resolve(__dirname, './layer-without-tailwind.test.html')], } let input = css` @layer components { .foo { color: black; } } ` await expect(run(input, config)).rejects.toThrowError( '`@layer components` is used but no matching `@tailwind components` directive is present.' ) }) test('using @responsive without @tailwind', async () => { let config = { content: [path.resolve(__dirname, './layer-without-tailwind.test.html')], } let input = css` @responsive { .foo { color: black; } } ` await expect(run(input, config)).rejects.toThrowError( '`@responsive` is used but `@tailwind utilities` is missing.' ) }) test('using @variants without @tailwind', async () => { let config = { content: [path.resolve(__dirname, './layer-without-tailwind.test.html')], } let input = css` @variants hover { .foo { color: black; } } ` await expect(run(input, config)).rejects.toThrowError( '`@variants` is used but `@tailwind utilities` is missing.' ) }) test('non-Tailwind @layer rules are okay', async () => { let config = { content: [path.resolve(__dirname, './layer-without-tailwind.test.html')], } let input = css` @layer custom { .foo { color: black; } } ` return run(input, config).then((result) => { expect(result.css).toMatchFormattedCss(css` @layer custom { .foo { color: black; } } `) }) })