fix: restore schedule interaction correctness

* fix: restore schedule interaction correctness

* fix: use scheduled stock timing for historical doses
This commit is contained in:
Daniel Volz
2026-03-14 20:49:13 +01:00
committed by GitHub
parent 816888a697
commit 0160ef3ddf
15 changed files with 888 additions and 286 deletions
@@ -196,8 +196,6 @@ describe("useAppContext", () => {
setTakenDoses: vi.fn(),
takenDoseTimestamps: new Map<string, number>(),
dismissedDoses: new Set<string>(),
showClearMissedConfirm: true,
setShowClearMissedConfirm: vi.fn(),
clearDosesState: vi.fn(),
getDoseId: vi.fn((base: string, person: string | null) => (person ? `${base}-${person}` : base)),
isDoseTakenAutomatically: vi.fn(() => false),
@@ -376,38 +374,6 @@ describe("useAppContext", () => {
expect(window.history.back).toHaveBeenCalled();
});
it("dismisses missed doses and posts unique medication IDs", async () => {
const { result } = renderHook(() => useAppContext(), { wrapper });
await act(async () => {
await result.current.dismissMissedDoses(["11-0-1730000000000", "11-2-1730000100000", "12-0-1730000200000"]);
});
expect(fetch).toHaveBeenCalledWith(
"/api/medications/dismiss-until",
expect.objectContaining({
method: "POST",
credentials: "include",
})
);
const body = JSON.parse((fetch as ReturnType<typeof vi.fn>).mock.calls[0][1].body as string);
expect(body.medicationIds).toEqual([11, 12]);
expect(mockUseMedications().loadMeds).toHaveBeenCalled();
expect(mockUseDoses().setShowClearMissedConfirm).toHaveBeenCalledWith(false);
});
it("does not dismiss missed doses for empty/invalid IDs", async () => {
const { result } = renderHook(() => useAppContext(), { wrapper });
await act(async () => {
await result.current.dismissMissedDoses([]);
await result.current.dismissMissedDoses(["invalid-dose-id"]);
});
expect(fetch).not.toHaveBeenCalledWith("/api/medications/dismiss-until", expect.anything());
});
it("imports data and triggers reload plus import result state", async () => {
const { result } = renderHook(() => useAppContext(), { wrapper });
@@ -583,15 +549,4 @@ describe("useAppContext", () => {
expect(mockAlert).toHaveBeenCalledWith("exportImport.importError: Import failed");
});
it("keeps clear-missed confirm open when dismiss request fails", async () => {
(global.fetch as ReturnType<typeof vi.fn>).mockRejectedValueOnce(new Error("network"));
const { result } = renderHook(() => useAppContext(), { wrapper });
await act(async () => {
await result.current.dismissMissedDoses(["11-0-1730000000000"]);
});
expect(mockUseDoses().setShowClearMissedConfirm).not.toHaveBeenCalledWith(false);
});
});