mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-18 13:23:33 +08:00
48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import { beforeEach, describe, expect, it } from 'vitest'
|
|
import { useOverlayStore } from './overlayStore'
|
|
|
|
const reset = () => {
|
|
useOverlayStore.setState(useOverlayStore.getInitialState(), true)
|
|
}
|
|
|
|
describe('overlayStore', () => {
|
|
beforeEach(reset)
|
|
|
|
it('starts at count 0', () => {
|
|
expect(useOverlayStore.getState().count).toBe(0)
|
|
})
|
|
|
|
it('push increments by 1', () => {
|
|
useOverlayStore.getState().push()
|
|
expect(useOverlayStore.getState().count).toBe(1)
|
|
useOverlayStore.getState().push()
|
|
expect(useOverlayStore.getState().count).toBe(2)
|
|
})
|
|
|
|
it('pop decrements by 1', () => {
|
|
const { push, pop } = useOverlayStore.getState()
|
|
push()
|
|
push()
|
|
pop()
|
|
expect(useOverlayStore.getState().count).toBe(1)
|
|
})
|
|
|
|
it('pop at 0 stays clamped at 0', () => {
|
|
useOverlayStore.getState().pop()
|
|
expect(useOverlayStore.getState().count).toBe(0)
|
|
useOverlayStore.getState().pop()
|
|
expect(useOverlayStore.getState().count).toBe(0)
|
|
})
|
|
|
|
it('balances pushes and pops back to 0', () => {
|
|
const { push, pop } = useOverlayStore.getState()
|
|
push(); push(); push()
|
|
expect(useOverlayStore.getState().count).toBe(3)
|
|
pop(); pop(); pop()
|
|
expect(useOverlayStore.getState().count).toBe(0)
|
|
// extra pop is still clamped
|
|
pop()
|
|
expect(useOverlayStore.getState().count).toBe(0)
|
|
})
|
|
})
|