import userEvent from "@testing-library/user-event"; import { describe, expect, it, vi, beforeEach } from "vitest"; import { render, screen, waitFor } from "@testing-library/react"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { AnalyticsConsentFormModal } from "#/components/features/analytics/analytics-consent-form-modal"; import SettingsService from "#/api/settings-service/settings-service.api"; import { useSelectedOrganizationStore } from "#/stores/selected-organization-store"; describe("AnalyticsConsentFormModal", () => { beforeEach(() => { useSelectedOrganizationStore.setState({ organizationId: "test-org-id" }); }); it("should call saveUserSettings with consent", async () => { const user = userEvent.setup(); const onCloseMock = vi.fn(); const saveUserSettingsSpy = vi.spyOn(SettingsService, "saveSettings"); render(, { wrapper: ({ children }) => ( {children} ), }); const confirmButton = screen.getByTestId("confirm-preferences"); await user.click(confirmButton); expect(saveUserSettingsSpy).toHaveBeenCalledWith( expect.objectContaining({ user_consents_to_analytics: true }), ); await waitFor(() => expect(onCloseMock).toHaveBeenCalled()); }); });