Files
pn-new-crm/tests/unit/document-folders-validators.test.ts
Matt 5422f11747 chore: prettier formatter drift across recent commits
Prettier reformatting on files touched in the wave 11.B sequence —
markdown italics _underscore-style_, single-line conditionals, minor
whitespace fixes. No semantic changes. .env.example reformatting left
unstaged (blocked by pre-commit hook).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 10:57:37 +02:00

41 lines
1.5 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);
});
});