Changes
2 changed files (+151/-2)
-
-
@@ -110,7 +110,8 @@ : paidLeaveProvisions?.filter( (provision) => provision.providedAtPacked <= value.datePacked && provision.expiresAtPacked > value.datePacked, provision.expiresAtPacked > value.datePacked && provision.remainingDays > 0, ) .sort((a, b) => a.expiresAtPacked - b.expiresAtPacked)[0];
-
@@ -165,7 +166,8 @@ : paidLeaveProvisions?.filter( (provision) => provision.providedAtPacked <= value.datePacked && provision.expiresAtPacked > value.datePacked, provision.expiresAtPacked > value.datePacked && provision.remainingDays > 0, ) .sort((a, b) => a.expiresAtPacked - b.expiresAtPacked)[0];
-
-
-
@@ -499,6 +499,153 @@ ],}); }); test("Should use next paid leaves if current one is empty", async () => { const { [CONTEXT]: ctx } = await idbBackend(); const workspace = await createWorkspace(ctx); const worker = await createWorker(ctx, workspace); await providePaidProvision(ctx, { workspaceId: workspace.id, workerId: worker.id, providePaidLeaveKey: worker.providePaidLeaveKey, paidLeave: { providedAt: { year: 2023, month: 1, day: 1, }, amountDays: 1, }, }); await providePaidProvision(ctx, { workspaceId: workspace.id, workerId: worker.id, providePaidLeaveKey: worker.providePaidLeaveKey, paidLeave: { providedAt: { year: 2024, month: 1, day: 1, }, amountDays: 1, }, }); const resp = await writeWorkRecord(ctx, { workspaceId: workspace.id, workerId: worker.id, writeWorkRecordKey: worker.writeWorkRecordKey, workRecord: { dates: [ { year: 2024, month: 1, day: 1 }, { year: 2024, month: 1, day: 2 }, ], record: { case: "paidLeave", value: {}, }, }, }); if (resp.result.case !== "ok") { expect.unreachable(`Expected "ok", got ${JSON.stringify(resp.result.case)}`); } const after = await getWorker(ctx, { workspaceId: workspace.id, workerId: worker.id, workRecordFilter: { since: { year: 2024, month: 1, day: 1, }, until: { year: 2026, month: 1, day: 1, }, }, readMask: { fields: [ WorkerSchema.field.workRecords.number, WorkerSchema.field.paidLeaveProvisions.number, ], }, }); expect(after).toMatchObject({ workRecords: [ expect.objectContaining({ date: expect.objectContaining({ year: 2024, month: 1, day: 1, }), record: expect.objectContaining({ case: "paidLeave", value: expect.objectContaining({ providedAt: expect.objectContaining({ year: 2023, month: 1, day: 1, }), }), }), }), { date: expect.objectContaining({ year: 2024, month: 1, day: 2, }), record: expect.objectContaining({ case: "paidLeave", value: expect.objectContaining({ providedAt: expect.objectContaining({ year: 2024, month: 1, day: 1, }), }), }), }, ], paidLeaveProvisions: [ expect.objectContaining({ providedAt: expect.objectContaining({ year: 2023, month: 1, day: 1, }), expiresAt: expect.objectContaining({ year: 2025, month: 1, day: 1, }), amountDays: 1, remainingDays: 0, }), expect.objectContaining({ providedAt: expect.objectContaining({ year: 2024, month: 1, day: 1, }), expiresAt: expect.objectContaining({ year: 2026, month: 1, day: 1, }), amountDays: 1, remainingDays: 0, }), ], }); }); test("Should write a note", async () => { const { [CONTEXT]: ctx } = await idbBackend();
-