diff options
| author | Elliott Sprehn | 2010-10-27 17:56:44 -0700 |
|---|---|---|
| committer | Elliott Sprehn | 2010-10-27 17:56:44 -0700 |
| commit | 92e31b556fcaeea7e7078c63729287dbdfcf09ff (patch) | |
| tree | 86ba209b7abed2ca65ac7955e031ee447298fa90 | |
| parent | 62c0e5c46091d8b98a20c31ab26e715bad574bae (diff) | |
| download | angular.js-92e31b556fcaeea7e7078c63729287dbdfcf09ff.tar.bz2 | |
Correctly fail tests if no binding matches and add better test cases for failure behavior.
| -rw-r--r-- | src/scenario/dsl.js | 8 | ||||
| -rw-r--r-- | test/scenario/dslSpec.js | 14 |
2 files changed, 17 insertions, 5 deletions
diff --git a/src/scenario/dsl.js b/src/scenario/dsl.js index 47ec68c8..bf0c990c 100644 --- a/src/scenario/dsl.js +++ b/src/scenario/dsl.js @@ -87,20 +87,20 @@ angular.scenario.dsl('using', function() { */ angular.scenario.dsl('binding', function() { function contains(text, value) { - return text && text.indexOf(value) >=0; + return text && text.indexOf(value) >= 0; } return function(name) { return this.addFutureAction("select binding '" + name + "'", function($window, $document, done) { var elements = $document.elements('.ng-binding'); for ( var i = 0; i < elements.length; i++) { var element = new elements.init(elements[i]); - if (contains(element.attr('ng:bind'), name) >= 0 || - contains(element.attr('ng:bind-template'), name) >= 0) { + if (contains(element.attr('ng:bind'), name) || + contains(element.attr('ng:bind-template'), name)) { done(null, element.text()); return; } } - throw "Could not find binding: " + name; + done('Binding selector ' + name + ' did not match.'); }); }; }); diff --git a/test/scenario/dslSpec.js b/test/scenario/dslSpec.js index 3d68925f..d21c1bb9 100644 --- a/test/scenario/dslSpec.js +++ b/test/scenario/dslSpec.js @@ -271,7 +271,19 @@ describe("angular.scenario.dsl", function() { expect($root.futureResult).toEqual('foo some baz'); }); - it('should return error if no binding exists', function() { + it('should match bindings by substring match', function() { + doc.append('<pre class="ng-binding" ng:bind="foo.bar() && test.baz() | filter">binding value</pre>'); + $root.dsl.binding('test.baz'); + expect($root.futureResult).toEqual('binding value'); + }); + + it('should return error if no bindings in document', function() { + $root.dsl.binding('foo.bar'); + expect($root.futureError).toMatch(/did not match/); + }); + + it('should return error if no binding matches', function() { + doc.append('<span class="ng-binding" ng:bind="foo">some value</span>'); $root.dsl.binding('foo.bar'); expect($root.futureError).toMatch(/did not match/); }); |
