species.js 944 B

12345678910111213141516171819202122232425262728
  1. import assert from 'assert';
  2. describe('species', () => {
  3. it('uses Observable when constructor is undefined', () => {
  4. let instance = new Observable(() => {});
  5. instance.constructor = undefined;
  6. assert.ok(instance.map(x => x) instanceof Observable);
  7. });
  8. it('uses Observable if species is null', () => {
  9. let instance = new Observable(() => {});
  10. instance.constructor = { [Symbol.species]: null };
  11. assert.ok(instance.map(x => x) instanceof Observable);
  12. });
  13. it('uses Observable if species is undefined', () => {
  14. let instance = new Observable(() => {});
  15. instance.constructor = { [Symbol.species]: undefined };
  16. assert.ok(instance.map(x => x) instanceof Observable);
  17. });
  18. it('uses value of Symbol.species', () => {
  19. function ctor() {}
  20. let instance = new Observable(() => {});
  21. instance.constructor = { [Symbol.species]: ctor };
  22. assert.ok(instance.map(x => x) instanceof ctor);
  23. });
  24. });