UNPKG

mini-signals

Version:
50 lines (49 loc) 1.71 kB
"use strict"; /* jshint -W040 */ /* global it, describe, beforeEach */ Object.defineProperty(exports, "__esModule", { value: true }); const _1 = require("."); const chai_1 = require("chai"); describe('MiniSignal', () => { describe('CommonJS', () => { let e; let context; beforeEach(() => { e = new _1.MiniSignal(); context = { bar: 'baz' }; }); it('should expose MiniSignal and MiniSignalBinding', () => { (0, chai_1.expect)(_1.MiniSignal).to.be.a('function'); (0, chai_1.expect)(_1.MiniSignalBinding).to.be.a('function'); }); it('emits with context', () => { e.add(function (bar) { (0, chai_1.expect)(bar).equals('bar'); (0, chai_1.expect)(this).equals(context); (0, chai_1.expect)(arguments).has.length(1); }, context); e.dispatch('bar'); }); }); it('quick test', () => { const pattern = []; const e = new _1.MiniSignal(); const foo = e.add(writer, 'foo'); e.add(writer, 'baz'); const bar = e.add(writer, 'bar'); (0, chai_1.expect)(e instanceof _1.MiniSignal); (0, chai_1.expect)(foo instanceof _1.MiniSignalBinding); e.dispatch('banana'); e.dispatch('apple'); foo.detach(); bar.detach(); e.dispatch('pear'); e.detachAll(); e.dispatch('raspberry'); (0, chai_1.expect)(pattern.join(';') === 'foo:banana;baz:banana;bar:banana;foo:apple;baz:apple;bar:apple;baz:pear'); function writer(a) { pattern.push(String(this) + ':' + a); } }); });