@@ -2,37 +2,61 @@ import { parseColor, formatColor } from '../src/util/color'
2
2
3
3
describe ( 'parseColor' , ( ) => {
4
4
it . each `
5
- color | output
6
- ${ 'black' } | ${ { mode : 'rgb' , color : [ '0' , '0' , '0' ] , alpha : undefined } }
7
- ${ '#0088cc' } | ${ { mode : 'rgb' , color : [ '0' , '136' , '204' ] , alpha : undefined } }
8
- ${ '#08c' } | ${ { mode : 'rgb' , color : [ '0' , '136' , '204' ] , alpha : undefined } }
9
- ${ '#0088cc99' } | ${ { mode : 'rgb' , color : [ '0' , '136' , '204' ] , alpha : '0.6' } }
10
- ${ '#08c9' } | ${ { mode : 'rgb' , color : [ '0' , '136' , '204' ] , alpha : '0.6' } }
11
- ${ 'rgb(0, 30, 60)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , '60' ] , alpha : undefined } }
12
- ${ 'rgba(0, 30, 60, 0.5)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , '60' ] , alpha : '0.5' } }
13
- ${ 'rgb(0 30 60)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , '60' ] , alpha : undefined } }
14
- ${ 'rgb(0 30 60 / 0.5)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , '60' ] , alpha : '0.5' } }
15
- ${ 'hsl(0, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , '60%' ] , alpha : undefined } }
16
- ${ 'hsl(0deg, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0deg' , '30%' , '60%' ] , alpha : undefined } }
17
- ${ 'hsl(0rad, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0rad' , '30%' , '60%' ] , alpha : undefined } }
18
- ${ 'hsl(0grad, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0grad' , '30%' , '60%' ] , alpha : undefined } }
19
- ${ 'hsl(0turn, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0turn' , '30%' , '60%' ] , alpha : undefined } }
20
- ${ 'hsla(0, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , '60%' ] , alpha : '0.5' } }
21
- ${ 'hsla(0deg, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0deg' , '30%' , '60%' ] , alpha : '0.5' } }
22
- ${ 'hsla(0rad, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0rad' , '30%' , '60%' ] , alpha : '0.5' } }
23
- ${ 'hsla(0grad, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0grad' , '30%' , '60%' ] , alpha : '0.5' } }
24
- ${ 'hsla(0turn, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0turn' , '30%' , '60%' ] , alpha : '0.5' } }
25
- ${ 'hsl(0 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , '60%' ] , alpha : undefined } }
26
- ${ 'hsl(0deg 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0deg' , '30%' , '60%' ] , alpha : undefined } }
27
- ${ 'hsl(0rad 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0rad' , '30%' , '60%' ] , alpha : undefined } }
28
- ${ 'hsl(0grad 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0grad' , '30%' , '60%' ] , alpha : undefined } }
29
- ${ 'hsl(0turn 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0turn' , '30%' , '60%' ] , alpha : undefined } }
30
- ${ 'hsl(0 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , '60%' ] , alpha : '0.5' } }
31
- ${ 'hsl(0deg 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0deg' , '30%' , '60%' ] , alpha : '0.5' } }
32
- ${ 'hsl(0rad 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0rad' , '30%' , '60%' ] , alpha : '0.5' } }
33
- ${ 'hsl(0grad 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0grad' , '30%' , '60%' ] , alpha : '0.5' } }
34
- ${ 'hsl(0turn 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0turn' , '30%' , '60%' ] , alpha : '0.5' } }
35
- ${ 'transparent' } | ${ { mode : 'rgb' , color : [ '0' , '0' , '0' ] , alpha : '0' } }
5
+ color | output
6
+ ${ 'black' } | ${ { mode : 'rgb' , color : [ '0' , '0' , '0' ] , alpha : undefined } }
7
+ ${ '#0088cc' } | ${ { mode : 'rgb' , color : [ '0' , '136' , '204' ] , alpha : undefined } }
8
+ ${ '#08c' } | ${ { mode : 'rgb' , color : [ '0' , '136' , '204' ] , alpha : undefined } }
9
+ ${ '#0088cc99' } | ${ { mode : 'rgb' , color : [ '0' , '136' , '204' ] , alpha : '0.6' } }
10
+ ${ '#08c9' } | ${ { mode : 'rgb' , color : [ '0' , '136' , '204' ] , alpha : '0.6' } }
11
+ ${ 'rgb(0, 30, 60)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , '60' ] , alpha : undefined } }
12
+ ${ 'rgba(0, 30, 60, 0.5)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , '60' ] , alpha : '0.5' } }
13
+ ${ 'rgb(0 30 60)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , '60' ] , alpha : undefined } }
14
+ ${ 'rgb(0 30 60 / 0.5)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , '60' ] , alpha : '0.5' } }
15
+ ${ 'rgb(var(--foo), 30, 60)' } | ${ { mode : 'rgb' , color : [ 'var(--foo)' , '30' , '60' ] , alpha : undefined } }
16
+ ${ 'rgb(0, var(--foo), 60)' } | ${ { mode : 'rgb' , color : [ '0' , 'var(--foo)' , '60' ] , alpha : undefined } }
17
+ ${ 'rgb(0, 30, var(--foo))' } | ${ { mode : 'rgb' , color : [ '0' , '30' , 'var(--foo)' ] , alpha : undefined } }
18
+ ${ 'rgb(0, 30, var(--foo), 0.5)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , 'var(--foo)' ] , alpha : '0.5' } }
19
+ ${ 'rgb(var(--foo), 30, var(--bar))' } | ${ { mode : 'rgb' , color : [ 'var(--foo)' , '30' , 'var(--bar)' ] , alpha : undefined } }
20
+ ${ 'rgb(var(--foo), var(--bar), var(--baz))' } | ${ { mode : 'rgb' , color : [ 'var(--foo)' , 'var(--bar)' , 'var(--baz)' ] , alpha : undefined } }
21
+ ${ 'rgb(var(--foo) 30 60)' } | ${ { mode : 'rgb' , color : [ 'var(--foo)' , '30' , '60' ] , alpha : undefined } }
22
+ ${ 'rgb(0 var(--foo) 60)' } | ${ { mode : 'rgb' , color : [ '0' , 'var(--foo)' , '60' ] , alpha : undefined } }
23
+ ${ 'rgb(0 30 var(--foo))' } | ${ { mode : 'rgb' , color : [ '0' , '30' , 'var(--foo)' ] , alpha : undefined } }
24
+ ${ 'rgb(0 30 var(--foo) / 0.5)' } | ${ { mode : 'rgb' , color : [ '0' , '30' , 'var(--foo)' ] , alpha : '0.5' } }
25
+ ${ 'rgb(var(--foo) 30 var(--bar))' } | ${ { mode : 'rgb' , color : [ 'var(--foo)' , '30' , 'var(--bar)' ] , alpha : undefined } }
26
+ ${ 'rgb(var(--foo) var(--bar) var(--baz))' } | ${ { mode : 'rgb' , color : [ 'var(--foo)' , 'var(--bar)' , 'var(--baz)' ] , alpha : undefined } }
27
+ ${ 'hsl(0, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , '60%' ] , alpha : undefined } }
28
+ ${ 'hsl(0deg, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0deg' , '30%' , '60%' ] , alpha : undefined } }
29
+ ${ 'hsl(0rad, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0rad' , '30%' , '60%' ] , alpha : undefined } }
30
+ ${ 'hsl(0grad, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0grad' , '30%' , '60%' ] , alpha : undefined } }
31
+ ${ 'hsl(0turn, 30%, 60%)' } | ${ { mode : 'hsl' , color : [ '0turn' , '30%' , '60%' ] , alpha : undefined } }
32
+ ${ 'hsla(0, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , '60%' ] , alpha : '0.5' } }
33
+ ${ 'hsla(0deg, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0deg' , '30%' , '60%' ] , alpha : '0.5' } }
34
+ ${ 'hsla(0rad, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0rad' , '30%' , '60%' ] , alpha : '0.5' } }
35
+ ${ 'hsla(0grad, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0grad' , '30%' , '60%' ] , alpha : '0.5' } }
36
+ ${ 'hsla(0turn, 30%, 60%, 0.5)' } | ${ { mode : 'hsl' , color : [ '0turn' , '30%' , '60%' ] , alpha : '0.5' } }
37
+ ${ 'hsl(0 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , '60%' ] , alpha : undefined } }
38
+ ${ 'hsl(0deg 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0deg' , '30%' , '60%' ] , alpha : undefined } }
39
+ ${ 'hsl(0rad 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0rad' , '30%' , '60%' ] , alpha : undefined } }
40
+ ${ 'hsl(0grad 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0grad' , '30%' , '60%' ] , alpha : undefined } }
41
+ ${ 'hsl(0turn 30% 60%)' } | ${ { mode : 'hsl' , color : [ '0turn' , '30%' , '60%' ] , alpha : undefined } }
42
+ ${ 'hsl(0 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , '60%' ] , alpha : '0.5' } }
43
+ ${ 'hsl(0deg 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0deg' , '30%' , '60%' ] , alpha : '0.5' } }
44
+ ${ 'hsl(0rad 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0rad' , '30%' , '60%' ] , alpha : '0.5' } }
45
+ ${ 'hsl(0grad 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0grad' , '30%' , '60%' ] , alpha : '0.5' } }
46
+ ${ 'hsl(0turn 30% 60% / 0.5)' } | ${ { mode : 'hsl' , color : [ '0turn' , '30%' , '60%' ] , alpha : '0.5' } }
47
+ ${ 'hsl(var(--foo), 30%, 60%)' } | ${ { mode : 'hsl' , color : [ 'var(--foo)' , '30%' , '60%' ] , alpha : undefined } }
48
+ ${ 'hsl(0, var(--foo), 60%)' } | ${ { mode : 'hsl' , color : [ '0' , 'var(--foo)' , '60%' ] , alpha : undefined } }
49
+ ${ 'hsl(0, 30%, var(--foo))' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , 'var(--foo)' ] , alpha : undefined } }
50
+ ${ 'hsl(0, 30%, var(--foo), 0.5)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , 'var(--foo)' ] , alpha : '0.5' } }
51
+ ${ 'hsl(var(--foo), 30%, var(--bar))' } | ${ { mode : 'hsl' , color : [ 'var(--foo)' , '30%' , 'var(--bar)' ] , alpha : undefined } }
52
+ ${ 'hsl(var(--foo), var(--bar), var(--baz))' } | ${ { mode : 'hsl' , color : [ 'var(--foo)' , 'var(--bar)' , 'var(--baz)' ] , alpha : undefined } }
53
+ ${ 'hsl(var(--foo) 30% 60%)' } | ${ { mode : 'hsl' , color : [ 'var(--foo)' , '30%' , '60%' ] , alpha : undefined } }
54
+ ${ 'hsl(0 var(--foo) 60%)' } | ${ { mode : 'hsl' , color : [ '0' , 'var(--foo)' , '60%' ] , alpha : undefined } }
55
+ ${ 'hsl(0 30% var(--foo))' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , 'var(--foo)' ] , alpha : undefined } }
56
+ ${ 'hsl(0 30% var(--foo) / 0.5)' } | ${ { mode : 'hsl' , color : [ '0' , '30%' , 'var(--foo)' ] , alpha : '0.5' } }
57
+ ${ 'hsl(var(--foo) 30% var(--bar))' } | ${ { mode : 'hsl' , color : [ 'var(--foo)' , '30%' , 'var(--bar)' ] , alpha : undefined } }
58
+ ${ 'hsl(var(--foo) var(--bar) var(--baz))' } | ${ { mode : 'hsl' , color : [ 'var(--foo)' , 'var(--bar)' , 'var(--baz)' ] , alpha : undefined } }
59
+ ${ 'transparent' } | ${ { mode : 'rgb' , color : [ '0' , '0' , '0' ] , alpha : '0' } }
36
60
` ( 'should parse "$color" to the correct value' , ( { color, output } ) => {
37
61
expect ( parseColor ( color ) ) . toEqual ( output )
38
62
} )
0 commit comments