Spaces:
Build error
Build error
import { render, screen } from "@testing-library/react"; | |
import userEvent from "@testing-library/user-event"; | |
import { afterEach, describe, expect, it, test, vi } from "vitest"; | |
import { AccountSettingsContextMenu } from "#/components/features/context-menu/account-settings-context-menu"; | |
describe("AccountSettingsContextMenu", () => { | |
const user = userEvent.setup(); | |
const onClickAccountSettingsMock = vi.fn(); | |
const onLogoutMock = vi.fn(); | |
const onCloseMock = vi.fn(); | |
afterEach(() => { | |
onClickAccountSettingsMock.mockClear(); | |
onLogoutMock.mockClear(); | |
onCloseMock.mockClear(); | |
}); | |
it("should always render the right options", () => { | |
render( | |
<AccountSettingsContextMenu | |
onLogout={onLogoutMock} | |
onClose={onCloseMock} | |
/>, | |
); | |
expect( | |
screen.getByTestId("account-settings-context-menu"), | |
).toBeInTheDocument(); | |
expect(screen.getByText("ACCOUNT_SETTINGS$LOGOUT")).toBeInTheDocument(); | |
}); | |
it("should call onLogout when the logout option is clicked", async () => { | |
render( | |
<AccountSettingsContextMenu | |
onLogout={onLogoutMock} | |
onClose={onCloseMock} | |
/>, | |
); | |
const logoutOption = screen.getByText("ACCOUNT_SETTINGS$LOGOUT"); | |
await user.click(logoutOption); | |
expect(onLogoutMock).toHaveBeenCalledOnce(); | |
}); | |
test("logout button is always enabled", async () => { | |
render( | |
<AccountSettingsContextMenu | |
onLogout={onLogoutMock} | |
onClose={onCloseMock} | |
/>, | |
); | |
const logoutOption = screen.getByText("ACCOUNT_SETTINGS$LOGOUT"); | |
await user.click(logoutOption); | |
expect(onLogoutMock).toHaveBeenCalledOnce(); | |
}); | |
it("should call onClose when clicking outside of the element", async () => { | |
render( | |
<AccountSettingsContextMenu | |
onLogout={onLogoutMock} | |
onClose={onCloseMock} | |
/>, | |
); | |
const accountSettingsButton = screen.getByText("ACCOUNT_SETTINGS$LOGOUT"); | |
await user.click(accountSettingsButton); | |
await user.click(document.body); | |
expect(onCloseMock).toHaveBeenCalledOnce(); | |
}); | |
}); | |