Skip to content

Commit 6abecb2

Browse files
committed
fix filters and add unit test
1 parent 3a7e7f4 commit 6abecb2

File tree

4 files changed

+239
-260
lines changed

4 files changed

+239
-260
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { describe, it, expect } from 'vitest';
2+
import { buildIdFilter, buildModuleIdFilter } from '../src/utils/id.js';
3+
4+
function passes(filter, id) {
5+
const included = filter.id.include.some((includeRE) => includeRE.test(id));
6+
return included && !filter.id.exclude.some((excludeRE) => excludeRE.test(id));
7+
}
8+
9+
describe('buildIdFilter', () => {
10+
it('default filter matches .svelte files', () => {
11+
const filter = buildIdFilter({});
12+
expect(passes(filter, '/src/Foo.svelte')).toBe(true);
13+
expect(passes(filter, '/src/Foo.svelte?something')).toBe(true);
14+
});
15+
16+
it('custom filter matches .svx files', () => {
17+
const filter = buildIdFilter({ extensions: ['.svelte', '.svx'] });
18+
expect(passes(filter, '/src/Foo.svx')).toBe(true);
19+
expect(passes(filter, '/src/Foo.svx?something')).toBe(true);
20+
});
21+
});
22+
23+
describe('buildModuleIdFilter', () => {
24+
it('default filter matches .svelte. files', () => {
25+
const filter = buildModuleIdFilter({});
26+
expect(passes(filter, '/src/foo.svelte.js')).toBe(true);
27+
expect(passes(filter, '/src/foo.svelte.ts')).toBe(true);
28+
expect(passes(filter, '/src/foo.svelte.test.js')).toBe(true);
29+
expect(passes(filter, '/src/foo.svelte.test.ts')).toBe(true);
30+
});
31+
32+
it('custom filter matches .svx. files', () => {
33+
const filter = buildModuleIdFilter({ experimental: { compileModule: { infixes: ['.svx.'] } } });
34+
expect(passes(filter, '/src/foo.svx.js')).toBe(true);
35+
expect(passes(filter, '/src/foo.svx.ts')).toBe(true);
36+
expect(passes(filter, '/src/foo.svx.test.js')).toBe(true);
37+
expect(passes(filter, '/src/foo.svx.test.ts')).toBe(true);
38+
});
39+
});

0 commit comments

Comments
 (0)