Initial Save
This commit is contained in:
70
node_modules/zen-observable/test/for-each.js
generated
vendored
Normal file
70
node_modules/zen-observable/test/for-each.js
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
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]);
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user