@testim/testim-cli
Version:
Command line interface for running Testing on you CI
69 lines (52 loc) • 2.38 kB
JavaScript
var q = require('q');
describe('selectorChaining', function() {
before(h.setup());
it('should find all .findme elements without any selector chaining', function() {
return this.client.getText('.findme').then(function(elements) {
elements.should.be.lengthOf(3);
});
});
it('should find only two .findme elements using selector chaining', function() {
return this.client.element('.nested').getText('.findme').then(function(elements) {
elements.should.be.lengthOf(2);
});
});
it('should find only one element using double selector chaining', function() {
return this.client.element('.nested').element('.moreNesting').getText('.findme').then(function(elements) {
elements.should.be.equal('MORE NESTED');
});
});
it('should loose selector restriction after calling another command', function() {
return this.client.element('.nested').element('.moreNesting').getText('.findme').getText('.findme').then(function(elements) {
elements.should.be.lengthOf(3);
});
});
it('should be possible to keep selector empty if element was used before', function() {
return this.client.element('.nested').element('.moreNesting').element('.findme').getText().then(function(elements) {
elements.should.be.equal('MORE NESTED');
});
});
it('should select cell using context of row', function() {
var client = this.client;
return this.client.elements('tr').then(function(rows) {
var foundRows = [];
rows.value.forEach(function(element) {
var td1 = client.elementIdElement(element.ELEMENT, 'td=2015-03-02');
var td2 = client.elementIdElement(element.ELEMENT, 'td=12:00');
var p = q.all([td1, td2])
.then(function() {
return true;
}).catch(function() {
return false;
});
foundRows.push(p);
});
return q.all(foundRows).then(function(rows) {
rows.should.be.an.instanceOf(Array);
rows.should.have.length(2);
rows.should.containEql(true);
rows.should.containEql(false);
});
});
});
});