feat(test): add helper util tests

This commit is contained in:
Phan An 2022-05-14 17:51:47 +02:00
parent f1c2febd38
commit 6f0d6e8abc
No known key found for this signature in database
GPG key ID: A81E4477F0BB6FDC
2 changed files with 36 additions and 1 deletions

View file

@ -0,0 +1,35 @@
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)
})
}
}

View file

@ -12,4 +12,4 @@ export const arrayify = <T> (maybeArray: T | Array<T>) => ([] as Array<T>).conca
export const noop = () => { export const noop = () => {
} }
export const limitBy = <T> (arr: T[], n: number, offset: number = 0): T[] => arr.slice(offset, offset + n) export const limitBy = <T> (arr: T[], count: number, offset: number = 0): T[] => arr.slice(offset, offset + count)