Skip to content

Commit add3fb8

Browse files
author
Srishti-Gupta74
committed
test(icons): add type compiler validation coverage
1 parent 0783fae commit add3fb8

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { describe, expectTypeOf, it } from 'vitest';
2+
import { CopyIcon, ZapIcon, BoxIcon, CheckIcon, CloseIcon } from './Icons';
3+
4+
describe('Icons Type Compiler Validation', () => {
5+
it('exports icon components as functions', () => {
6+
expectTypeOf(CopyIcon).toBeFunction();
7+
expectTypeOf(ZapIcon).toBeFunction();
8+
expectTypeOf(BoxIcon).toBeFunction();
9+
expectTypeOf(CheckIcon).toBeFunction();
10+
expectTypeOf(CloseIcon).toBeFunction();
11+
});
12+
13+
it('accepts no parameters for icon components', () => {
14+
expectTypeOf(CopyIcon).parameters.toEqualTypeOf<[]>();
15+
expectTypeOf(ZapIcon).parameters.toEqualTypeOf<[]>();
16+
expectTypeOf(BoxIcon).parameters.toEqualTypeOf<[]>();
17+
expectTypeOf(CheckIcon).parameters.toEqualTypeOf<[]>();
18+
expectTypeOf(CloseIcon).parameters.toEqualTypeOf<[]>();
19+
});
20+
21+
it('all icon components return compatible types', () => {
22+
expectTypeOf<ReturnType<typeof CopyIcon>>().toEqualTypeOf<ReturnType<typeof ZapIcon>>();
23+
24+
expectTypeOf<ReturnType<typeof ZapIcon>>().toEqualTypeOf<ReturnType<typeof BoxIcon>>();
25+
26+
expectTypeOf<ReturnType<typeof BoxIcon>>().toEqualTypeOf<ReturnType<typeof CheckIcon>>();
27+
28+
expectTypeOf<ReturnType<typeof CheckIcon>>().toEqualTypeOf<ReturnType<typeof CloseIcon>>();
29+
});
30+
31+
it('maintains compatible return types across icons', () => {
32+
expectTypeOf<ReturnType<typeof CopyIcon>>().toEqualTypeOf<ReturnType<typeof ZapIcon>>();
33+
34+
expectTypeOf<ReturnType<typeof BoxIcon>>().toEqualTypeOf<ReturnType<typeof CheckIcon>>();
35+
36+
expectTypeOf<ReturnType<typeof CheckIcon>>().toEqualTypeOf<ReturnType<typeof CloseIcon>>();
37+
});
38+
39+
it('all icon components share the same callable signature', () => {
40+
expectTypeOf(CopyIcon).toEqualTypeOf<typeof ZapIcon>();
41+
expectTypeOf(ZapIcon).toEqualTypeOf<typeof BoxIcon>();
42+
expectTypeOf(BoxIcon).toEqualTypeOf<typeof CheckIcon>();
43+
expectTypeOf(CheckIcon).toEqualTypeOf<typeof CloseIcon>();
44+
});
45+
});

0 commit comments

Comments
 (0)