tailwindcss/tests
Robin Malfait a1246de6a5
WIP: New @apply logic
use `lightningcss` and `prettier` for `toMatchFormattedCss`

Lightning CSS applies some optimizations and prettier ensures that the
output is always formatted in the same way.

In a future version, we will be using Lightning CSS to apply
optimizations like handling the nesting, optimizing selectors, sorting
declarations, simplifying colors and so on.

To guarantee that we have the same output in both the normal version and
OXIDE version, we can apply lightningcss in our tests so that it always
produces correct results in both version with the same optimizations
applied.

This also aliases `toMatchCss` to `toMatchFormattedCss` so that we can
guarantee the same output. This has a small caveat where `lightningcss`
is pretty strict. It will complain about `@media screen(md) {}` for
example. This is correct because it is not valid CSS, but we eventually
take care of it.
In this case, we will catch the error and use prettier instead (since
this should only happen in tests that doesn't use end-to-end tests, but
uses a more specialized test instead). If prettier still finds an error,
we will ensure to throw the original error.

Eventually, all the "lower" level tests, should probably become higher
level end-to-end tests. But let's do everything step by step!
2023-01-05 16:20:24 +01:00
..
__snapshots__ Ensure configured font-feature-settings are included in Preflight (#9707) 2022-11-01 17:52:59 +00:00
fixtures remove unused fixture files 2021-12-15 18:13:09 +01:00
plugins sort test output 2023-01-05 16:01:45 +01:00
postcss-plugins/nesting Prevent nesting plugin from breaking other plugins (#7563) 2022-02-21 10:12:39 -05:00
util Don't rewrite source maps for @layer rules (#8971) 2022-07-27 12:19:08 -04:00
animations.test.js Correctly parse and prefix animation names with dots (#7163) 2022-03-01 14:08:43 -05:00
any-type.test.js use oxide 2023-01-05 16:01:11 +01:00
apply.test.css Change how we handle defaults (optimized or not) (#6926) 2022-01-07 11:39:45 -05:00
apply.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
apply.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
arbitrary-properties.test.js use oxide 2023-01-05 16:01:11 +01:00
arbitrary-values.test.css WIP: New @apply logic 2023-01-05 16:20:24 +01:00
arbitrary-values.test.html Clean up tests for TS 2023-01-05 16:01:58 +01:00
arbitrary-values.test.js Clean up tests for TS 2023-01-05 16:01:58 +01:00
arbitrary-variants.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
basic-usage.test.css use oxide 2023-01-05 16:01:11 +01:00
basic-usage.test.html Add support for visibility: collapse with new collapsed utility (#9181) 2022-09-09 13:19:24 -04:00
basic-usage.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
blocklist.test.js Clean up tests for TS 2023-01-05 16:01:58 +01:00
collapse-adjacent-rules.test.css Split ::backdrop into separate defaults group (#8567) 2022-06-09 16:26:18 -04:00
collapse-adjacent-rules.test.html Recursively collapse adjacent rules (#7565) 2022-02-21 12:58:12 -05:00
collapse-adjacent-rules.test.js Handle duplicate atrules without children (#8122) 2022-04-15 12:24:27 -04:00
collapse-duplicate-declarations.test.js Improve collapsing of duplicate declarations (#6856) 2022-01-03 15:41:49 +01:00
color-opacity-modifiers.test.js use oxide 2023-01-05 16:01:11 +01:00
color.test.js Allow for custom properties in rgb, rgba, hsl and hsla colors (#7933) 2022-03-24 12:43:21 +01:00
combined-selectors.test.js Change how we handle defaults (optimized or not) (#6926) 2022-01-07 11:39:45 -05:00
configurePlugins.test.js Use safelist 2022-07-18 09:31:45 -04:00
containerPlugin.test.js Partially revert tuple syntax PR for screens: #6104 (#6289) 2021-12-07 18:49:40 +01:00
context-reuse.test.html Invalidate context when main css changes (#7626) 2022-02-25 13:12:45 -05:00
context-reuse.test.js Clean up tests for TS 2023-01-05 16:01:58 +01:00
custom-extractors.test.css Update color parsing and formatting (#5442) 2021-09-09 16:15:53 +02:00
custom-extractors.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
custom-extractors.test.js use oxide 2023-01-05 16:01:11 +01:00
custom-plugins.test.js Change how we handle defaults (optimized or not) (#6926) 2022-01-07 11:39:45 -05:00
custom-separator.test.css JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
custom-separator.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
custom-separator.test.js JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
custom-transformers.test.html Use real files for custom transformer test 2021-12-04 13:38:40 -05:00
custom-transformers.test.js use oxide 2023-01-05 16:01:11 +01:00
custom-transformers.test.php Use real files for custom transformer test 2021-12-04 13:38:40 -05:00
customConfig.test.js use oxide 2023-01-05 16:01:11 +01:00
dark-mode.test.js Re-enable new features 2022-04-12 14:13:04 -04:00
default-extractor.test.js Match arbitrary properties even when followed by square bracketed text (#10212) 2023-01-02 09:43:07 -05:00
defaultConfig.test.js Improve public API (#5526) 2021-09-26 12:44:13 +02:00
defaultTheme.test.js Improve public API (#5526) 2021-09-26 12:44:13 +02:00
detect-nesting.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
escapeClassName.test.js [WIP] Unify JIT and AOT code paths (#4188) 2021-05-07 13:56:15 -04:00
evaluateTailwindFunctions.test.js Clean up tests for TS 2023-01-05 16:01:58 +01:00
experimental.test.js Expose context.sortClassList(classes) (#7412) 2022-02-10 18:06:41 +01:00
extractor-edge-cases.test.js Improve before and after variants (#5820) 2021-10-18 18:11:34 +02:00
flattenColorPalette.test.js [WIP] Unify JIT and AOT code paths (#4188) 2021-05-07 13:56:15 -04:00
format-variant-selector.test.js Don't prefix classes in arbitrary variants (#10214) 2023-01-03 09:40:47 -05:00
generate-rules.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
getClassList.test.js Ignore unset values (like null or undefined) when resolving the classList for intellisense (#9385) 2022-09-21 14:31:08 +02:00
getSortOrder.test.js Implement getClassOrder instead of sortClassList (#7459) 2022-02-16 11:03:00 +01:00
getVariants.test.js expose hasDash for the intellisense plugin (#9594) 2022-10-17 17:13:33 +02:00
import-syntax.test.css Split ::backdrop into separate defaults group (#8567) 2022-06-09 16:26:18 -04:00
import-syntax.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
import-syntax.test.js JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
important-boolean.test.css Split ::backdrop into separate defaults group (#8567) 2022-06-09 16:26:18 -04:00
important-boolean.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
important-boolean.test.js Clean up tests for TS 2023-01-05 16:01:58 +01:00
important-modifier-prefix.test.css Split ::backdrop into separate defaults group (#8567) 2022-06-09 16:26:18 -04:00
important-modifier-prefix.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
important-modifier-prefix.test.js JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
important-modifier.test.js Exclude non-relevant selectors when generating rules with the important modifier. Fixes #9677. (#9704) 2022-11-01 09:06:03 -04:00
important-selector.test.css Split ::backdrop into separate defaults group (#8567) 2022-06-09 16:26:18 -04:00
important-selector.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
important-selector.test.js JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
kitchen-sink.test.css use oxide 2023-01-05 16:01:11 +01:00
kitchen-sink.test.html Add variants for orientation media feature (#6046) 2021-11-23 14:59:25 -05:00
kitchen-sink.test.js use oxide 2023-01-05 16:01:11 +01:00
layer-at-rules.test.js Expose context.sortClassList(classes) (#7412) 2022-02-10 18:06:41 +01:00
layer-without-tailwind.test.css JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
layer-without-tailwind.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
layer-without-tailwind.test.js JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
match-components.test.js Change how we handle defaults (optimized or not) (#6926) 2022-01-07 11:39:45 -05:00
match-utilities.test.js sort test output 2023-01-05 16:01:45 +01:00
match-variants.test.js Fix cannot read properties of undefined (reading 'modifier') (#9656) 2022-11-03 15:10:45 +01:00
min-max-screen-variants.test.js Clean up tests for TS 2023-01-05 16:01:58 +01:00
minimum-impact-selector.test.js Enable optimize universal defaults by default (#5635) 2021-10-06 17:45:26 +02:00
modify-selectors.test.css JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
modify-selectors.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
modify-selectors.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
mutable.test.css JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
mutable.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
mutable.test.js JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
negated-content-ignore.test.html Fix using negated content globs (#5625) 2021-09-29 11:15:31 +01:00
negated-content-include.test.html Fix using negated content globs (#5625) 2021-09-29 11:15:31 +01:00
negated-content.test.js Change how we handle defaults (optimized or not) (#6926) 2022-01-07 11:39:45 -05:00
negateValue.test.js Make negative values a first-class feature, rather than theme-driven (#5709) 2021-10-06 13:42:05 -04:00
negative-prefix.test.js use oxide 2023-01-05 16:01:11 +01:00
normalize-config.test.js WIP 2023-01-05 16:01:58 +01:00
normalize-data-types.test.js Don’t add spaces around raw / that are preceded by numbers (#8688) 2022-06-20 10:49:55 -04:00
normalize-screens.test.js Add new min and max variants (#9558) 2022-10-14 14:25:25 -04:00
opacity.test.js use oxide 2023-01-05 16:01:11 +01:00
oxide-svelte.test.css use oxide 2023-01-05 16:01:11 +01:00
oxide.apply.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
oxide.test.css use oxide 2023-01-05 16:01:11 +01:00
oxide.test.html use oxide 2023-01-05 16:01:11 +01:00
oxide.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
oxide.test.svelte use oxide 2023-01-05 16:01:11 +01:00
parallel-variants.test.js Remove text opacity CSS variables from ::marker (#8622) 2022-06-14 10:09:09 -04:00
parseAnimationValue.test.js ensure we don't override the name (#5602) 2021-09-26 07:44:41 -04:00
parseObjectStyles.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
prefers-contrast.test.js Fix parallel variant ordering clash (#9282) 2022-09-09 13:12:43 -04:00
prefix.test.css Split ::backdrop into separate defaults group (#8567) 2022-06-09 16:26:18 -04:00
prefix.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
prefix.test.js use oxide 2023-01-05 16:01:11 +01:00
prefixSelector.test.js Remove prefix as a function (#5829) 2021-10-19 15:22:49 +02:00
preflight.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
raw-content.test.css use oxide 2023-01-05 16:01:11 +01:00
raw-content.test.html Add support for visibility: collapse with new collapsed utility (#9181) 2022-09-09 13:19:24 -04:00
raw-content.test.js use oxide 2023-01-05 16:01:11 +01:00
relative-purge-paths.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
relative-purge-paths.test.js JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
resolve-defaults-at-rules.test.js Split ::backdrop into separate defaults group (#8567) 2022-06-09 16:26:18 -04:00
resolveConfig.test.js Fix merging of arrays during config resolution (#9706) 2022-11-01 16:29:47 +00:00
responsive-and-variants-atrules.test.css JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
responsive-and-variants-atrules.test.html JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
responsive-and-variants-atrules.test.js JIT by default - move tests and make them consistent (#5374) 2021-09-03 13:48:16 +02:00
safelist.test.js use oxide 2023-01-05 16:01:11 +01:00
screenAtRule.test.js Refactor internals to decouple watch strategies and extract IO 2021-05-26 09:43:05 -04:00
shared-state.test.js Improve DEBUG parsing: only take care of tailwindcss and not tailwind (#6804) 2021-12-30 16:41:23 +01:00
source-maps.test.js Don't rewrite source maps for @layer rules (#8971) 2022-07-27 12:19:08 -04:00
syntax-lit-html.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
syntax-svelte.test.js use oxide 2023-01-05 16:01:11 +01:00
syntax-svelte.test.svelte Rename svelte tests 2021-09-21 12:37:49 -04:00
tailwind-screens.test.js Partially revert tuple syntax PR for screens: #6104 (#6289) 2021-12-07 18:49:40 +01:00
to-path.test.js Support square bracket notation in paths (#6519) 2021-12-15 11:09:29 -05:00
variant-grouping.test.skip.js npm run style -- --fix 2022-11-30 11:38:37 +00:00
variants.test.css Remove text opacity CSS variables from ::marker (#8622) 2022-06-14 10:09:09 -04:00
variants.test.html Add optional variant (#8486) 2022-06-01 08:39:43 -04:00
variants.test.js WIP: New @apply logic 2023-01-05 16:20:24 +01:00
warnings.test.js Clean up tests for TS 2023-01-05 16:01:58 +01:00
withAlphaVariable.test.js Update color parsing and formatting (#5442) 2021-09-09 16:15:53 +02:00