blessing-skin-server/resources/assets/tests/components/DarkModeButton.test.tsx
Zephyr Lykos 178664ed83
refactor: migrate toolchain, part 1
- Switched to pnpm
- Updated to typescript 4.9.5
- JSX transforms switched to react-jsx
- Use swc for typescript transforms
- Remove deprecated dependencies
- Cleanup unused types
- Some ESM fixes
- PostCSS config now lives in package.json
- Bump support target

TODO:
- switch to vite or plain esbuild
- jest to vitest / uvu
- jquery to cash-dom
- pure ESM (lodash-es, etc.)
- drop prettier & husky (lint-staged is okay)
- drop wasm cli & xterm.js
- update bootstrap
2023-07-10 19:58:18 +08:00

22 lines
689 B
TypeScript

import { render, fireEvent, waitFor } from '@testing-library/react'
import * as fetch from '@/scripts/net'
import DarkModeButton from '@/components/DarkModeButton'
jest.mock('@/scripts/net')
test('click to toggle', async () => {
const { getByRole } = render(<DarkModeButton initMode={false} />)
const button = getByRole('button')
fireEvent.click(button)
await waitFor(() => expect(fetch.put).toBeCalledWith('/user/dark-mode'))
})
test('default is dark', async () => {
const { getByRole } = render(<DarkModeButton initMode={true} />)
const button = getByRole('button')
fireEvent.click(button)
await waitFor(() => expect(fetch.put).toBeCalledWith('/user/dark-mode'))
})