MessagesForMacintosh/JS/node_modules/zen-observable/test/constructor.js

37 lines
1018 B
JavaScript

import assert from 'assert';
import { testMethodProperty } from './properties.js';
describe('constructor', () => {
it('throws if called as a function', () => {
assert.throws(() => Observable(() => {}));
assert.throws(() => Observable.call({}, () => {}));
});
it('throws if the argument is not callable', () => {
assert.throws(() => new Observable({}));
assert.throws(() => new Observable());
assert.throws(() => new Observable(1));
assert.throws(() => new Observable('string'));
});
it('accepts a function argument', () => {
let result = new Observable(() => {});
assert.ok(result instanceof Observable);
});
it('is the value of Observable.prototype.constructor', () => {
testMethodProperty(Observable.prototype, 'constructor', {
configurable: true,
writable: true,
length: 1,
});
});
it('does not call the subscriber function', () => {
let called = 0;
new Observable(() => { called++ });
assert.equal(called, 0);
});
});