page-chauffeur
Version:
A cross browser library for writing functional tests using webdriver
53 lines (47 loc) • 1.83 kB
JavaScript
var Module = require('../../lib/module.js'),
sinon = require('sinon'),
sinonChai = require('sinon-chai'),
chai = require('chai'),
expect = chai.expect,
unroll = require('unroll');
chai.use(sinonChai);
describe('Module', function () {
it('should instantiate correctly and return an object instance', function() {
var mod = new Module();
expect(mod).to.be.an('object');
expect(mod.baseSelector).to.equal(null);
expect(mod.baseNode).to.equal(null);
expect(mod.required).to.equal(false);
expect(mod.element).to.equal(null);
expect(mod.initialiseContent).to.be.a('function');
});
unroll('init should set property #property correctly from config for expectation #propertyExpectation',
function(done, testArgs) {
var mod = new Module(),
config = {
parentSelector: ''
};
config[testArgs.configProperty] = testArgs.value;
mod.init({}, config);
expect(mod[testArgs.property]).to.equal(testArgs.propertyExpectation);
done();
},
[
['configProperty', 'value' , 'property' , 'propertyExpectation' ],
['selector' , 'selector' , 'baseSelector' , 'selector' ],
['selector' , '' , 'baseSelector' , 'null' ],
['required' , false , 'required' , false ],
['required' , true , 'required' , true ],
['element' , 'aSelector' , 'baseNode' , 'aSelector' ]
]
);
describe('count()', function () {
it('should return correctly', function () {
var mod = new Module();
mod.childSelectorIndex = 1;
mod.elements = sinon.spy();
mod.count(2);
expect(mod.elements).to.have.been.calledWithExactly(2);
});
});
});