@@ -55,6 +55,29 @@ ruleTester.run("no-invalid-properties", rule, {
55
55
":root { --my-color: red; }\na { color: var(--my-color, var(--fallback-color, var(--foo, var(--bar)))) }" ,
56
56
":root { --my-color: red; }\na { color: var(--my-color, var(--fallback-color, var(--foo, var(--bar, blue)))) }" ,
57
57
":root { --color: red }\na { border-top: 1px var(--style, var(--fallback, solid)) var(--color, blue); }" ,
58
+ "a { color: VAR(--my-color, red) }" ,
59
+ ":root { --my-heading: 3rem; }\na { color: vAr(--my-color, red) }" ,
60
+ ":root { --my-heading: 3rem; --foo: red }\na { color: VAR(--my-color, VAR(--foo, blue)) }" ,
61
+ ":root { --my-heading: 3rem; }\na { color: VAR(--my-color, vAr(--foo, blue)) }" ,
62
+ "a { color: vAR(--my-color, VaR(--foo, VAR(--bar, blue))) }" ,
63
+ ":root { --my-color: red; }\na { color: Var(--my-color, blue) }" ,
64
+ ":root { --my-fallback: red; }\na { color: var(--my-color, VAR(--my-fallback)) }" ,
65
+ ":root { --my-fallback: red; }\na { color: VAR(--my-color, var(--my-fallback, blue)) }" ,
66
+ ":root { --foo: red; }\na { color: vAr(--my-color, VAR(--my-fallback, VaR(--foo))) }" ,
67
+ "a { color: VAR(--my-color, vAr(--my-fallback, VAR(--foo, blue))) }" ,
68
+ ":root { --my-color: red; }\na { color: Var(--my-color, VAR(--fallback-color)) }" ,
69
+ ":root { --my-color: red; --fallback-color: blue; }\na { color: VAR(--my-color, var(--fallback-color)) }" ,
70
+ ":root { --my-color: red; }\na { color: var(--my-color, VaR(--fallback-color, blue)) }" ,
71
+ ":root { --my-color: red; }\na { color: VAR(--my-color, vAr(--fallback-color, VAR(--foo))) }" ,
72
+ ":root { --my-color: red; }\na { color: vAr(--my-color, VAR(--fallback-color, var(--foo, blue))) }" ,
73
+ ":root { --my-color: red; }\na { color: VAR(--my-color, vAr(--fallback-color, VAR(--foo, var(--bar)))) }" ,
74
+ ":root { --my-color: red; }\na { color: vAr(--my-color, VAR(--fallback-color, var(--foo, VaR(--bar, blue)))) }" ,
75
+ ":root { --color: red }\na { border-top: 1px VAR(--style, vAr(--fallback, solid)) VaR(--color, blue); }" ,
76
+ ":root { --MY-COLOR: red; }\na { color: var(--MY-COLOR) }" ,
77
+ ":root { --my-color: red; }\na { color: var(--MY-COLOR, red) }" ,
78
+ ":root { --MY-COLOR: red; }\na { color: var(--my-color, blue) }" ,
79
+ ":root { --FALLBACK-COLOR: blue; }\na { color: var(--MY-COLOR, var(--FALLBACK-COLOR)) }" ,
80
+ ":root { --fallback-color: blue; }\na { color: VAR(--MY-COLOR, VaR(--fallback-color)) }" ,
58
81
{
59
82
code : "a { my-custom-color: red; }" ,
60
83
languageOptions : {
@@ -69,6 +92,10 @@ ruleTester.run("no-invalid-properties", rule, {
69
92
code : "a { color: var(--my-color); }" ,
70
93
options : [ { allowUnknownVariables : true } ] ,
71
94
} ,
95
+ {
96
+ code : "a { color: VAR(--my-color); }" ,
97
+ options : [ { allowUnknownVariables : true } ] ,
98
+ } ,
72
99
{
73
100
code : "a { --my-color: red; color: var(--my-color); background-color: var(--unknown-var); }" ,
74
101
options : [ { allowUnknownVariables : true } ] ,
@@ -77,6 +104,10 @@ ruleTester.run("no-invalid-properties", rule, {
77
104
code : ":root { --color: red }\na { border-top: 1px var(--style, var(--fallback)) var(--color, blue); }" ,
78
105
options : [ { allowUnknownVariables : true } ] ,
79
106
} ,
107
+ {
108
+ code : ":root { --color: red }\na { border-top: 1px VAR(--style, VAR(--fallback)) VAR(--color, blue); }" ,
109
+ options : [ { allowUnknownVariables : true } ] ,
110
+ } ,
80
111
81
112
/*
82
113
* CSSTree doesn't currently support custom functions properly, so leaving
@@ -295,6 +326,36 @@ ruleTester.run("no-invalid-properties", rule, {
295
326
} ,
296
327
] ,
297
328
} ,
329
+ {
330
+ code : "a { color: var(--MY-COLOR); }" ,
331
+ errors : [
332
+ {
333
+ messageId : "unknownVar" ,
334
+ data : {
335
+ var : "--MY-COLOR" ,
336
+ } ,
337
+ line : 1 ,
338
+ column : 16 ,
339
+ endLine : 1 ,
340
+ endColumn : 26 ,
341
+ } ,
342
+ ] ,
343
+ } ,
344
+ {
345
+ code : "a { --my-color: red; color: var(--MY-COLOR); }" ,
346
+ errors : [
347
+ {
348
+ messageId : "unknownVar" ,
349
+ data : {
350
+ var : "--MY-COLOR" ,
351
+ } ,
352
+ line : 1 ,
353
+ column : 33 ,
354
+ endLine : 1 ,
355
+ endColumn : 43 ,
356
+ } ,
357
+ ] ,
358
+ } ,
298
359
{
299
360
code : "a { .foo { color: var(--undefined-var); } }" ,
300
361
errors : [
@@ -310,6 +371,21 @@ ruleTester.run("no-invalid-properties", rule, {
310
371
} ,
311
372
] ,
312
373
} ,
374
+ {
375
+ code : "a { color: var(--MY-COLOR, var(--FALLBACK-COLOR)); }" ,
376
+ errors : [
377
+ {
378
+ messageId : "unknownVar" ,
379
+ data : {
380
+ var : "--MY-COLOR" ,
381
+ } ,
382
+ line : 1 ,
383
+ column : 16 ,
384
+ endLine : 1 ,
385
+ endColumn : 26 ,
386
+ } ,
387
+ ] ,
388
+ } ,
313
389
{
314
390
code : "a { --my-color: 10px; color: var(--my-color); }" ,
315
391
errors : [
@@ -592,5 +668,134 @@ ruleTester.run("no-invalid-properties", rule, {
592
668
} ,
593
669
] ,
594
670
} ,
671
+ {
672
+ code : "a { color: VAR(--my-color); }" ,
673
+ errors : [
674
+ {
675
+ messageId : "unknownVar" ,
676
+ data : {
677
+ var : "--my-color" ,
678
+ } ,
679
+ line : 1 ,
680
+ column : 16 ,
681
+ endLine : 1 ,
682
+ endColumn : 26 ,
683
+ } ,
684
+ ] ,
685
+ } ,
686
+ {
687
+ code : "a { border-top: 1px vAr(--style, solid) VaR(--color); }" ,
688
+ errors : [
689
+ {
690
+ messageId : "unknownVar" ,
691
+ data : {
692
+ var : "--color" ,
693
+ } ,
694
+ line : 1 ,
695
+ column : 45 ,
696
+ endLine : 1 ,
697
+ endColumn : 52 ,
698
+ } ,
699
+ ] ,
700
+ } ,
701
+ {
702
+ code : ":root { --style: foo }\na { border-top: 1px VAR(--style) VAR(--color, red); }" ,
703
+ errors : [
704
+ {
705
+ messageId : "invalidPropertyValue" ,
706
+ data : {
707
+ property : "border-top" ,
708
+ value : "foo" ,
709
+ expected : "<line-width> || <line-style> || <color>" ,
710
+ } ,
711
+ line : 2 ,
712
+ column : 21 ,
713
+ endLine : 2 ,
714
+ endColumn : 33 ,
715
+ } ,
716
+ ] ,
717
+ } ,
718
+ {
719
+ code : ":root { --style: foo }\na { border-top: 1px VAR(--style, solid) VAR(--color, red); }" ,
720
+ errors : [
721
+ {
722
+ messageId : "invalidPropertyValue" ,
723
+ data : {
724
+ property : "border-top" ,
725
+ value : "foo" ,
726
+ expected : "<line-width> || <line-style> || <color>" ,
727
+ } ,
728
+ line : 2 ,
729
+ column : 21 ,
730
+ endLine : 2 ,
731
+ endColumn : 40 ,
732
+ } ,
733
+ ] ,
734
+ } ,
735
+ {
736
+ code : ":root { --color: foo }\na { border-top: 1px VAR(--style, VAR(--fallback, solid)) VAR(--color); }" ,
737
+ errors : [
738
+ {
739
+ messageId : "invalidPropertyValue" ,
740
+ data : {
741
+ property : "border-top" ,
742
+ value : "foo" ,
743
+ expected : "<line-width> || <line-style> || <color>" ,
744
+ } ,
745
+ line : 2 ,
746
+ column : 58 ,
747
+ endLine : 2 ,
748
+ endColumn : 70 ,
749
+ } ,
750
+ ] ,
751
+ } ,
752
+ {
753
+ code : ":root { --color: foo }\na { border-top: 1px VAR(--style, VAR(--fallback)) VAR(--color); }" ,
754
+ options : [ { allowUnknownVariables : true } ] ,
755
+ errors : [
756
+ {
757
+ messageId : "invalidPropertyValue" ,
758
+ data : {
759
+ property : "border-top" ,
760
+ value : "foo" ,
761
+ expected : "<line-width> || <line-style> || <color>" ,
762
+ } ,
763
+ line : 2 ,
764
+ column : 51 ,
765
+ endLine : 2 ,
766
+ endColumn : 63 ,
767
+ } ,
768
+ ] ,
769
+ } ,
770
+ {
771
+ code : ":root { --color: foo }\na { border-top: 1px VAR(--style, VAR(--fallback)) VAR(--color); }" ,
772
+ errors : [
773
+ {
774
+ messageId : "unknownVar" ,
775
+ data : {
776
+ var : "--style" ,
777
+ } ,
778
+ line : 2 ,
779
+ column : 25 ,
780
+ endLine : 2 ,
781
+ endColumn : 32 ,
782
+ } ,
783
+ ] ,
784
+ } ,
785
+ {
786
+ code : ":root { --color: red }\na { colorr: VAR(--color, blue); }" ,
787
+ errors : [
788
+ {
789
+ messageId : "unknownProperty" ,
790
+ data : {
791
+ property : "colorr" ,
792
+ } ,
793
+ line : 2 ,
794
+ column : 5 ,
795
+ endLine : 2 ,
796
+ endColumn : 11 ,
797
+ } ,
798
+ ] ,
799
+ } ,
595
800
] ,
596
801
} ) ;
0 commit comments