49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
var chai = chai || require('chai');
|
|
var should = chai.should();
|
|
var API = API || require('../API');
|
|
|
|
describe('API', function() {
|
|
|
|
it('should have a command called "echo"', function() {
|
|
var api = new API();
|
|
should.exist(api.echo);
|
|
});
|
|
|
|
it('should have argTypes for every command', function() {
|
|
for (var i in API.prototype) {
|
|
var f = API.prototype[i];
|
|
if (i[0] != '_' && typeof f == 'function') {
|
|
f.argTypes.length.should.be.greaterThan(0);
|
|
}
|
|
};
|
|
})
|
|
|
|
it('should throw an error for all commands when called with wrong number of arguments', function() {
|
|
var api = new API();
|
|
for (var i in API.prototype) {
|
|
var f = API.prototype[i];
|
|
if (i[0] != '_' && typeof f == 'function') {
|
|
var a = new Array();
|
|
for (var j = 0; j <= f.argTypes.length + 1; j++) {
|
|
a.push(0);
|
|
}
|
|
(function() {
|
|
api[i].apply(api, a);
|
|
}).should.throw();
|
|
}
|
|
};
|
|
});
|
|
|
|
it('should have a callback in the arguments on every command', function() {
|
|
for (var i in API.prototype) {
|
|
var f = API.prototype[i];
|
|
if (i[0] != '_' && typeof f == 'function') {
|
|
f.argTypes[f.argTypes.length-1][0].should.equal('callback');
|
|
f.argTypes[f.argTypes.length-1][1].should.equal('function');
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|