Skip to content

Commit 23ea59b

Browse files
committed
common test cases
1 parent 7c33a9c commit 23ea59b

File tree

11 files changed

+89
-156
lines changed

11 files changed

+89
-156
lines changed

test/cases/non-relative-imports/expected.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

test/cases/non-relative-imports/source.css

Lines changed: 0 additions & 4 deletions
This file was deleted.

test/cases/simple/expected.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

test/cases/simple/source.css

Lines changed: 0 additions & 4 deletions
This file was deleted.

test/common-cases.js

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import { equal } from 'assert';
2+
import { extend, mapKeys } from 'lodash';
3+
import { existsSync, readdirSync, readFileSync } from 'fs';
4+
import { join } from 'path';
5+
import FileSystemLoader from 'css-modules-loader-core/lib/file-system-loader';
6+
import hook from '../src';
7+
8+
const normalize = str => str.replace(/\r\n?/g, '\n');
9+
const pipelines = {
10+
'test-cases': undefined,
11+
'cssi': [],
12+
};
13+
14+
let expectedCSS;
15+
let expectedTokens;
16+
17+
mapKeys(pipelines, (plugins, dirname) => describe(dirname, () => {
18+
const cases = join(__dirname, dirname);
19+
20+
readdirSync(cases).forEach(testCase => {
21+
if (existsSync(join(cases, testCase, 'source.css'))) {
22+
describe(`should ${testCase.replace(/-/g, ' ')}`, () => {
23+
before(() => {
24+
hook({rootDir: cases, use: plugins});
25+
expectedCSS = normalize(readFileSync(join(cases, testCase, 'expected.css'), 'utf-8'));
26+
expectedTokens = JSON.parse(readFileSync(join(cases, testCase, 'expected.json'), 'utf-8'));
27+
});
28+
29+
it('loader-core', done => {
30+
const loader = new FileSystemLoader(cases, pipelines[dirname]);
31+
32+
loader.fetch(`${testCase}/source.css`, '/')
33+
.then(tokens => {
34+
equal(loader.finalSource, expectedCSS);
35+
equal(JSON.stringify(tokens), JSON.stringify(expectedTokens));
36+
})
37+
.then(done, done);
38+
});
39+
40+
it('require-hook', () => {
41+
const tokens = require(join(cases, testCase, 'source.css'));
42+
equal(JSON.stringify(tokens), JSON.stringify(expectedTokens));
43+
});
44+
});
45+
}
46+
47+
if (existsSync(join(cases, testCase, 'source1.css'))) {
48+
describe(`should ${testCase.replace(/-/g, ' ')}`, () => {
49+
before(() => {
50+
hook({rootDir: cases, use: plugins});
51+
expectedCSS = normalize(readFileSync(join(cases, testCase, 'expected.css'), 'utf-8'));
52+
expectedTokens = JSON.parse(readFileSync(join(cases, testCase, 'expected.json'), 'utf-8'));
53+
});
54+
55+
it('loader-core', done => {
56+
const loader = new FileSystemLoader(cases, pipelines[dirname]);
57+
58+
loader.fetch(`${testCase}/source1.css`, '/').then(tokens1 => {
59+
loader.fetch(`${testCase}/source2.css`, '/').then(tokens2 => {
60+
equal(loader.finalSource, expectedCSS);
61+
const tokens = extend({}, tokens1, tokens2);
62+
equal(JSON.stringify(tokens), JSON.stringify(expectedTokens));
63+
}).then(done, done);
64+
}).catch(done);
65+
});
66+
67+
it('require-hook', () => {
68+
const tokens = extend({},
69+
require(join(cases, testCase, 'source1.css')),
70+
require(join(cases, testCase, 'source2.css')));
71+
72+
equal(JSON.stringify(tokens), JSON.stringify(expectedTokens));
73+
});
74+
});
75+
}
76+
});
77+
}));

test/index.js

Lines changed: 0 additions & 26 deletions
This file was deleted.

test/test-cases.js

Lines changed: 0 additions & 59 deletions
This file was deleted.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
._compose_node_module_awesome_theme_oceanic__color
2+
{
3+
background: #1e2a35;
4+
}
5+
._compose_node_module_source__foo {
6+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"foo": "_compose_node_module_source__foo _compose_node_module_awesome_theme_oceanic__color"
3+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.foo {
2+
composes: color from "awesome-theme/oceanic.css";
3+
}

0 commit comments

Comments
 (0)