/* global describe:true, beforeEach:true, it:true */
|
|
var chan = require('..')
|
var expect = require('expect.js')
|
|
describe('A closed channel', function () {
|
|
it(
|
'should yield an error when attempting to add a value',
|
function () {
|
var ch = chan()
|
ch.close()
|
ch('foo')(function (err) {
|
expect(err).to.be.an(Error)
|
})
|
}
|
)
|
|
describe('that is has items in the buffer', function () {
|
|
it(
|
'should return `false` when the `done()` method is called',
|
function () {
|
var ch = chan(1)
|
ch('foo')
|
ch.close()
|
expect(ch.done()).to.be(false)
|
}
|
)
|
|
})
|
|
describe('that is empty', function () {
|
|
it(
|
'should invoke peding callbacks with empty value',
|
function () {
|
var ch = chan()
|
ch(function (err, value) {
|
expect(value).to.be(ch.empty)
|
})
|
ch.close()
|
}
|
)
|
|
it(
|
'should return `true` when the `done()` method is called',
|
function () {
|
var ch = chan()
|
ch.close()
|
expect(ch.done()).to.be(true)
|
}
|
)
|
|
it(
|
'should immediately invoke any callback added with the empty value',
|
function () {
|
var ch = chan()
|
ch.close()
|
ch(function (err, value) {
|
expect(value).to.be(ch.empty)
|
})
|
}
|
)
|
|
})
|
|
})
|