Skip to content

Commit d4e9652

Browse files
authored
fix: it should throws an error when fake z.never (#201)
Co-authored-by: Ernest <>
1 parent 053b455 commit d4e9652

File tree

4 files changed

+5
-6
lines changed

4 files changed

+5
-6
lines changed

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
- ✅ numeric enums
4242
- ✅ string enums
4343
- ✅ const enums
44-
- ✅ z.never: return `undefined`
44+
- ✅ z.never: always throws an error
4545
- ✅ z.null
4646
- ✅ z.nullable
4747
- z.number
@@ -164,7 +164,6 @@ const schema = z.object({
164164
}),
165165
any: z.any(),
166166
unknown: z.unknown(),
167-
// never: z.never(), // should not use its return value
168167
literal: z.literal('tuna'),
169168
strings: z.object({
170169
max: z.string().max(5),

src/zod-never-faker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ZodTypeFaker } from './zod-type-faker'
33

44
export class ZodNeverFaker extends ZodTypeFaker<z.ZodNever> {
55
fake(): z.infer<z.ZodNever> {
6-
return void 0 as never
6+
throw Error()
77
}
88

99
static create(schema: z.ZodNever): ZodNeverFaker {

tests/integration.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ testMultipleTimes('integration', async () => {
4040
}),
4141
any: z.any(),
4242
unknown: z.unknown(),
43-
// never: z.never(), // should not use its return value
43+
// never: z.never(), // always throws an error
4444
literal: z.literal('tuna'),
4545
strings: z.object({
4646
max: z.string().max(5),

tests/zod-never-faker.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ test('ZodNeverFaker.fake should return never type', () => {
3131
expectType<TypeEqual<ReturnType<typeof faker.fake>, never>>(true)
3232
})
3333

34-
test('ZodNullFaker.fake should return a data (but should not be used)', () => {
34+
test('ZodNullFaker.fake should throw an error', () => {
3535
const schema = z.never()
3636
const faker = zodNeverFaker(schema)
37-
expect(() => faker.fake()).not.toThrow()
37+
expect(() => faker.fake()).toThrow()
3838
})

0 commit comments

Comments
 (0)