1
1
import postcss from 'postcss'
2
2
import { describe , expect , it } from 'vitest'
3
- import { dynamicPixel } from '../src'
3
+ import dynamicPixel from '../src'
4
4
5
5
describe ( 'should all pass 😄' , ( ) => {
6
6
it ( 'should replace all px with the formula' , async ( ) => {
7
7
const result = await postcss ( [ dynamicPixel ( ) ] ) . process ( `h1 { margin: 0 0 20px; font-size: 32px; line-height: 2; letter-spacing: 1px; }` )
8
- expect ( result . css ) . toMatchInlineSnapshot ( '" h1 { margin: 0 0 calc( 20 * (clamp(768px, 100vw, 2560px) / 1920) ); font-size: calc( 32 * (clamp(768px, 100vw, 2560px) / 1920) ); line-height: 2; letter-spacing: calc( 1 * (clamp(768px, 100vw, 2560px) / 1920) ); }" ')
8
+ expect ( result . css ) . toEqual ( ' h1 { margin: 0 0 calc( 20 * (clamp(768px, 100vw, 2560px) / 1920) ); font-size: calc( 32 * (clamp(768px, 100vw, 2560px) / 1920) ); line-height: 2; letter-spacing: calc( 1 * (clamp(768px, 100vw, 2560px) / 1920) ); }')
9
9
} )
10
10
11
11
it ( 'should remain unitless if 0' , async ( ) => {
12
12
const result = await postcss ( [ dynamicPixel ( ) ] ) . process ( `.rule { font-size: 0px; font-size: 0; }` )
13
- expect ( result . css ) . toMatchInlineSnapshot ( '" .rule { font-size: 0; font-size: 0; }" ')
13
+ expect ( result . css ) . toEqual ( ' .rule { font-size: 0; font-size: 0; }')
14
14
} )
15
15
16
16
it ( 'should not replace units inside mediaQueries by default' , async ( ) => {
17
17
const result = await postcss ( [ dynamicPixel ( ) ] ) . process ( `@media (min-width: 500px) { .rule { font-size: 16px } }` )
18
- expect ( result . css ) . toMatchInlineSnapshot ( '" @media (min-width: 500px) { .rule { font-size: 16px } }" ')
18
+ expect ( result . css ) . toEqual ( ' @media (min-width: 500px) { .rule { font-size: 16px } }')
19
19
} )
20
20
21
21
it ( 'should not replace values in double quotes or single quotes' , async ( ) => {
22
22
const result = await postcss ( [ dynamicPixel ( ) ] ) . process ( `.rule { content: \'16px\'; font-family: "16px"; font-size: 16px; }` )
23
- expect ( result . css ) . toMatchInlineSnapshot ( '" .rule { content: \'16px\'; font-family: \\ "16px\\ "; font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }" ')
23
+ expect ( result . css ) . toEqual ( ' .rule { content: \'16px\'; font-family: \"16px\"; font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }')
24
24
} )
25
25
26
26
it ( 'should not replace values in `url()`' , async ( ) => {
27
27
const result = await postcss ( [ dynamicPixel ( ) ] ) . process ( `.rule { background: url(16px.jpg); font-size: 16px; }` )
28
- expect ( result . css ) . toMatchInlineSnapshot ( '" .rule { background: url(16px.jpg); font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }" ')
28
+ expect ( result . css ) . toEqual ( ' .rule { background: url(16px.jpg); font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }')
29
29
} )
30
30
31
31
it ( 'should not replace values with an uppercase P or X' , async ( ) => {
32
32
const result = await postcss ( [ dynamicPixel ( ) ] ) . process ( `.rule { margin: 12px calc(100% - 14PX); height: calc(100% - 20px); font-size: 12Px; line-height: 16px; }` )
33
- expect ( result . css ) . toMatchInlineSnapshot ( '" .rule { margin: calc( 12 * (clamp(768px, 100vw, 2560px) / 1920) ) calc(100% - 14PX); height: calc(100% - calc( 20 * (clamp(768px, 100vw, 2560px) / 1920) )); font-size: 12Px; line-height: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }" ')
33
+ expect ( result . css ) . toEqual ( ' .rule { margin: calc( 12 * (clamp(768px, 100vw, 2560px) / 1920) ) calc(100% - 14PX); height: calc(100% - calc( 20 * (clamp(768px, 100vw, 2560px) / 1920) )); font-size: 12Px; line-height: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }')
34
34
} )
35
35
36
36
it ( 'should ignore non px values by default' , async ( ) => {
37
37
const result = await postcss ( [ dynamicPixel ( ) ] ) . process ( `.rule { font-size: 2em }` )
38
- expect ( result . css ) . toMatchInlineSnapshot ( '" .rule { font-size: 2em }" ')
38
+ expect ( result . css ) . toEqual ( ' .rule { font-size: 2em }')
39
39
} )
40
40
41
41
it ( 'should ignore selectors in the selector black list' , async ( ) => {
42
42
const result = await postcss ( [ dynamicPixel ( {
43
43
skipSelectors : [ '.rule2' ] ,
44
44
} ) ] ) . process ( `.rule { font-size: 15px } .rule2 { font-size: 15px }` )
45
- expect ( result . css ) . toMatchInlineSnapshot ( '" .rule { font-size: calc( 15 * (clamp(768px, 100vw, 2560px) / 1920) ) } .rule2 { font-size: 15px }" ')
45
+ expect ( result . css ) . toEqual ( ' .rule { font-size: calc( 15 * (clamp(768px, 100vw, 2560px) / 1920) ) } .rule2 { font-size: 15px }')
46
46
} )
47
47
48
48
it ( 'should ignore every selector with `body$`' , async ( ) => {
49
49
const result = await postcss ( [ dynamicPixel ( {
50
50
skipSelectors : [ 'body$' ] ,
51
51
} ) ] ) . process ( `body { font-size: 16px; } .class-body$ { font-size: 16px; } .simple-class { font-size: 16px; }` )
52
- expect ( result . css ) . toMatchInlineSnapshot ( '" body { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); } .class-body$ { font-size: 16px; } .simple-class { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }" ')
52
+ expect ( result . css ) . toEqual ( ' body { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); } .class-body$ { font-size: 16px; } .simple-class { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }')
53
53
} )
54
54
55
55
it ( 'should only ignore exactly `body`' , async ( ) => {
56
56
const result = await postcss ( [ dynamicPixel ( {
57
57
skipSelectors : [ / ^ b o d y $ / ] ,
58
58
} ) ] ) . process ( `body { font-size: 16px; } .class-body { font-size: 16px; } .simple-class { font-size: 16px; }` )
59
- expect ( result . css ) . toMatchInlineSnapshot ( '" body { font-size: 16px; } .class-body { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); } .simple-class { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }" ')
59
+ expect ( result . css ) . toEqual ( ' body { font-size: 16px; } .class-body { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); } .simple-class { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); }')
60
60
} )
61
61
62
62
it ( 'should replace px inside media queries if opts.mediaQuery' , async ( ) => {
63
63
const result = await postcss ( [ dynamicPixel ( {
64
64
mediaQuery : true ,
65
65
} ) ] ) . process ( `@media (min-width: 500px) { .rule { font-size: 16px } }` )
66
- expect ( result . css ) . toMatchInlineSnapshot ( '" @media (min-width: 500px) { .rule { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ) } }" ')
66
+ expect ( result . css ) . toEqual ( ' @media (min-width: 500px) { .rule { font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ) } }')
67
67
} )
68
68
69
69
it ( 'should not replace px inside media queries if not opts.mediaQuery' , async ( ) => {
70
70
const result = await postcss ( [ dynamicPixel ( {
71
71
mediaQuery : false ,
72
72
} ) ] ) . process ( `@media (min-width: 500px) { .rule { font-size: 16px } }` )
73
- expect ( result . css ) . toMatchInlineSnapshot ( '" @media (min-width: 500px) { .rule { font-size: 16px } }" ')
73
+ expect ( result . css ) . toEqual ( ' @media (min-width: 500px) { .rule { font-size: 16px } }')
74
74
} )
75
75
76
76
it ( 'when using regex at the time, the style should not be overwritten.' , async ( ) => {
@@ -79,7 +79,7 @@ describe('should all pass 😄', () => {
79
79
} ) ] ) . process ( `.rule { border: 1px solid #000; font-size: 16px; margin: 1px 10px; }` , {
80
80
from : '/node_modules/main.css' ,
81
81
} )
82
- expect ( result . css ) . toMatchInlineSnapshot ( '" .rule { border: 1px solid #000; font-size: 16px; margin: 1px 10px; }" ')
82
+ expect ( result . css ) . toEqual ( ' .rule { border: 1px solid #000; font-size: 16px; margin: 1px 10px; }')
83
83
} )
84
84
85
85
it ( 'when using regex at the time, the style should be overwritten.' , async ( ) => {
@@ -88,11 +88,11 @@ describe('should all pass 😄', () => {
88
88
} ) ] ) . process ( `.rule { border: 1px solid #000; font-size: 16px; margin: 1px 10px; }` , {
89
89
from : '/example/main.css' ,
90
90
} )
91
- expect ( result . css ) . toMatchInlineSnapshot ( '" .rule { border: calc( 1 * (clamp(768px, 100vw, 2560px) / 1920) ) solid #000; font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); margin: calc( 1 * (clamp(768px, 100vw, 2560px) / 1920) ) calc( 10 * (clamp(768px, 100vw, 2560px) / 1920) ); }" ')
91
+ expect ( result . css ) . toEqual ( ' .rule { border: calc( 1 * (clamp(768px, 100vw, 2560px) / 1920) ) solid #000; font-size: calc( 16 * (clamp(768px, 100vw, 2560px) / 1920) ); margin: calc( 1 * (clamp(768px, 100vw, 2560px) / 1920) ) calc( 10 * (clamp(768px, 100vw, 2560px) / 1920) ); }')
92
92
} )
93
93
94
94
it ( 'empty template' , async ( ) => {
95
95
const result = await postcss ( [ dynamicPixel ( ) ] ) . process ( `` )
96
- expect ( result . css ) . toMatchInlineSnapshot ( '"" ')
96
+ expect ( result . css ) . toEqual ( ' ')
97
97
} )
98
98
} )
0 commit comments