ICTU/quality-time

View on GitHub
components/frontend/src/header_footer/UIModeMenu.test.js

Summary

Maintainability
B
5 hrs
Test Coverage
import { fireEvent, render, screen } from "@testing-library/react"
import userEvent from "@testing-library/user-event"

import { UIModeMenu } from "./UIModeMenu"

it("sets dark mode", () => {
    const setUIMode = jest.fn()
    render(<UIModeMenu setUIMode={setUIMode} />)
    fireEvent.click(screen.getByText(/Dark mode/))
    expect(setUIMode).toHaveBeenCalledWith("dark")
})

it("sets light mode", () => {
    const setUIMode = jest.fn()
    render(<UIModeMenu setUIMode={setUIMode} uiMode="dark" />)
    fireEvent.click(screen.getByText(/Light mode/))
    expect(setUIMode).toHaveBeenCalledWith("light")
})

it("sets follows os mode", () => {
    const setUIMode = jest.fn()
    render(<UIModeMenu setUIMode={setUIMode} uiMode="dark" />)
    fireEvent.click(screen.getByText(/Follow OS/))
    expect(setUIMode).toHaveBeenCalledWith("follow_os")
})

it("sets dark mode on keypress", async () => {
    const setUIMode = jest.fn()
    render(<UIModeMenu setUIMode={setUIMode} />)
    await userEvent.type(screen.getByText(/Dark mode/), " ")
    expect(setUIMode).toHaveBeenCalledWith("dark")
})