项目作者: NoDocCat

项目描述 :
Battery api mock for jest
高级语言: TypeScript
项目地址: git://github.com/NoDocCat/jest-battery-mock.git
创建时间: 2021-02-04T06:21:47Z
项目社区:https://github.com/NoDocCat/jest-battery-mock

开源协议:MIT License

下载


jest-battery-mock

BatteryManager API mock for Jest

English | 简体中文

npm
GitHub Workflow Status
Codecov

Installation

  1. pnpm add -D jest-battery-mock

Example

  1. import { enableMock, disableMock, dispatch } from 'jest-battery-mock'
  2. beforeEach(() => enableMock())
  3. afterEach(() => disableMock())
  4. test('example', async () => {
  5. const batteryManager = await navigator.getBattery()
  6. const callback = jest.fn()
  7. batteryManager.addEventListener('chargingchange', callback)
  8. dispatch({ charging: false })
  9. expect(callback).toBeCalledTimes(1)
  10. })

API

enableMock

Enable mock for navigator.getBattery

  1. type enableMock = (preset?: BatteryInfo) => void

You can set BatteryManager initial state with preset, By default use PRESET_COMMON

disableMock

Disable mock for navigator.getBattery

  1. type disableMock = () => void

dispatch

Change BatteryManager state and trigger event, trigger the corresponding event only when the state changes

  1. type dispatch = (state?: Partial<BatteryInfo>) => boolean

You can also use preset here

Preset

We have some presets for you, you can use it when call enableMock and 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

Reference & Thanks