fix: restore schedule interaction correctness
* fix: restore schedule interaction correctness * fix: use scheduled stock timing for historical doses
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user