prray
Version:
'Promisified' Array, comes with async method supports(such as mapAsync). And it is compatible with normal array.
109 lines (92 loc) • 4.29 kB
text/typescript
import test from 'ava'
import 'source-map-support/register'
import { prray } from '../src/prray'
import { toPrrayPromise } from './test-utils'
test('prray splice 1', async t => {
const prr = prray(['angel', 'clown', 'mandarin', 'sturgeon'])
t.deepEqual(prr.splice(2, 0, 'drum'), prray([]))
t.deepEqual(prr, prray(['angel', 'clown', 'drum', 'mandarin', 'sturgeon']))
})
test('prray splice 2', async t => {
const prr = prray(['angel', 'clown', 'mandarin', 'sturgeon'])
t.deepEqual(prr.splice(2, 0, 'drum', 'guitar'), prray([]))
t.deepEqual(prr, prray(['angel', 'clown', 'drum', 'guitar', 'mandarin', 'sturgeon']))
})
test('prray splice 3', async t => {
const prr = prray(['angel', 'clown', 'drum', 'mandarin', 'sturgeon'])
t.deepEqual(prr.splice(3, 1), prray(['mandarin']))
t.deepEqual(prr, prray(['angel', 'clown', 'drum', 'sturgeon']))
})
test('prray splice 4', async t => {
const prr = prray(['angel', 'clown', 'drum', 'sturgeon'])
t.deepEqual(prr.splice(2, 1, 'trumpet'), prray(['drum']))
t.deepEqual(prr, prray(['angel', 'clown', 'trumpet', 'sturgeon']))
})
test('prray splice 5', async t => {
const prr = prray(['angel', 'clown', 'trumpet', 'sturgeon'])
t.deepEqual(prr.splice(0, 2, 'parrot', 'anemone', 'blue'), prray(['angel', 'clown']))
t.deepEqual(prr, prray(['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon']))
})
test('prray splice 6', async t => {
const prr = prray(['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'])
t.deepEqual(prr.splice(prr.length - 3, 2), prray(['blue', 'trumpet']))
t.deepEqual(prr, prray(['parrot', 'anemone', 'sturgeon']))
})
test('prray splice 7', async t => {
const prr = prray(['angel', 'clown', 'mandarin', 'sturgeon'])
t.deepEqual(prr.splice(-2, 1), prray(['mandarin']))
t.deepEqual(prr, prray(['angel', 'clown', 'sturgeon']))
})
test('prray splice 8', async t => {
const prr = prray(['angel', 'clown', 'mandarin', 'sturgeon'])
t.deepEqual(prr.splice(2), prray(['mandarin', 'sturgeon']))
t.deepEqual(prr, prray(['angel', 'clown']))
})
test('prraypromise splice 1', async t => {
const prr = prray(['angel', 'clown', 'mandarin', 'sturgeon'])
const pp = toPrrayPromise(prr)
t.deepEqual(await pp.splice(2, 0, 'drum'), prray([]))
t.deepEqual(prr, prray(['angel', 'clown', 'drum', 'mandarin', 'sturgeon']))
})
test('prraypromise splice 2', async t => {
const prr = prray(['angel', 'clown', 'mandarin', 'sturgeon'])
const pp = toPrrayPromise(prr)
t.deepEqual(await pp.splice(2, 0, 'drum', 'guitar'), prray([]))
t.deepEqual(prr, prray(['angel', 'clown', 'drum', 'guitar', 'mandarin', 'sturgeon']))
})
test('prraypromise splice 3', async t => {
const prr = prray(['angel', 'clown', 'drum', 'mandarin', 'sturgeon'])
const pp = toPrrayPromise(prr)
t.deepEqual(await pp.splice(3, 1), prray(['mandarin']))
t.deepEqual(prr, prray(['angel', 'clown', 'drum', 'sturgeon']))
})
test('prraypromise splice 4', async t => {
const prr = prray(['angel', 'clown', 'drum', 'sturgeon'])
const pp = toPrrayPromise(prr)
t.deepEqual(await pp.splice(2, 1, 'trumpet'), prray(['drum']))
t.deepEqual(prr, prray(['angel', 'clown', 'trumpet', 'sturgeon']))
})
test('prraypromise splice 5', async t => {
const prr = prray(['angel', 'clown', 'trumpet', 'sturgeon'])
const pp = toPrrayPromise(prr)
t.deepEqual(await pp.splice(0, 2, 'parrot', 'anemone', 'blue'), prray(['angel', 'clown']))
t.deepEqual(prr, prray(['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon']))
})
test('prraypromise splice 6', async t => {
const prr = prray(['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'])
const pp = toPrrayPromise(prr)
t.deepEqual(await pp.splice(prr.length - 3, 2), prray(['blue', 'trumpet']))
t.deepEqual(prr, prray(['parrot', 'anemone', 'sturgeon']))
})
test('prraypromise splice 7', async t => {
const prr = prray(['angel', 'clown', 'mandarin', 'sturgeon'])
const pp = toPrrayPromise(prr)
t.deepEqual(await pp.splice(-2, 1), prray(['mandarin']))
t.deepEqual(prr, prray(['angel', 'clown', 'sturgeon']))
})
test('prraypromise splice 8', async t => {
const prr = prray(['angel', 'clown', 'mandarin', 'sturgeon'])
const pp = toPrrayPromise(prr)
t.deepEqual(await pp.splice(2), prray(['mandarin', 'sturgeon']))
t.deepEqual(prr, prray(['angel', 'clown']))
})