Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
canvas
/
node_modules
/
zen-observable
/
test
/
Filename :
for-each.js
back
Copy
import assert from 'assert'; describe('forEach', () => { it('rejects if the argument is not a function', async () => { let promise = Observable.of(1, 2, 3).forEach(); try { await promise; assert.ok(false); } catch (err) { assert.equal(err.name, 'TypeError'); } }); it('rejects if the callback throws', async () => { let error = {}; try { await Observable.of(1, 2, 3).forEach(x => { throw error }); assert.ok(false); } catch (err) { assert.equal(err, error); } }); it('does not execute callback after callback throws', async () => { let calls = []; try { await Observable.of(1, 2, 3).forEach(x => { calls.push(x); throw {}; }); assert.ok(false); } catch (err) { assert.deepEqual(calls, [1]); } }); it('rejects if the producer calls error', async () => { let error = {}; try { let observer; let promise = new Observable(x => { observer = x }).forEach(() => {}); observer.error(error); await promise; assert.ok(false); } catch (err) { assert.equal(err, error); } }); it('resolves with undefined if the producer calls complete', async () => { let observer; let promise = new Observable(x => { observer = x }).forEach(() => {}); observer.complete(); assert.equal(await promise, undefined); }); it('provides a cancellation function as the second argument', async () => { let observer; let results = []; await Observable.of(1, 2, 3).forEach((value, cancel) => { results.push(value); if (value > 1) { return cancel(); } }); assert.deepEqual(results, [1, 2]); }); });