Spaces:
Sleeping
Sleeping
| import { | |
| oauthTokenRequestSchema, | |
| oauthConsentRequestSchema, | |
| oauthClientCreateRequestSchema, | |
| } from './oauth.schema'; | |
| import { describe, it, expect } from 'vitest'; | |
| describe('oauthTokenRequestSchema', () => { | |
| it('is permissive across grant types and passes extras through', () => { | |
| expect( | |
| oauthTokenRequestSchema.safeParse({ | |
| grant_type: 'authorization_code', | |
| client_id: 'c', | |
| code: 'x', | |
| redirect_uri: 'u', | |
| code_verifier: 'v', | |
| }).success, | |
| ).toBe(true); | |
| expect( | |
| oauthTokenRequestSchema.safeParse({ | |
| grant_type: 'client_credentials', | |
| client_id: 'c', | |
| client_secret: 's', | |
| scope: 'a b', | |
| }).success, | |
| ).toBe(true); | |
| expect(oauthTokenRequestSchema.safeParse({}).success).toBe(true); | |
| }); | |
| }); | |
| describe('oauthConsentRequestSchema', () => { | |
| it('requires the PKCE consent fields + approved flag', () => { | |
| expect( | |
| oauthConsentRequestSchema.safeParse({ | |
| client_id: 'c', | |
| redirect_uri: 'u', | |
| scope: 's', | |
| code_challenge: 'cc', | |
| code_challenge_method: 'S256', | |
| approved: true, | |
| }).success, | |
| ).toBe(true); | |
| expect( | |
| oauthConsentRequestSchema.safeParse({ | |
| client_id: 'c', | |
| redirect_uri: 'u', | |
| scope: 's', | |
| code_challenge: 'cc', | |
| code_challenge_method: 'S256', | |
| }).success, | |
| ).toBe(false); | |
| }); | |
| }); | |
| describe('oauthClientCreateRequestSchema', () => { | |
| it('requires name + allowed_scopes', () => { | |
| expect( | |
| oauthClientCreateRequestSchema.safeParse({ | |
| name: 'CLI', | |
| allowed_scopes: ['trips:read'], | |
| }).success, | |
| ).toBe(true); | |
| expect( | |
| oauthClientCreateRequestSchema.safeParse({ name: 'CLI' }).success, | |
| ).toBe(false); | |
| expect( | |
| oauthClientCreateRequestSchema.safeParse({ allowed_scopes: [] }).success, | |
| ).toBe(false); | |
| }); | |
| }); | |