1
1
// @ts -check
2
- const { filenameToPascalCase } = require ( "../src/utils" ) ;
2
+ const { filenameToPascalCase, getCssModuleKeys } = require ( "../src/utils" ) ;
3
3
4
4
describe ( "filenameToPascalCase" , ( ) => {
5
5
it ( "camelCase" , ( ) => {
@@ -22,3 +22,42 @@ describe("filenameToPascalCase", () => {
22
22
expect ( actual ) . toBe ( "ReactDatePicker" ) ;
23
23
} ) ;
24
24
} ) ;
25
+
26
+ describe ( "getCssModuleKeys" , ( ) => {
27
+ it ( "empty CSS module" , ( ) => {
28
+ const content = `
29
+ exports = module.exports = require("../node_modules/css-loader/dist/runtime/api.js")(false);
30
+ // Module
31
+ exports.push([module.id, "", ""]);
32
+ ` ;
33
+ const actual = getCssModuleKeys ( content ) ;
34
+ expect ( actual ) . toEqual ( [ ] ) ;
35
+ } ) ;
36
+
37
+ it ( "CSS module with one class" , ( ) => {
38
+ const content = `exports.locals = {
39
+ "test": "test"
40
+ };`
41
+ const actual = getCssModuleKeys ( content ) ;
42
+ expect ( actual ) . toEqual ( [ 'test' ] ) ;
43
+ } ) ;
44
+
45
+ it ( "CSS module with multiple classes" , ( ) => {
46
+ const content = `exports.locals = {
47
+ "test1": "test1",
48
+ "test2": "test2"
49
+ };`
50
+ const actual = getCssModuleKeys ( content ) ;
51
+ expect ( actual ) . toEqual ( [ 'test1' , 'test2' ] ) ;
52
+ } ) ;
53
+
54
+ it ( "CSS module with :root pseudo-class only" , ( ) => {
55
+ const content = `
56
+ exports = module.exports = require("../node_modules/css-loader/dist/runtime/api.js")(false);
57
+ // Module
58
+ exports.push([module.id, ":root {\n --background: green; }\n", ""]);
59
+ ` ;
60
+ const actual = getCssModuleKeys ( content ) ;
61
+ expect ( actual ) . toEqual ( [ ] ) ;
62
+ } ) ;
63
+ } ) ;
0 commit comments