8
8
'use strict' ;
9
9
var postcss = require ( 'postcss' ) ;
10
10
var pxtorem = require ( '..' ) ;
11
- var css = '.rule { font-size: 15px }' ;
11
+ var basicCSS = '.rule { font-size: 15px }' ;
12
12
13
13
describe ( 'pxtorem' , function ( ) {
14
14
@@ -21,38 +21,71 @@ describe('pxtorem', function () {
21
21
} ) ;
22
22
23
23
it ( 'should replace the px unit with rem' , function ( ) {
24
- var processed = postcss ( pxtorem ( ) ) . process ( css ) . css ;
24
+ var processed = postcss ( pxtorem ( ) ) . process ( basicCSS ) . css ;
25
25
var expected = '.rule { font-size: 0.9375rem }' ;
26
26
27
27
expect ( processed ) . toBe ( expected ) ;
28
28
} ) ;
29
29
30
- it ( 'should replace using a root value of 10' , function ( ) {
30
+ // Deprecate
31
+ it ( 'should replace using a root value of 10 - legacy' , function ( ) {
31
32
var expected = '.rule { font-size: 1.5rem }' ;
32
33
var options = {
33
34
root_value : 10
34
35
} ;
35
- var processed = postcss ( pxtorem ( options ) ) . process ( css ) . css ;
36
+ var processed = postcss ( pxtorem ( options ) ) . process ( basicCSS ) . css ;
36
37
37
38
expect ( processed ) . toBe ( expected ) ;
38
39
} ) ;
39
40
40
- it ( 'should replace using a decimal of 2 places' , function ( ) {
41
+ it ( 'should replace using a root value of 10' , function ( ) {
42
+ var expected = '.rule { font-size: 1.5rem }' ;
43
+ var options = {
44
+ rootValue : 10
45
+ } ;
46
+ var processed = postcss ( pxtorem ( options ) ) . process ( basicCSS ) . css ;
47
+
48
+ expect ( processed ) . toBe ( expected ) ;
49
+ } ) ;
50
+
51
+ // Deprecate
52
+ it ( 'should replace using a decimal of 2 places - legacy' , function ( ) {
41
53
var expected = '.rule { font-size: 0.94rem }' ;
42
54
var options = {
43
55
unit_precision : 2
44
56
} ;
45
- var processed = postcss ( pxtorem ( options ) ) . process ( css ) . css ;
57
+ var processed = postcss ( pxtorem ( options ) ) . process ( basicCSS ) . css ;
46
58
47
59
expect ( processed ) . toBe ( expected ) ;
48
60
} ) ;
49
61
50
- it ( 'should only replace properties in the white list' , function ( ) {
62
+ it ( 'should replace using a decimal of 2 places' , function ( ) {
63
+ var expected = '.rule { font-size: 0.94rem }' ;
64
+ var options = {
65
+ unitPrecision : 2
66
+ } ;
67
+ var processed = postcss ( pxtorem ( options ) ) . process ( basicCSS ) . css ;
68
+
69
+ expect ( processed ) . toBe ( expected ) ;
70
+ } ) ;
71
+
72
+ // Deprecate
73
+ it ( 'should only replace properties in the white list - legacy' , function ( ) {
51
74
var expected = '.rule { font-size: 15px }' ;
52
75
var options = {
53
76
prop_white_list : [ 'font' ]
54
77
} ;
55
- var processed = postcss ( pxtorem ( options ) ) . process ( css ) . css ;
78
+ var processed = postcss ( pxtorem ( options ) ) . process ( basicCSS ) . css ;
79
+
80
+ expect ( processed ) . toBe ( expected ) ;
81
+ } ) ;
82
+
83
+ it ( 'should only replace properties in the white list' , function ( ) {
84
+ var expected = '.rule { font-size: 15px }' ;
85
+ var options = {
86
+ propWhiteList : [ 'font' ]
87
+ } ;
88
+ var processed = postcss ( pxtorem ( options ) ) . process ( basicCSS ) . css ;
56
89
57
90
expect ( processed ) . toBe ( expected ) ;
58
91
} ) ;
@@ -61,14 +94,15 @@ describe('pxtorem', function () {
61
94
var rules = '.rule { margin: 16px; font-size: 15px }' ;
62
95
var expected = '.rule { margin: 1rem; font-size: 0.9375rem }' ;
63
96
var options = {
64
- prop_white_list : [ ]
97
+ propWhiteList : [ ]
65
98
} ;
66
99
var processed = postcss ( pxtorem ( options ) ) . process ( rules ) . css ;
67
100
68
101
expect ( processed ) . toBe ( expected ) ;
69
102
} ) ;
70
103
71
- it ( 'should ignore selectors in the selector black list' , function ( ) {
104
+ // Deprecate
105
+ it ( 'should ignore selectors in the selector black list - legacy' , function ( ) {
72
106
var rules = '.rule { font-size: 15px } .rule2 { font-size: 15px }' ;
73
107
var expected = '.rule { font-size: 0.9375rem } .rule2 { font-size: 15px }' ;
74
108
var options = {
@@ -79,16 +113,28 @@ describe('pxtorem', function () {
79
113
expect ( processed ) . toBe ( expected ) ;
80
114
} ) ;
81
115
116
+ it ( 'should ignore selectors in the selector black list' , function ( ) {
117
+ var rules = '.rule { font-size: 15px } .rule2 { font-size: 15px }' ;
118
+ var expected = '.rule { font-size: 0.9375rem } .rule2 { font-size: 15px }' ;
119
+ var options = {
120
+ selectorBlackList : [ '.rule2' ]
121
+ } ;
122
+ var processed = postcss ( pxtorem ( options ) ) . process ( rules ) . css ;
123
+
124
+ expect ( processed ) . toBe ( expected ) ;
125
+ } ) ;
126
+
82
127
it ( 'should leave fallback pixel unit with root em value' , function ( ) {
83
128
var options = {
84
129
replace : false
85
130
} ;
86
- var processed = postcss ( pxtorem ( options ) ) . process ( css ) . css ;
131
+ var processed = postcss ( pxtorem ( options ) ) . process ( basicCSS ) . css ;
87
132
var expected = '.rule { font-size: 15px; font-size: 0.9375rem }' ;
88
133
89
134
expect ( processed ) . toBe ( expected ) ;
90
135
} ) ;
91
136
137
+ // Deprecate
92
138
it ( 'should replace px in media queries' , function ( ) {
93
139
var options = {
94
140
media_query : true
@@ -99,6 +145,16 @@ describe('pxtorem', function () {
99
145
expect ( processed ) . toBe ( expected ) ;
100
146
} ) ;
101
147
148
+ it ( 'should replace px in media queries' , function ( ) {
149
+ var options = {
150
+ mediaQuery : true
151
+ } ;
152
+ var processed = postcss ( pxtorem ( options ) ) . process ( '@media (min-width: 500px) { .rule { font-size: 16px } }' ) . css ;
153
+ var expected = '@media (min-width: 31.25rem) { .rule { font-size: 1rem } }' ;
154
+
155
+ expect ( processed ) . toBe ( expected ) ;
156
+ } ) ;
157
+
102
158
it ( 'should ignore non px properties' , function ( ) {
103
159
var expected = '.rule { font-size: 2em }' ;
104
160
var processed = postcss ( pxtorem ( ) ) . process ( expected ) . css ;
@@ -110,7 +166,7 @@ describe('pxtorem', function () {
110
166
var rules = '.rule { margin: 0.5rem .5px -0.2px -.2em }' ;
111
167
var expected = '.rule { margin: 0.5rem 0.03125rem -0.0125rem -.2em }' ;
112
168
var options = {
113
- prop_white_list : [ 'margin' ]
169
+ propWhiteList : [ 'margin' ]
114
170
} ;
115
171
var processed = postcss ( pxtorem ( options ) ) . process ( rules ) . css ;
116
172
@@ -126,7 +182,7 @@ describe('pxtorem', function () {
126
182
127
183
it ( 'should not replace values in double quotes or single quotes' , function ( ) {
128
184
var options = {
129
- prop_white_list : [ ]
185
+ propWhiteList : [ ]
130
186
} ;
131
187
var rules = '.rule { content: \'16px\'; font-family: "16px"; font-size: 16px; }' ;
132
188
var expected = '.rule { content: \'16px\'; font-family: "16px"; font-size: 1rem; }' ;
@@ -137,12 +193,24 @@ describe('pxtorem', function () {
137
193
138
194
it ( 'should not replace values in `url()`' , function ( ) {
139
195
var options = {
140
- prop_white_list : [ ]
196
+ propWhiteList : [ ]
141
197
} ;
142
198
var rules = '.rule { background: url(16px.jpg); font-size: 16px; }' ;
143
199
var expected = '.rule { background: url(16px.jpg); font-size: 1rem; }' ;
144
200
var processed = postcss ( pxtorem ( options ) ) . process ( rules ) . css ;
145
201
146
202
expect ( processed ) . toBe ( expected ) ;
147
203
} ) ;
204
+
205
+ it ( 'should not replace values below minPixelValue' , function ( ) {
206
+ var options = {
207
+ propWhiteList : [ ] ,
208
+ minPixelValue : 2
209
+ } ;
210
+ var rules = '.rule { border: 1px solid #000; font-size: 16px; margin: 1px 10px; }' ;
211
+ var expected = '.rule { border: 1px solid #000; font-size: 1rem; margin: 1px 0.625rem; }' ;
212
+ var processed = postcss ( pxtorem ( options ) ) . process ( rules ) . css ;
213
+
214
+ expect ( processed ) . toBe ( expected ) ;
215
+ } ) ;
148
216
} ) ;
0 commit comments