You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
944 B
29 lines
944 B
4 months ago
|
import assert from 'assert';
|
||
|
|
||
|
describe('species', () => {
|
||
|
it('uses Observable when constructor is undefined', () => {
|
||
|
let instance = new Observable(() => {});
|
||
|
instance.constructor = undefined;
|
||
|
assert.ok(instance.map(x => x) instanceof Observable);
|
||
|
});
|
||
|
|
||
|
it('uses Observable if species is null', () => {
|
||
|
let instance = new Observable(() => {});
|
||
|
instance.constructor = { [Symbol.species]: null };
|
||
|
assert.ok(instance.map(x => x) instanceof Observable);
|
||
|
});
|
||
|
|
||
|
it('uses Observable if species is undefined', () => {
|
||
|
let instance = new Observable(() => {});
|
||
|
instance.constructor = { [Symbol.species]: undefined };
|
||
|
assert.ok(instance.map(x => x) instanceof Observable);
|
||
|
});
|
||
|
|
||
|
it('uses value of Symbol.species', () => {
|
||
|
function ctor() {}
|
||
|
let instance = new Observable(() => {});
|
||
|
instance.constructor = { [Symbol.species]: ctor };
|
||
|
assert.ok(instance.map(x => x) instanceof ctor);
|
||
|
});
|
||
|
});
|