add repeater DSL and fix typo

This commit is contained in:
Andres Ornelas 2010-06-09 12:35:40 -07:00
parent cb5d211927
commit fe03ea0d1f
3 changed files with 29 additions and 14 deletions

View file

@ -44,17 +44,20 @@ angular.scenario.dsl.input = function(selector) {
};
};
angular.scenario.dsl.expect = function(selector) {
return {
toEqual: function(expected) {
$scenario.addStep("Expect that " + selector + " equals '" + expected + "'", function(done){
var attrName = selector.substring(2, selector.length - 2);
var binding = this.testDocument.find('span[ng-bind=' + attrName + ']');
if (binding.text() != expected) {
this.result.fail("Expected '" + expected + "' but was '" + binding.text() + "'");
angular.scenario.dsl.expect = {
repeater: function(selector) {
return {
count: {
toEqual: function(number) {
$scenario.addStep("Expect to see " + number + " items repeated with selector '" + selector + "'", function(done) {
var items = this.testDocument.find(selector);
if (items.length != number) {
this.result.fail("Expected " + number + " but was " + items.length);
}
done();
});
}
done();
});
}
};
}
};
}
};

View file

@ -40,4 +40,16 @@ describe("DSL", function() {
expect(lastDocument.find(':radio:checked').val()).toEqual('female');
});
});
});
describe('expect', function() {
var dslExpect = angular.scenario.dsl.expect;
describe('repeater', function() {
it('should check the count of repeated elements', function() {
dslExpect.repeater('.repeater-row').count.toEqual(2);
expect(lastStep.name).toEqual("Expect to see 2 items repeated with selector '.repeater-row'");
var html = "<div class='repeater-row'>a</div><div class='repeater-row'>b</div>";
executeStep(lastStep, html);
});
});
});
});

View file

@ -36,7 +36,7 @@ describe('Runner', function(){
expect(spec.name).toEqual('describe name: it should text');
});
it('should camplain on duplicate it', angular.noop);
it('should complain on duplicate it', angular.noop);
it('should create a failing step if there is a javascript error', function(){
var spec;
Describe('D1', function(){