Skip to content
This repository was archived by the owner on Sep 25, 2024. It is now read-only.

Commit bebb050

Browse files
authored
Merge pull request #6 from ryoppippi/feat/add-camelcase-test
feat/add camelcase test
2 parents 5120745 + 5d73d88 commit bebb050

File tree

4 files changed

+61
-0
lines changed

4 files changed

+61
-0
lines changed

tests/compiler.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,20 @@ import { cssModules } from '../src';
44
type Params = {
55
source: string;
66
preprocessOptions: Parameters<typeof preprocess>[2];
7+
cssmodulesOptions?: Parameters<typeof cssModules>[0];
78
};
89

910
export async function compiler({
1011
source,
1112
preprocessOptions,
13+
cssmodulesOptions,
1214
}: Params) {
1315
const { code } = await preprocess(
1416
source,
1517
[cssModules({
1618
moduleNameingPattern: '[local]_[name]-css-module-test',
1719
includeOriginalPath: false,
20+
...cssmodulesOptions,
1821
})],
1922
preprocessOptions,
2023
);

tests/non-camelcase/Input.svelte

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<script>
2+
import s from '../assets/style.module.css';
3+
</script>
4+
5+
<div class={s['success-message']}>
6+
hello
7+
</div>
8+

tests/non-camelcase/Output.svelte

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<script>
2+
const s = {
3+
error: "error_style-module-css-module-test",
4+
"success-message": "success-message_style-module-css-module-test"
5+
};
6+
</script>
7+
8+
<div class={s['success-message']}>
9+
hello
10+
</div>
11+
12+
13+
<style>
14+
15+
16+
section {
17+
padding: 10px;
18+
}
19+
20+
.error_style-module-css-module-test {
21+
color: red;
22+
}
23+
24+
.success-message_style-module-css-module-test {
25+
color: green;
26+
}
27+
28+
</style>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import fs from 'node:fs/promises';
2+
import path from 'node:path';
3+
import { expect, it } from 'vitest';
4+
import { compiler } from '../compiler';
5+
6+
export function resolve(file: string) {
7+
return path.resolve(__dirname, file);
8+
}
9+
10+
it('non-camelcase', { retry: 5 }, async () => {
11+
const filename = resolve('Input.svelte');
12+
13+
const source = await fs.readFile(filename, 'utf-8');
14+
15+
const code = await compiler({
16+
source,
17+
preprocessOptions: { filename },
18+
cssmodulesOptions: { convertToCamelCase: false },
19+
});
20+
21+
await expect(code).toMatchFileSnapshot('./Output.svelte');
22+
});

0 commit comments

Comments
 (0)