53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
|
|
import { describe, it, expect, beforeEach } from 'vitest'
|
||
|
|
import { setActivePinia, createPinia } from 'pinia'
|
||
|
|
import { useControllerStore } from '../controller'
|
||
|
|
|
||
|
|
describe('useControllerStore', () => {
|
||
|
|
beforeEach(() => {
|
||
|
|
setActivePinia(createPinia())
|
||
|
|
})
|
||
|
|
|
||
|
|
it('starts with default state', () => {
|
||
|
|
const store = useControllerStore()
|
||
|
|
expect(store.isActive).toBe(false)
|
||
|
|
expect(store.gamepadCount).toBe(0)
|
||
|
|
})
|
||
|
|
|
||
|
|
it('setActive sets isActive to true', () => {
|
||
|
|
const store = useControllerStore()
|
||
|
|
store.setActive(true)
|
||
|
|
expect(store.isActive).toBe(true)
|
||
|
|
})
|
||
|
|
|
||
|
|
it('setActive sets isActive to false', () => {
|
||
|
|
const store = useControllerStore()
|
||
|
|
store.setActive(true)
|
||
|
|
store.setActive(false)
|
||
|
|
expect(store.isActive).toBe(false)
|
||
|
|
})
|
||
|
|
|
||
|
|
it('setGamepadCount updates count and activates when > 0', () => {
|
||
|
|
const store = useControllerStore()
|
||
|
|
store.setGamepadCount(2)
|
||
|
|
expect(store.gamepadCount).toBe(2)
|
||
|
|
expect(store.isActive).toBe(true)
|
||
|
|
})
|
||
|
|
|
||
|
|
it('setGamepadCount deactivates when count is 0', () => {
|
||
|
|
const store = useControllerStore()
|
||
|
|
store.setGamepadCount(1)
|
||
|
|
expect(store.isActive).toBe(true)
|
||
|
|
store.setGamepadCount(0)
|
||
|
|
expect(store.gamepadCount).toBe(0)
|
||
|
|
expect(store.isActive).toBe(false)
|
||
|
|
})
|
||
|
|
|
||
|
|
it('setActive does not affect gamepadCount', () => {
|
||
|
|
const store = useControllerStore()
|
||
|
|
store.setGamepadCount(3)
|
||
|
|
store.setActive(false)
|
||
|
|
expect(store.isActive).toBe(false)
|
||
|
|
expect(store.gamepadCount).toBe(3)
|
||
|
|
})
|
||
|
|
})
|