clipboard.js/test/clipboard.js
2015-09-20 15:40:59 -07:00

71 lines
1.9 KiB
JavaScript

var assert = chai.assert;
describe('Clipboard', () => {
describe('#constructor', () => {
it('should throw an error since there was no arguments passed', done => {
try {
new Clipboard();
}
catch(e) {
done();
}
});
it('should throw an error since an empty selector has been passed', done => {
try {
new Clipboard('#abc');
}
catch(e) {
done();
}
});
it('should create a NodeList and store it in a property', () => {
let clipboard = new Clipboard('.btn');
return assert.instanceOf(clipboard.triggers, NodeList);
});
});
describe('#validate', () => {
var elem = document.createElement('input');
let clipboard = new Clipboard('.btn');
it('should throw an error since there was no "data-target" or "data-text"', (done) => {
try {
clipboard.validate({
currentTarget: elem
});
}
catch(e) {
done();
}
});
it('should throw an error since "data-action" is invalid', (done) => {
try {
elem.setAttribute('data-action', 'paste');
clipboard.validate({
currentTarget: elem
});
}
catch(e) {
done();
}
});
it('should throw an error since "data-target" do not match any element', (done) => {
try {
elem.setAttribute('data-target', 'xyz');
clipboard.validate({
currentTarget: elem
});
}
catch(e) {
done();
}
});
});
});