Spaces:
Sleeping
Sleeping
| import { | |
| categorySchema, | |
| createCategoryRequestSchema, | |
| updateCategoryRequestSchema, | |
| } from './category.schema'; | |
| import { describe, it, expect } from 'vitest'; | |
| describe('categorySchema', () => { | |
| it('accepts a full category', () => { | |
| expect( | |
| categorySchema.safeParse({ | |
| id: 1, | |
| name: 'Food', | |
| color: '#fff', | |
| icon: '🍔', | |
| }).success, | |
| ).toBe(true); | |
| }); | |
| }); | |
| describe('createCategoryRequestSchema', () => { | |
| it('requires a non-empty name; colour and icon are optional', () => { | |
| expect( | |
| createCategoryRequestSchema.safeParse({ name: 'Food' }).success, | |
| ).toBe(true); | |
| expect(createCategoryRequestSchema.safeParse({ name: '' }).success).toBe( | |
| false, | |
| ); | |
| expect(createCategoryRequestSchema.safeParse({}).success).toBe(false); | |
| }); | |
| }); | |
| describe('updateCategoryRequestSchema', () => { | |
| it('allows every field to be omitted (the service COALESCEs)', () => { | |
| expect(updateCategoryRequestSchema.safeParse({}).success).toBe(true); | |
| expect( | |
| updateCategoryRequestSchema.safeParse({ color: '#000' }).success, | |
| ).toBe(true); | |
| }); | |
| }); | |