-
-
Notifications
You must be signed in to change notification settings - Fork 595
/
import.test.js
143 lines (140 loc) · 3.51 KB
/
import.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
const assert = require('assert');
const stripAnsi = require('strip-ansi');
const { test, testError } = require('./helpers');
describe('import', () => {
test(
'import',
'@import url(test.css);\n.class { a: b c d; }',
[[2, '.test{a: b}', ''], [1, '.class { a: b c d; }', '']],
'',
{
'./test.css': [[2, '.test{a: b}', '']],
}
);
test(
'import with trailing whitespace',
'@import url(test.css );\n.class { a: b c d; }',
[[2, '.test{a: b}', ''], [1, '.class { a: b c d; }', '']],
'',
{
'./test.css': [[2, '.test{a: b}', '']],
}
);
test(
'import camelcase',
'@IMPORT url(test.css);\n.class { a: b c d; }',
[[2, '.test{a: b}', ''], [1, '.class { a: b c d; }', '']],
'',
{
'./test.css': [[2, '.test{a: b}', '']],
}
);
test(
'import empty url',
'@import url();\n.class { a: b c d; }',
[[1, '@import url();\n.class { a: b c d; }', '']],
''
);
test(
'import empty url with quotes',
"@import url('');\n.class { a: b c d; }",
[[1, "@import url('');\n.class { a: b c d; }", '']],
''
);
test(
'import with string',
'@import "test.css";\n.class { a: b c d; }',
[[2, '.test{a: b}', ''], [1, '.class { a: b c d; }', '']],
'',
{
'./test.css': [[2, '.test{a: b}', '']],
}
);
test(
'import with empty string',
'@import "";\n.class { a: b c d; }',
[[1, '@import "";\n.class { a: b c d; }', '']],
''
);
test(
'import with string contain spaces',
'@import " ";\n.class { a: b c d; }',
[[1, '@import " ";\n.class { a: b c d; }', '']],
''
);
test(
'import with string contain newline',
'@import "\n";\n.class { a: b c d; }',
[[1, '@import "\n";\n.class { a: b c d; }', '']],
''
);
test(
'import with string contain CRLF',
'@import "\r\n";\r\n.class { a: b c d; }',
[[1, '@import "\r\n";\r\n.class { a: b c d; }', '']],
''
);
test(
'import with string contain tab',
'@import "\t";\n.class { a: b c d; }',
[[1, '@import "\t";\n.class { a: b c d; }', '']],
''
);
test(
'import 2',
"@import url('test.css');\n.class { a: b c d; }",
[[2, '.test{a: b}', 'screen'], [1, '.class { a: b c d; }', '']],
'',
{
'./test.css': [[2, '.test{a: b}', 'screen']],
}
);
test(
'import with media',
"@import url('~test/css') screen and print;\n.class { a: b c d; }",
[
[3, '.test{a: b}', '((min-width: 100px)) and (screen and print)'],
[2, '.test{c: d}', 'screen and print'],
[1, '.class { a: b c d; }', ''],
],
'',
{
'test/css': [
[3, '.test{a: b}', '(min-width: 100px)'],
[2, '.test{c: d}', ''],
],
}
);
test(
'import external',
'@import url(http://example.com/style.css);\n@import url("//example.com/style.css");',
[
[1, '@import url(http://example.com/style.css);', ''],
[1, '@import url(//example.com/style.css);', ''],
[1, '', ''],
]
);
test(
'import disabled',
'@import url(test.css);\n.class { a: b c d; }',
[[1, '@import url(test.css);\n.class { a: b c d; }', '']],
'?-import'
);
test('@import-normalize left untouched', '@import-normalize;', [
[1, '@import-normalize;', ''],
]);
testError('@import without url', '@import;', (error) => {
assert.equal(
stripAnsi(error.message),
[
'CssSyntaxError',
'',
'(1:1) Unexpected format ',
'',
'> 1 | @import;',
' | ^',
'',
].join('\n')
);
});
});