You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.8 KiB
57 lines
1.8 KiB
#!/usr/bin/env mocha -R spec |
|
|
|
var assert = require("assert"); |
|
var EventLite = require("../event-lite"); |
|
var TITLE = __filename.replace(/^.*\//, ""); |
|
|
|
events_test(); |
|
|
|
function events_test() { |
|
describe(TITLE, function() { |
|
|
|
it("on() adds listeners property", function(done) { |
|
var event = EventLite(); |
|
event.on("foo"); |
|
assert.ok(event.listeners instanceof Object, "listeners property should be an Object"); |
|
assert.ok(event.listeners.foo instanceof Array, "listeners.foo property should be an Array"); |
|
done(); |
|
}); |
|
|
|
it("emit() should NOT add listeners property", function(done) { |
|
var event = EventLite(); |
|
event.emit("foo"); |
|
assert.equal(event.listeners, null, "listeners property should NOT exist"); |
|
done(); |
|
}); |
|
|
|
it("off() should removes listeners property", function(done) { |
|
var event = EventLite(); |
|
event.on("foo", NOP); |
|
event.off("foo", NOP); |
|
assert.equal(event.listeners, null, "listeners property should be removed"); |
|
done(); |
|
}); |
|
|
|
it("off() should treat \"\" as a valid event name", function(done) { |
|
var event = EventLite(); |
|
event.on("", NOP); |
|
event.on("foo", NOP); |
|
event.off(""); |
|
assert.ok(event.listeners instanceof Object, "listeners property should be an Object"); |
|
assert.ok(event.listeners[""] === undefined, "the \"\" event should be removed"); |
|
assert.ok(event.listeners.foo.length === 1, "the \"foo\" event should have one listener"); |
|
done(); |
|
}); |
|
|
|
it("off() should remove listeners that were added by once()", function(done) { |
|
var event = EventLite(); |
|
event.once("foo", NOP); |
|
event.off("foo", NOP); |
|
assert.equal(event.listeners, null, "listeners property should be removed"); |
|
done(); |
|
}); |
|
}); |
|
} |
|
|
|
function NOP() { |
|
}
|
|
|