good-listener
Version:
A more versatile way of adding & removing event listeners
112 lines (101 loc) • 4.26 kB
JavaScript
var is = require('../src/is');
describe('is', function() {
before(function() {
global.node = document.createElement('div');
global.node.setAttribute('id', 'foo');
global.node.setAttribute('class', 'foo');
document.body.appendChild(global.node);
});
after(function() {
document.body.innerHTML = '';
});
describe('is.node', function() {
it('should be considered as node', function() {
assert.ok(is.node(document.getElementById('foo')));
assert.ok(is.node(document.getElementsByTagName('div')[0]));
assert.ok(is.node(document.getElementsByClassName('foo')[0]));
assert.ok(is.node(document.querySelector('.foo')));
});
it('should not be considered as node', function() {
assert.notOk(is.node(undefined));
assert.notOk(is.node(null));
assert.notOk(is.node(false));
assert.notOk(is.node(true));
assert.notOk(is.node(function () {}));
assert.notOk(is.node([]));
assert.notOk(is.node({}));
assert.notOk(is.node(/a/g));
assert.notOk(is.node(new RegExp('a', 'g')));
assert.notOk(is.node(new Date()));
assert.notOk(is.node(42));
assert.notOk(is.node(NaN));
assert.notOk(is.node(Infinity));
assert.notOk(is.node(new Number(42)));
});
});
describe('is.nodeList', function() {
it('should be considered as nodeList', function() {
assert.ok(is.nodeList(document.getElementsByTagName('div')));
assert.ok(is.nodeList(document.getElementsByClassName('foo')));
assert.ok(is.nodeList(document.querySelectorAll('.foo')));
});
it('should not be considered as nodeList', function() {
assert.notOk(is.nodeList(undefined));
assert.notOk(is.nodeList(null));
assert.notOk(is.nodeList(false));
assert.notOk(is.nodeList(true));
assert.notOk(is.nodeList(function () {}));
assert.notOk(is.nodeList([]));
assert.notOk(is.nodeList({}));
assert.notOk(is.nodeList(/a/g));
assert.notOk(is.nodeList(new RegExp('a', 'g')));
assert.notOk(is.nodeList(new Date()));
assert.notOk(is.nodeList(42));
assert.notOk(is.nodeList(NaN));
assert.notOk(is.nodeList(Infinity));
assert.notOk(is.nodeList(new Number(42)));
});
});
describe('is.string', function() {
it('should be considered as string', function() {
assert.ok(is.string('abc'));
assert.ok(is.string(new String('abc')));
});
it('should not be considered as string', function() {
assert.notOk(is.string(undefined));
assert.notOk(is.string(null));
assert.notOk(is.string(false));
assert.notOk(is.string(true));
assert.notOk(is.string(function () {}));
assert.notOk(is.string([]));
assert.notOk(is.string({}));
assert.notOk(is.string(/a/g));
assert.notOk(is.string(new RegExp('a', 'g')));
assert.notOk(is.string(new Date()));
assert.notOk(is.string(42));
assert.notOk(is.string(NaN));
assert.notOk(is.string(Infinity));
assert.notOk(is.string(new Number(42)));
});
});
describe('is.fn', function() {
it('should be considered as function', function() {
assert.ok(is.fn(function () {}));
});
it('should not be considered as function', function() {
assert.notOk(is.fn(undefined));
assert.notOk(is.fn(null));
assert.notOk(is.fn(false));
assert.notOk(is.fn(true));
assert.notOk(is.fn([]));
assert.notOk(is.fn({}));
assert.notOk(is.fn(/a/g));
assert.notOk(is.fn(new RegExp('a', 'g')));
assert.notOk(is.fn(new Date()));
assert.notOk(is.fn(42));
assert.notOk(is.fn(NaN));
assert.notOk(is.fn(Infinity));
assert.notOk(is.fn(new Number(42)));
});
});
});