@@ -14,50 +14,141 @@ const commentReplacer = (x) => {
14
14
}
15
15
} ;
16
16
17
+ const twoCommentsReplacer = ( x ) => {
18
+ if ( isCommentNode ( x ) ) {
19
+ return [
20
+ new CommentNode ( [
21
+ TokenType . Comment ,
22
+ '/* generated comment (1) */' ,
23
+ - 1 ,
24
+ - 1 ,
25
+ undefined ,
26
+ ] ) ,
27
+ new CommentNode ( [
28
+ TokenType . Comment ,
29
+ '/* generated comment (2) */' ,
30
+ - 1 ,
31
+ - 1 ,
32
+ undefined ,
33
+ ] ) ,
34
+ ] ;
35
+ }
36
+ } ;
37
+
17
38
const onParseError = ( err ) => {
18
39
throw err ;
19
40
} ;
20
41
21
42
{
22
- const tokens = tokenize ( { css : '/* a comment */' } , { onParseError : onParseError } ) ;
23
- const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
24
- const afterReplacement = replaceComponentValues ( resultAST , commentReplacer ) ;
25
-
26
- assert . deepStrictEqual (
27
- stringify ( afterReplacement ) ,
28
- '/* generated comment */' ,
29
- ) ;
30
- }
43
+ {
44
+ const tokens = tokenize ( { css : '/* a comment */' } , { onParseError : onParseError } ) ;
45
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
46
+ const afterReplacement = replaceComponentValues ( resultAST , commentReplacer ) ;
31
47
32
- {
33
- const tokens = tokenize ( { css : '(/* a comment */foo ) something else' } , { onParseError : onParseError } ) ;
34
- const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
35
- const afterReplacement = replaceComponentValues ( resultAST , commentReplacer ) ;
36
-
37
- assert . deepStrictEqual (
38
- stringify ( afterReplacement ) ,
39
- '(/* generated comment */foo ) something else' ,
40
- ) ;
41
- }
48
+ assert . deepStrictEqual (
49
+ stringify ( afterReplacement ) ,
50
+ '/* generated comment */' ,
51
+ ) ;
52
+ }
42
53
43
- {
44
- const tokens = tokenize ( { css : '(/* a comment */foo /* a comment */ /* a comment */) something else /* a comment */' } , { onParseError : onParseError } ) ;
45
- const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
46
- const afterReplacement = replaceComponentValues ( resultAST , commentReplacer ) ;
47
-
48
- assert . deepStrictEqual (
49
- stringify ( afterReplacement ) ,
50
- '(/* generated comment */foo /* generated comment */ /* generated comment */) something else /* generated comment */' ,
51
- ) ;
54
+ {
55
+ const tokens = tokenize ( { css : '/* a comment *//* a comment */' } , { onParseError : onParseError } ) ;
56
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
57
+ const afterReplacement = replaceComponentValues ( resultAST , commentReplacer ) ;
58
+
59
+ assert . deepStrictEqual (
60
+ stringify ( afterReplacement ) ,
61
+ '/* generated comment *//* generated comment */' ,
62
+ ) ;
63
+ }
64
+
65
+ {
66
+ const tokens = tokenize ( { css : '(/* a comment */foo ) something else' } , { onParseError : onParseError } ) ;
67
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
68
+ const afterReplacement = replaceComponentValues ( resultAST , commentReplacer ) ;
69
+
70
+ assert . deepStrictEqual (
71
+ stringify ( afterReplacement ) ,
72
+ '(/* generated comment */foo ) something else' ,
73
+ ) ;
74
+ }
75
+
76
+ {
77
+ const tokens = tokenize ( { css : '(/* a comment */foo /* a comment */ /* a comment */) something else /* a comment */' } , { onParseError : onParseError } ) ;
78
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
79
+ const afterReplacement = replaceComponentValues ( resultAST , commentReplacer ) ;
80
+
81
+ assert . deepStrictEqual (
82
+ stringify ( afterReplacement ) ,
83
+ '(/* generated comment */foo /* generated comment */ /* generated comment */) something else /* generated comment */' ,
84
+ ) ;
85
+ }
86
+
87
+ {
88
+ const tokens = tokenize ( { css : '/* foo */, [/* bar */],, ,,(/* baz */ {/* fooz */ calc(/* last one */)})' } , { onParseError : onParseError } ) ;
89
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
90
+ const afterReplacement = replaceComponentValues ( resultAST , commentReplacer ) ;
91
+
92
+ assert . deepStrictEqual (
93
+ stringify ( afterReplacement ) ,
94
+ '/* generated comment */, [/* generated comment */],, ,,(/* generated comment */ {/* generated comment */ calc(/* generated comment */)})' ,
95
+ ) ;
96
+ }
52
97
}
53
98
54
99
{
55
- const tokens = tokenize ( { css : '/* foo */, [/* bar */],, ,,(/* baz */ {/* fooz */ calc(/* last one */)})' } , { onParseError : onParseError } ) ;
56
- const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
57
- const afterReplacement = replaceComponentValues ( resultAST , commentReplacer ) ;
58
-
59
- assert . deepStrictEqual (
60
- stringify ( afterReplacement ) ,
61
- '/* generated comment */, [/* generated comment */],, ,,(/* generated comment */ {/* generated comment */ calc(/* generated comment */)})' ,
62
- ) ;
100
+ {
101
+ const tokens = tokenize ( { css : '/* a comment */' } , { onParseError : onParseError } ) ;
102
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
103
+ const afterReplacement = replaceComponentValues ( resultAST , twoCommentsReplacer ) ;
104
+
105
+ assert . deepStrictEqual (
106
+ stringify ( afterReplacement ) ,
107
+ '/* generated comment (1) *//* generated comment (2) */' ,
108
+ ) ;
109
+ }
110
+
111
+ {
112
+ const tokens = tokenize ( { css : '/* a comment *//* a comment */' } , { onParseError : onParseError } ) ;
113
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
114
+ const afterReplacement = replaceComponentValues ( resultAST , twoCommentsReplacer ) ;
115
+
116
+ assert . deepStrictEqual (
117
+ stringify ( afterReplacement ) ,
118
+ '/* generated comment (1) *//* generated comment (2) *//* generated comment (1) *//* generated comment (2) */' ,
119
+ ) ;
120
+ }
121
+
122
+ {
123
+ const tokens = tokenize ( { css : '(/* a comment */foo ) something else' } , { onParseError : onParseError } ) ;
124
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
125
+ const afterReplacement = replaceComponentValues ( resultAST , twoCommentsReplacer ) ;
126
+
127
+ assert . deepStrictEqual (
128
+ stringify ( afterReplacement ) ,
129
+ '(/* generated comment (1) *//* generated comment (2) */foo ) something else' ,
130
+ ) ;
131
+ }
132
+
133
+ {
134
+ const tokens = tokenize ( { css : '(/* a comment */foo /* a comment */ /* a comment */) something else /* a comment */' } , { onParseError : onParseError } ) ;
135
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
136
+ const afterReplacement = replaceComponentValues ( resultAST , twoCommentsReplacer ) ;
137
+
138
+ assert . deepStrictEqual (
139
+ stringify ( afterReplacement ) ,
140
+ '(/* generated comment (1) *//* generated comment (2) */foo /* generated comment (1) *//* generated comment (2) */ /* generated comment (1) *//* generated comment (2) */) something else /* generated comment (1) *//* generated comment (2) */' ,
141
+ ) ;
142
+ }
143
+
144
+ {
145
+ const tokens = tokenize ( { css : '/* foo */, [/* bar */],, ,,(/* baz */ {/* fooz */ calc(/* last one */)})' } , { onParseError : onParseError } ) ;
146
+ const resultAST = parseCommaSeparatedListOfComponentValues ( tokens , { onParseError : onParseError } ) ;
147
+ const afterReplacement = replaceComponentValues ( resultAST , twoCommentsReplacer ) ;
148
+
149
+ assert . deepStrictEqual (
150
+ stringify ( afterReplacement ) ,
151
+ '/* generated comment (1) *//* generated comment (2) */, [/* generated comment (1) *//* generated comment (2) */],, ,,(/* generated comment (1) *//* generated comment (2) */ {/* generated comment (1) *//* generated comment (2) */ calc(/* generated comment (1) *//* generated comment (2) */)})' ,
152
+ ) ;
153
+ }
63
154
}
0 commit comments