43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
|
|
import { describe, it, expect } from 'vitest';
|
||
|
|
import {
|
||
|
|
createFolderSchema,
|
||
|
|
renameFolderSchema,
|
||
|
|
moveFolderSchema,
|
||
|
|
moveDocumentToFolderSchema,
|
||
|
|
} from '@/lib/validators/document-folders';
|
||
|
|
|
||
|
|
describe('document-folder validators', () => {
|
||
|
|
it('accepts a valid create payload', () => {
|
||
|
|
expect(createFolderSchema.safeParse({ name: 'Deals', parentId: null }).success).toBe(true);
|
||
|
|
expect(
|
||
|
|
createFolderSchema.safeParse({ name: 'Q1', parentId: 'abc-123' }).success,
|
||
|
|
).toBe(true);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('rejects empty + over-long names', () => {
|
||
|
|
expect(createFolderSchema.safeParse({ name: '', parentId: null }).success).toBe(false);
|
||
|
|
expect(
|
||
|
|
createFolderSchema.safeParse({ name: 'x'.repeat(201), parentId: null }).success,
|
||
|
|
).toBe(false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('rejects whitespace-only names', () => {
|
||
|
|
expect(createFolderSchema.safeParse({ name: ' ', parentId: null }).success).toBe(false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('rename schema requires only name', () => {
|
||
|
|
expect(renameFolderSchema.safeParse({ name: 'New' }).success).toBe(true);
|
||
|
|
expect(renameFolderSchema.safeParse({ name: '' }).success).toBe(false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('move schema accepts null parentId', () => {
|
||
|
|
expect(moveFolderSchema.safeParse({ parentId: null }).success).toBe(true);
|
||
|
|
expect(moveFolderSchema.safeParse({ parentId: 'abc' }).success).toBe(true);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('moveDocumentToFolderSchema accepts null folderId', () => {
|
||
|
|
expect(moveDocumentToFolderSchema.safeParse({ folderId: null }).success).toBe(true);
|
||
|
|
expect(moveDocumentToFolderSchema.safeParse({ folderId: 'abc' }).success).toBe(true);
|
||
|
|
});
|
||
|
|
});
|