Skip to content

Commit a16d625

Browse files
authored
Merge pull request TeamSupercell#27 from jsikorski/master
fix: support CSS modules with :root pseudo-class only
2 parents 27ff9d6 + da6d034 commit a16d625

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

src/utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const camelCase = require("camelcase");
77
* @returns {string[]}
88
*/
99
const getCssModuleKeys = content => {
10-
const keyRegex = /"([^\\"]+)":/g;
10+
const keyRegex = /"([\w-]+)":/g;
1111
let match;
1212
const cssModuleKeys = [];
1313

test/utils.test.js

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// @ts-check
2-
const { filenameToPascalCase } = require("../src/utils");
2+
const { filenameToPascalCase, getCssModuleKeys } = require("../src/utils");
33

44
describe("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

Comments
 (0)