2.0.1 • Published 1 year ago
jest-battery-mock v2.0.1
jest-battery-mock
用于 Jest 的 BatteryManager API 模拟
安装
pnpm add -D jest-battery-mock
示例
import { enableMock, disableMock, dispatch } from 'jest-battery-mock'
beforeEach(() => enableMock())
afterEach(() => disableMock())
test('example', async () => {
const batteryManager = await navigator.getBattery()
const callback = jest.fn()
batteryManager.addEventListener('chargingchange', callback)
dispatch({ charging: false })
expect(callback).toBeCalledTimes(1)
})
API
enableMock
启用 navigator.getBattery
模拟
type enableMock = (preset?: BatteryInfo) => void
你可以使用 preset 设置 BatteryManager
的初始状态,默认使用 PRESET_COMMON
disableMock
禁用 navigator.getBattery
模拟
type disableMock = () => void
dispatch
修改 BatteryManager
的状态并触发事件,只有状态发生变化时才会触发对应事件
type dispatch = (state?: Partial<BatteryInfo>) => boolean
你也可以在这里使用预设
预设
我们提供了一些预设,你可以在调用 enableMock
和 dispatch
时使用:
PRESET_COMMON | PRESET_USE_BATTERY | PRESET_LOW_POWER | |
---|---|---|---|
charging | true | false | false |
chargingTime | 0 | Infinity | Infinity |
dischargingTime | Infinity | Infinity | 0 |
level | 1 | 0.8 | 0.1 |