mirror of
https://github.com/koel/koel
synced 2024-12-05 02:09:54 +00:00
36 lines
1 KiB
TypeScript
36 lines
1 KiB
TypeScript
|
import UnitTestCase from '@/__tests__/UnitTestCase'
|
||
|
import { expect, it, vi } from 'vitest'
|
||
|
import { arrayify, limitBy, use } from './helpers'
|
||
|
|
||
|
new class extends UnitTestCase {
|
||
|
protected test () {
|
||
|
it('use() triggers a closure with a defined value', () => {
|
||
|
const mock = vi.fn()
|
||
|
use('foo', mock)
|
||
|
expect(mock).toHaveBeenCalledWith('foo')
|
||
|
})
|
||
|
|
||
|
it('use() does not trigger a closure with an undefined value', () => {
|
||
|
const mock = vi.fn()
|
||
|
use(undefined, mock)
|
||
|
expect(mock).not.toHaveBeenCalled()
|
||
|
})
|
||
|
|
||
|
it.each([
|
||
|
['foo', ['foo']],
|
||
|
[['foo', 'bar'], ['foo', 'bar']]
|
||
|
])('turns the parameter into an array', (input, output) => expect(arrayify(input)).toEqual(output))
|
||
|
|
||
|
it.each([
|
||
|
[2, 0, ['a', 'b']],
|
||
|
[2, 1, ['b', 'c']],
|
||
|
[1, 0, ['a']],
|
||
|
[1, 2, ['c']],
|
||
|
[0, 0, []],
|
||
|
[0, 1, []]
|
||
|
])('takes %d elements from %d position', (count, position, result) => {
|
||
|
expect(limitBy(['a', 'b', 'c', 'd'], count, position)).toEqual(result)
|
||
|
})
|
||
|
}
|
||
|
}
|