Skip to content

Commit 7090596

Browse files
committed
feat: add unit tests for type guard of enum.has and instanceof operator
1 parent e9a1471 commit 7090596

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

test/test-suites/test-typing.ts

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,24 @@ const testTyping = (engine: TestEngineBase<'jest' | 'playwright'>) => {
1313
return { weekEnum, Enum, WeekConfig, localeEN };
1414
},
1515
({ weekEnum, Enum, WeekConfig, localeEN }) => {
16-
const value = weekEnum as typeof weekEnum | number;
17-
if (Enum.isEnum(value)) {
18-
engine.expect(value).toBe(weekEnum);
16+
const enumObj = weekEnum as typeof weekEnum | number;
17+
if (Enum.isEnum(enumObj)) {
18+
engine.expect(enumObj).toBe(weekEnum);
1919
} else {
20-
console.log(value + 1);
20+
console.log(enumObj + 1);
21+
}
22+
23+
const value = 1 as 1 | { foo: number };
24+
if (weekEnum.has(value)) {
25+
engine.expect(value.toFixed(1)).toBe('1.0');
26+
} else {
27+
console.log(value satisfies { foo: number });
28+
}
29+
30+
if (value instanceof weekEnum) {
31+
engine.expect(value.toFixed(1)).toBe('1.0');
32+
} else {
33+
console.log(value as { foo: number });
2134
}
2235

2336
validateEnum(engine, weekEnum, localeEN, WeekConfig);
@@ -33,11 +46,11 @@ const testTyping = (engine: TestEngineBase<'jest' | 'playwright'>) => {
3346
return { weekEnum, Enum, WeekConfig, localeEN };
3447
},
3548
({ weekEnum, Enum, WeekConfig, localeEN }) => {
36-
const value = weekEnum as typeof weekEnum | number;
37-
if (value instanceof Enum) {
38-
engine.expect(value).toBe(weekEnum);
49+
const enumObj = weekEnum as typeof weekEnum | number;
50+
if (enumObj instanceof Enum) {
51+
engine.expect(enumObj).toBe(weekEnum);
3952
} else {
40-
console.log(value + 1);
53+
console.log(enumObj + 1);
4154
}
4255

4356
validateEnum(engine, weekEnum, localeEN, WeekConfig);

0 commit comments

Comments
 (0)