File size: 1,919 Bytes
cb43fbd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import {
  vacayAddHolidayCalendarRequestSchema,
  vacayInviteRequestSchema,
  vacayToggleEntryRequestSchema,
  vacayAddYearRequestSchema,
} from './vacay.schema';

import { describe, it, expect } from 'vitest';

describe('vacayAddHolidayCalendarRequestSchema', () => {
  it('requires a region; label/color/sort_order optional', () => {
    expect(
      vacayAddHolidayCalendarRequestSchema.safeParse({ region: 'DE-BY' })
        .success,
    ).toBe(true);
    expect(
      vacayAddHolidayCalendarRequestSchema.safeParse({
        region: 'DE-BY',
        label: null,
      }).success,
    ).toBe(true);
    expect(vacayAddHolidayCalendarRequestSchema.safeParse({}).success).toBe(
      false,
    );
  });
});

describe('vacayInviteRequestSchema', () => {
  it('accepts a numeric or string user_id', () => {
    expect(vacayInviteRequestSchema.safeParse({ user_id: 2 }).success).toBe(
      true,
    );
    expect(vacayInviteRequestSchema.safeParse({ user_id: '2' }).success).toBe(
      true,
    );
    expect(vacayInviteRequestSchema.safeParse({}).success).toBe(false);
  });
});

describe('vacayToggleEntryRequestSchema', () => {
  it('requires a date; target_user_id optional', () => {
    expect(
      vacayToggleEntryRequestSchema.safeParse({ date: '2026-07-01' }).success,
    ).toBe(true);
    expect(
      vacayToggleEntryRequestSchema.safeParse({
        date: '2026-07-01',
        target_user_id: 3,
      }).success,
    ).toBe(true);
    expect(vacayToggleEntryRequestSchema.safeParse({}).success).toBe(false);
  });
});

describe('vacayAddYearRequestSchema', () => {
  it('accepts a numeric or string year', () => {
    expect(vacayAddYearRequestSchema.safeParse({ year: 2027 }).success).toBe(
      true,
    );
    expect(vacayAddYearRequestSchema.safeParse({ year: '2027' }).success).toBe(
      true,
    );
    expect(vacayAddYearRequestSchema.safeParse({}).success).toBe(false);
  });
});