123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 'use strict';
- var
- stream,
- Stream = require('../lib/utils/stream'),
- QUnit = require('qunit');
- QUnit.module('Stream', {
- beforeEach: function() {
- stream = new Stream();
- stream.init();
- }
- });
- QUnit.test('trigger calls listeners', function(assert) {
- var args = [];
- stream.on('test', function(data) {
- args.push(data);
- });
- stream.trigger('test', 1);
- stream.trigger('test', 2);
- assert.deepEqual(args, [1, 2]);
- });
- QUnit.test('callbacks can remove themselves', function(assert) {
- var args1 = [], args2 = [], args3 = [];
- stream.on('test', function(event) {
- args1.push(event);
- });
- stream.on('test', function t(event) {
- args2.push(event);
- stream.off('test', t);
- });
- stream.on('test', function(event) {
- args3.push(event);
- });
- stream.trigger('test', 1);
- stream.trigger('test', 2);
- assert.deepEqual(args1, [1, 2], 'first callback ran all times');
- assert.deepEqual(args2, [1], 'second callback removed after first run');
- assert.deepEqual(args3, [1, 2], 'third callback ran all times');
- });
|