react / react-0.13.3 / examples / basic-commonjs / node_modules / browserify / node_modules / domain-browser / test.js
80708 views// Import1var events = require('events')2var expect = require('chai').expect3var joe = require('joe')4var domain = require('./')56// =====================================7// Tests89joe.describe('domain-browser', function(describe,it){10it('should work on throws', function(done){11var d = domain.create()12d.on('error', function(err){13expect(err && err.message).to.eql('a thrown error')14done()15})16d.run(function(){17throw new Error('a thrown error')18})19})2021it('should be able to add emitters', function(done){22var d = domain.create()23var emitter = new events.EventEmitter()2425d.add(emitter)26d.on('error', function (err) {27expect(err && err.message).to.eql('an emitted error')28done()29})3031emitter.emit('error', new Error('an emitted error'))32})3334it('should be able to remove emitters', function (done){35var emitter = new events.EventEmitter()36var d = domain.create()3738d.add(emitter)39var domainGotError = false40d.on('error', function (err) {41domainGotError = true42})4344emitter.on('error', function (err) {45expect(err && err.message).to.eql('This error should not go to the domain')4647// Make sure nothing race condition-y is happening48setTimeout(function () {49expect(domainGotError).to.eql(false)50done()51}, 0)52})5354d.remove(emitter)55emitter.emit('error', new Error('This error should not go to the domain'))56})5758it('bind should work', function(done){59var d = domain.create()60d.on('error', function(err){61expect(err && err.message).to.eql('a thrown error')62done()63})64d.bind(function(err, a, b){65expect(err && err.message).to.equal('a passed error')66expect(a).to.equal(2)67expect(b).to.equal(3)68throw new Error('a thrown error')69})(new Error('a passed error'), 2, 3)70})7172it('intercept should work', function(done){73var d = domain.create()74var count = 075d.on('error', function(err){76if ( count === 0 ) {77expect(err && err.message).to.eql('a thrown error')78} else if ( count === 1 ) {79expect(err && err.message).to.eql('a passed error')80done()81}82count++83})8485d.intercept(function(a, b){86expect(a).to.equal(2)87expect(b).to.equal(3)88throw new Error('a thrown error')89})(null, 2, 3)9091d.intercept(function(a, b){92throw new Error('should never reach here')93})(new Error('a passed error'), 2, 3)94})9596})9798