![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/lavocat.quebec/private_html/node_modules/zen-observable/test/ |
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]);
});
});