koel/resources/assets/js/services/volumeManager.spec.ts

43 lines
1.1 KiB
TypeScript
Raw Normal View History

import { expect, it } from 'vitest'
import UnitTestCase from '@/__tests__/UnitTestCase'
import { preferenceStore } from '@/stores'
import { volumeManager, http } from '@/services'
let input: HTMLInputElement
new class extends UnitTestCase {
protected beforeEach (cb?: Closure) {
super.beforeEach(() => {
2022-11-02 14:06:53 +00:00
preferenceStore.volume = 5
input = document.createElement('input')
volumeManager.init(input)
})
}
protected test () {
it('gets volume', () => expect(volumeManager.get()).toEqual(5))
it('sets volume', () => {
volumeManager.set(4.2)
expect(volumeManager.volume.value).toEqual(4.2)
expect(input.value).toEqual('4.2')
})
it('mutes', () => {
volumeManager.mute()
expect(volumeManager.volume.value).toEqual(0)
expect(input.value).toEqual('0')
// muting should not persist
2022-11-02 14:06:53 +00:00
expect(preferenceStore.volume).toEqual(5)
})
it('unmutes', () => {
2022-11-02 14:06:53 +00:00
preferenceStore.volume = 7
volumeManager.unmute()
expect(volumeManager.volume.value).toEqual(7)
expect(input.value).toEqual('7')
})
}
}