Take the time off together, in long stretches
A season preset in a two-parent household now means both parents, not either one — being off together is the point of the period. Within such a period the planner used to pick whoever had the most parental-benefit days left, date by date, so spending kept moving the lead and the funding flipped almost daily. Six weeks came out as a patchwork that costs nothing to hold but a great deal to request. The payer is now chosen once per half of the window, reusing the same split the swap strategy already uses: one parent on parental benefit while the other takes vacation, then they change over. Both are still off every day, and if one runs out mid-stretch the roles swap for the rest rather than day by day. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ei7gCZzdd751uZtPzb1Pep
This commit is contained in:
@@ -850,6 +850,43 @@ describe('Calendar', () => {
|
||||
await waitFor(() => expect(sync).toHaveBeenCalled())
|
||||
})
|
||||
|
||||
it('defaults a solo household preset to "either" parent', async () => {
|
||||
const created = makeLeaveWish({ id: 'lw-preset' })
|
||||
const add = vi.fn().mockResolvedValue(created)
|
||||
const sync = vi.fn().mockResolvedValue(makePlanSyncResponse())
|
||||
vi.mocked(useWorkspaceMembers).mockReturnValue(
|
||||
makeWorkspaceMembersResult({ data: [makePersonalData({ uuid: 'pd-a', name: 'Förälder A' })] }),
|
||||
)
|
||||
vi.mocked(useLeaveWishes).mockReturnValue(makeLeaveWishesResult({ add, data: [] }))
|
||||
vi.mocked(usePlanSync).mockReturnValue(makePlanSyncResult({ sync }))
|
||||
|
||||
render(<Calendar />)
|
||||
fireEvent.click(screen.getByTestId('preset-click'))
|
||||
|
||||
await waitFor(() => expect(add).toHaveBeenCalledWith(expect.objectContaining({ parentMode: 'either' })))
|
||||
})
|
||||
|
||||
it('defaults a two-parent household preset to "both" parents', async () => {
|
||||
const created = makeLeaveWish({ id: 'lw-preset' })
|
||||
const add = vi.fn().mockResolvedValue(created)
|
||||
const sync = vi.fn().mockResolvedValue(makePlanSyncResponse())
|
||||
vi.mocked(useWorkspaceMembers).mockReturnValue(
|
||||
makeWorkspaceMembersResult({
|
||||
data: [
|
||||
makePersonalData({ uuid: 'pd-a', name: 'Förälder A' }),
|
||||
makePersonalData({ uuid: 'pd-b', name: 'Förälder B' }),
|
||||
],
|
||||
}),
|
||||
)
|
||||
vi.mocked(useLeaveWishes).mockReturnValue(makeLeaveWishesResult({ add, data: [] }))
|
||||
vi.mocked(usePlanSync).mockReturnValue(makePlanSyncResult({ sync }))
|
||||
|
||||
render(<Calendar />)
|
||||
fireEvent.click(screen.getByTestId('preset-click'))
|
||||
|
||||
await waitFor(() => expect(add).toHaveBeenCalledWith(expect.objectContaining({ parentMode: 'both' })))
|
||||
})
|
||||
|
||||
it('navigates the month view to the resolved placement and flashes the band', async () => {
|
||||
const created = makeLeaveWish({ id: 'lw-preset' })
|
||||
const add = vi.fn().mockResolvedValue(created)
|
||||
|
||||
Reference in New Issue
Block a user