add some basic tests for the structure of the API

This commit is contained in:
Ryan X. Charles 2014-04-15 12:53:06 -03:00
commit 01ca3763d8

49
test/test.API.js Normal file
View file

@ -0,0 +1,49 @@
'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');
}
}
});
});