11// @ts -check
2- const { filenameToPascalCase } = require ( "../src/utils" ) ;
2+ const { filenameToPascalCase, getCssModuleKeys } = require ( "../src/utils" ) ;
33
44describe ( "filenameToPascalCase" , ( ) => {
55 it ( "camelCase" , ( ) => {
@@ -22,3 +22,42 @@ describe("filenameToPascalCase", () => {
2222 expect ( actual ) . toBe ( "ReactDatePicker" ) ;
2323 } ) ;
2424} ) ;
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