Spaces:
Sleeping
Sleeping
| import { | |
| adminUserCreateRequestSchema, | |
| adminPermissionsRequestSchema, | |
| adminInviteCreateRequestSchema, | |
| adminFeatureToggleRequestSchema, | |
| } from './admin.schema'; | |
| import { describe, it, expect } from 'vitest'; | |
| describe('adminUserCreateRequestSchema', () => { | |
| it('requires an email; role limited to user/admin', () => { | |
| expect( | |
| adminUserCreateRequestSchema.safeParse({ | |
| email: 'a@b.c', | |
| password: 'p', | |
| role: 'admin', | |
| }).success, | |
| ).toBe(true); | |
| expect( | |
| adminUserCreateRequestSchema.safeParse({ email: 'a@b.c' }).success, | |
| ).toBe(true); | |
| expect( | |
| adminUserCreateRequestSchema.safeParse({ password: 'p' }).success, | |
| ).toBe(false); | |
| expect( | |
| adminUserCreateRequestSchema.safeParse({ email: 'a@b.c', role: 'root' }) | |
| .success, | |
| ).toBe(false); | |
| }); | |
| }); | |
| describe('adminPermissionsRequestSchema', () => { | |
| it('requires a permissions record', () => { | |
| expect( | |
| adminPermissionsRequestSchema.safeParse({ | |
| permissions: { trip_edit: { user: true } }, | |
| }).success, | |
| ).toBe(true); | |
| expect(adminPermissionsRequestSchema.safeParse({}).success).toBe(false); | |
| }); | |
| }); | |
| describe('adminInviteCreateRequestSchema', () => { | |
| it('accepts optional uses/expiry/role', () => { | |
| expect( | |
| adminInviteCreateRequestSchema.safeParse({ | |
| max_uses: 5, | |
| expires_in_days: 7, | |
| }).success, | |
| ).toBe(true); | |
| expect(adminInviteCreateRequestSchema.safeParse({}).success).toBe(true); | |
| expect( | |
| adminInviteCreateRequestSchema.safeParse({ role: 'root' }).success, | |
| ).toBe(false); | |
| }); | |
| }); | |
| describe('adminFeatureToggleRequestSchema', () => { | |
| it('requires a boolean enabled', () => { | |
| expect( | |
| adminFeatureToggleRequestSchema.safeParse({ enabled: true }).success, | |
| ).toBe(true); | |
| expect( | |
| adminFeatureToggleRequestSchema.safeParse({ enabled: 'yes' }).success, | |
| ).toBe(false); | |
| }); | |
| }); | |