prray
Version:
'Promisified' Array, comes with async method supports(such as mapAsync). And it is compatible with normal array.
40 lines (33 loc) • 1.87 kB
text/typescript
import test from 'ava'
import { prray, Prray } from '../src/prray'
import { toPrrayPromise } from './test-utils'
test('prray fill', async t => {
t.deepEqual(prray([1, 2, 3]).fill(4), prray([4, 4, 4]))
t.deepEqual(prray([1, 2, 3]).fill(4, 1), prray([1, 4, 4]))
t.deepEqual(prray([1, 2, 3]).fill(4, 1, 2), prray([1, 4, 3]))
t.deepEqual(prray([1, 2, 3]).fill(4, 1, 1), prray([1, 2, 3]))
t.deepEqual(prray([1, 2, 3]).fill(4, 3, 3), prray([1, 2, 3]))
t.deepEqual(prray([1, 2, 3]).fill(4, -3, -2), prray([4, 2, 3]))
t.deepEqual(prray([1, 2, 3]).fill(4, NaN, NaN), prray([1, 2, 3]))
t.deepEqual(prray([1, 2, 3]).fill(4, 3, 5), prray([1, 2, 3]))
t.deepEqual(new Prray(3).fill(4), prray([4, 4, 4]))
const prr = new Prray(3).fill({}) // [{}, {}, {}];
t.deepEqual(prr, prray([{}, {}, {}]))
;(prr[0] as any).hi = 'hi'
t.deepEqual(prr, prray([{ hi: 'hi' }, { hi: 'hi' }, { hi: 'hi' }]))
})
test('prraypromise fill', async t => {
t.deepEqual(await toPrrayPromise([1, 2, 3]).fill(4), prray([4, 4, 4]))
t.deepEqual(await toPrrayPromise([1, 2, 3]).fill(4, 1), prray([1, 4, 4]))
t.deepEqual(await toPrrayPromise([1, 2, 3]).fill(4, 1, 2), prray([1, 4, 3]))
t.deepEqual(await toPrrayPromise([1, 2, 3]).fill(4, 1, 1), prray([1, 2, 3]))
t.deepEqual(await toPrrayPromise([1, 2, 3]).fill(4, 3, 3), prray([1, 2, 3]))
t.deepEqual(await toPrrayPromise([1, 2, 3]).fill(4, -3, -2), prray([4, 2, 3]))
t.deepEqual(await toPrrayPromise([1, 2, 3]).fill(4, NaN, NaN), prray([1, 2, 3]))
t.deepEqual(await toPrrayPromise([1, 2, 3]).fill(4, 3, 5), prray([1, 2, 3]))
t.deepEqual(await toPrrayPromise(new Array(3)).fill(4), prray([4, 4, 4]))
const prr = await toPrrayPromise(new Array(3)).fill({}) // [{}, {}, {}];
t.deepEqual(prr, prray([{}, {}, {}]))
;(prr[0] as any).hi = 'hi'
t.deepEqual(prr, prray([{ hi: 'hi' }, { hi: 'hi' }, { hi: 'hi' }]))
})