mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
* Run test suite against both engines * make eslint happy * only run `stable` tests on Node 12 * use normal expectation instead of snapshot file When we run the tests only against `stable` (for node 12), then the snapshots exists for the `Oxide` build. They are marked as `obsolete` and will cause the `npm run test` script to fail. Sadly. Inlined them for now, but ideally we make those tests more blackbox-y so that we test that we get source maps and that we can map the sourcemap back to the input files (without looking at the actual annotations). * properly indent inline css Co-authored-by: Adam Wathan <4323180+adamwathan@users.noreply.github.com> Co-authored-by: Robin Malfait <malfait.robin@gmail.com>
244 lines
6.2 KiB
JavaScript
244 lines
6.2 KiB
JavaScript
import withAlphaVariable from '../src/util/withAlphaVariable'
|
|
import { crosscheck } from './util/run'
|
|
|
|
crosscheck(() => {
|
|
test('it adds the right custom property', () => {
|
|
expect(
|
|
withAlphaVariable({ color: '#ff0000', property: 'color', variable: '--tw-text-opacity' })
|
|
).toEqual({
|
|
'--tw-text-opacity': '1',
|
|
color: 'rgb(255 0 0 / var(--tw-text-opacity))',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'hsl(240 100% 50%)',
|
|
property: 'color',
|
|
variable: '--tw-text-opacity',
|
|
})
|
|
).toEqual({
|
|
'--tw-text-opacity': '1',
|
|
color: 'hsl(240 100% 50% / var(--tw-text-opacity))',
|
|
})
|
|
})
|
|
|
|
test('it ignores colors that cannot be parsed', () => {
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'currentColor',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'currentColor',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'rgb(255, 0)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'rgb(255, 0)',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'rgb(255)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'rgb(255)',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'rgb(255, 0, 0, 255)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'rgb(255, 0, 0, 255)',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'rgb(var(--color))',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'rgb(var(--color))',
|
|
})
|
|
})
|
|
|
|
test('it ignores colors that already have an alpha channel', () => {
|
|
expect(
|
|
withAlphaVariable({
|
|
color: '#ff0000ff',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': '#ff0000ff',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: '#ff000080',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': '#ff000080',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: '#f00a',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': '#f00a',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: '#f00f',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': '#f00f',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'rgba(255, 255, 255, 1)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'rgba(255, 255, 255, 1)',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'rgba(255, 255, 255, 0.5)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'rgba(255, 255, 255, 0.5)',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'rgba(255 255 255 / 0.5)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'rgba(255 255 255 / 0.5)',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'hsla(240, 100%, 50%, 1)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'hsla(240, 100%, 50%, 1)',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'hsla(240, 100%, 50%, 0.5)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'hsla(240, 100%, 50%, 0.5)',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'hsl(240 100% 50% / 0.5)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'background-color': 'hsl(240 100% 50% / 0.5)',
|
|
})
|
|
})
|
|
|
|
test('it allows a closure to be passed', () => {
|
|
expect(
|
|
withAlphaVariable({
|
|
color: ({ opacityVariable }) => `rgba(0, 0, 0, var(${opacityVariable}))`,
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'--tw-bg-opacity': '1',
|
|
'background-color': 'rgba(0, 0, 0, var(--tw-bg-opacity))',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: ({ opacityValue }) => `rgba(0, 0, 0, ${opacityValue})`,
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'--tw-bg-opacity': '1',
|
|
'background-color': 'rgba(0, 0, 0, var(--tw-bg-opacity))',
|
|
})
|
|
})
|
|
|
|
test('it transforms rgb and hsl to space-separated rgb and hsl', () => {
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'rgb(50, 50, 50)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'--tw-bg-opacity': '1',
|
|
'background-color': 'rgb(50 50 50 / var(--tw-bg-opacity))',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'rgb(50 50 50)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'--tw-bg-opacity': '1',
|
|
'background-color': 'rgb(50 50 50 / var(--tw-bg-opacity))',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'hsl(50, 50%, 50%)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'--tw-bg-opacity': '1',
|
|
'background-color': 'hsl(50 50% 50% / var(--tw-bg-opacity))',
|
|
})
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'hsl(50 50% 50%)',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'--tw-bg-opacity': '1',
|
|
'background-color': 'hsl(50 50% 50% / var(--tw-bg-opacity))',
|
|
})
|
|
})
|
|
|
|
test('it transforms named colors to rgb', () => {
|
|
expect(
|
|
withAlphaVariable({
|
|
color: 'red',
|
|
property: 'background-color',
|
|
variable: '--tw-bg-opacity',
|
|
})
|
|
).toEqual({
|
|
'--tw-bg-opacity': '1',
|
|
'background-color': 'rgb(255 0 0 / var(--tw-bg-opacity))',
|
|
})
|
|
})
|
|
})
|