feat(frontend): add countRequiredFilled utility with all 8 field-combination tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
36
frontend/src/lib/utils/requiredFields.test.ts
Normal file
36
frontend/src/lib/utils/requiredFields.test.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import { countRequiredFilled } from './requiredFields';
|
||||
|
||||
describe('countRequiredFilled', () => {
|
||||
it('returns 0 when all three fields are empty', () => {
|
||||
expect(countRequiredFilled('', '', '')).toBe(0);
|
||||
});
|
||||
|
||||
it('returns 1 when only title is set', () => {
|
||||
expect(countRequiredFilled('Ein Brief', '', '')).toBe(1);
|
||||
});
|
||||
|
||||
it('returns 1 when only dateIso is set', () => {
|
||||
expect(countRequiredFilled('', '1920-05-01', '')).toBe(1);
|
||||
});
|
||||
|
||||
it('returns 1 when only senderId is set', () => {
|
||||
expect(countRequiredFilled('', '', 'person-uuid')).toBe(1);
|
||||
});
|
||||
|
||||
it('returns 2 when title and dateIso are set', () => {
|
||||
expect(countRequiredFilled('Ein Brief', '1920-05-01', '')).toBe(2);
|
||||
});
|
||||
|
||||
it('returns 2 when title and senderId are set', () => {
|
||||
expect(countRequiredFilled('Ein Brief', '', 'person-uuid')).toBe(2);
|
||||
});
|
||||
|
||||
it('returns 2 when dateIso and senderId are set', () => {
|
||||
expect(countRequiredFilled('', '1920-05-01', 'person-uuid')).toBe(2);
|
||||
});
|
||||
|
||||
it('returns 3 when all three fields are set', () => {
|
||||
expect(countRequiredFilled('Ein Brief', '1920-05-01', 'person-uuid')).toBe(3);
|
||||
});
|
||||
});
|
||||
3
frontend/src/lib/utils/requiredFields.ts
Normal file
3
frontend/src/lib/utils/requiredFields.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export function countRequiredFilled(title: string, dateIso: string, senderId: string): number {
|
||||
return [title, dateIso, senderId].filter(Boolean).length;
|
||||
}
|
||||
Reference in New Issue
Block a user