Spaces:
Build error
Build error
import { render, screen } from "@testing-library/react"; | |
import userEvent from "@testing-library/user-event"; | |
import { describe, expect, it, vi } from "vitest"; | |
import { SettingsSwitch } from "#/components/features/settings/settings-switch"; | |
describe("SettingsSwitch", () => { | |
it("should call the onChange handler when the input is clicked", async () => { | |
const user = userEvent.setup(); | |
const onToggleMock = vi.fn(); | |
render( | |
<SettingsSwitch testId="test-switch" onToggle={onToggleMock}> | |
Test Switch | |
</SettingsSwitch>, | |
); | |
const switchInput = screen.getByTestId("test-switch"); | |
await user.click(switchInput); | |
expect(onToggleMock).toHaveBeenCalledWith(true); | |
await user.click(switchInput); | |
expect(onToggleMock).toHaveBeenCalledWith(false); | |
}); | |
it("should render a beta tag if isBeta is true", () => { | |
const { rerender } = render( | |
<SettingsSwitch testId="test-switch" onToggle={vi.fn()} isBeta={false}> | |
Test Switch | |
</SettingsSwitch>, | |
); | |
expect(screen.queryByText(/beta/i)).not.toBeInTheDocument(); | |
rerender( | |
<SettingsSwitch testId="test-switch" onToggle={vi.fn()} isBeta> | |
Test Switch | |
</SettingsSwitch>, | |
); | |
expect(screen.getByText(/beta/i)).toBeInTheDocument(); | |
}); | |
it("should be able to set a default toggle state", async () => { | |
const user = userEvent.setup(); | |
const onToggleMock = vi.fn(); | |
render( | |
<SettingsSwitch | |
testId="test-switch" | |
onToggle={onToggleMock} | |
defaultIsToggled | |
> | |
Test Switch | |
</SettingsSwitch>, | |
); | |
expect(screen.getByTestId("test-switch")).toBeChecked(); | |
const switchInput = screen.getByTestId("test-switch"); | |
await user.click(switchInput); | |
expect(onToggleMock).toHaveBeenCalledWith(false); | |
expect(screen.getByTestId("test-switch")).not.toBeChecked(); | |
}); | |
}); | |