diff --git a/packages/arktype-validator/src/index.test.ts b/packages/arktype-validator/src/index.test.ts index 11dfa12b..acf5312b 100644 --- a/packages/arktype-validator/src/index.test.ts +++ b/packages/arktype-validator/src/index.test.ts @@ -35,6 +35,17 @@ describe('Basic', () => { } ) + app.get( + '/headers', + arktypeValidator( + 'header', + type({ + 'User-Agent': 'string', + }) + ), + (c) => c.json({ success: true, userAgent: c.header('User-Agent') }) + ) + type Actual = ExtractSchema type Expected = { '/author': { @@ -98,6 +109,23 @@ describe('Basic', () => { const data = (await res.json()) as { success: boolean } expect(data['success']).toBe(false) }) + + it("doesn't return cookies after headers validation", async () => { + const req = new Request('http://localhost/headers', { + headers: { + 'User-Agent': 'invalid', + Cookie: 'SECRET=123', + }, + }) + + const res = await app.request(req) + expect(res).not.toBeNull() + expect(res.status).toBe(400) + const data = (await res.json()) as { succcess: false; errors: type.errors } + expect(data.errors).toHaveLength(1) + console.log(data.errors) + expect(data.errors[0].data).not.toHaveProperty('cookie') + }) }) describe('With Hook', () => { diff --git a/packages/arktype-validator/src/index.ts b/packages/arktype-validator/src/index.ts index acc26a72..4dbdde8d 100644 --- a/packages/arktype-validator/src/index.ts +++ b/packages/arktype-validator/src/index.ts @@ -23,7 +23,7 @@ export const arktypeValidator = < } = { in: HasUndefined extends true ? { [K in Target]?: I } : { [K in Target]: I } out: { [K in Target]: O } - } + }, >( target: Target, schema: T,