qvc
Version:
Handle commands and queries from the client with validation
59 lines (51 loc) • 1.94 kB
JavaScript
var getConstraints = require('../src/getConstraints');
var assert = require("assert");
function MustBeSomething() {
this.constraint = function(){
return {};
};
}
function MustBeAnything() {
this.constraint = function(){
return {};
};
}
describe('getConstraints', function(){
describe('getting constraints of null', function(){
it('should return an empty array', function(){
var result = getConstraints(null).parameters;
assert(Array.isArray(result));
assert.equal(0, result.length);
});
});
describe('getting constraints of an empty object', function(){
it('should return an empty array', function(){
var result = getConstraints({}).parameters;
assert(Array.isArray(result));
assert.equal(0, result.length);
});
});
describe('getting constraints of an object with an object', function(){
it('should return an array with one object', function(){
var result = getConstraints({'name': new MustBeSomething}).parameters;
assert(Array.isArray(result));
assert.equal(1, result.length);
assert.equal('name', result[0].name);
assert(Array.isArray(result[0].constraints));
assert.equal(1, result[0].constraints.length);
assert.equal('MustBeSomething', result[0].constraints[0].name);
});
});
describe('getting constraints of an object with two objects', function(){
it('should return an array with one object', function(){
var result = getConstraints({'name': [new MustBeSomething, new MustBeAnything]}).parameters;
assert(Array.isArray(result));
assert.equal(1, result.length);
assert.equal('name', result[0].name);
assert(Array.isArray(result[0].constraints));
assert.equal(2, result[0].constraints.length);
assert.equal('MustBeSomething', result[0].constraints[0].name);
assert.equal('MustBeAnything', result[0].constraints[1].name);
});
});
});