aboutsummaryrefslogtreecommitdiffstats
path: root/test/widgetsSpec.js
diff options
context:
space:
mode:
authorIgor Minar2011-01-25 20:44:44 -0800
committerIgor Minar2011-01-26 15:46:05 -0800
commitf5d08963b0c836b10133a94d03a81254242661eb (patch)
tree14c525d0aa22193e5b1a1f8aa791b96608dc83b2 /test/widgetsSpec.js
parent7a48ee6aa949e8d4338033de8a0c6a079ceb17a3 (diff)
downloadangular.js-f5d08963b0c836b10133a94d03a81254242661eb.tar.bz2
split mocks and create $log and $exceptionHandler mocks
- split mocks between angular-mocks.js and mocks.js - src/angular-mocks.js now contains only mocks that we want to ship - test/mocks.js contains mocks that we use internally for testing angular - created angular.mock namespace - created public $exceptionHandler mock rethrows errors - created public $log mock stores all logs messages in an array that can be accessed to make assertions - internally we now have factory to create $exceptionHandler that we can assert on - internally we also keep track of all messages logged and fail tests if messages were not expected and cleaned up (checked via global beforeEach and afterEach) - updated RakeFile and docs reader.js to point to the new angular-mocks.js location - made real $exceptionHandler and $log factories accessible from tests and simplified their specs - fixed typos in several spec descriptions - added log assertions throughout the test suite
Diffstat (limited to 'test/widgetsSpec.js')
-rw-r--r--test/widgetsSpec.js17
1 files changed, 13 insertions, 4 deletions
diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js
index 2812614f..ee339e89 100644
--- a/test/widgetsSpec.js
+++ b/test/widgetsSpec.js
@@ -546,12 +546,16 @@ describe("widget", function(){
it('should report error on assignment error', function(){
compile('<input type="text" name="throw \'\'" value="x"/>');
expect(element.hasClass('ng-exception')).toBeTruthy();
+ expect(scope.$service('$log').error.logs.shift()[0]).
+ toMatchError(/Parse Error: Token '''' is extra token not part of expression/);
});
it('should report error on ng:change exception', function(){
compile('<button ng:change="a-2=x">click</button>');
browserTrigger(element);
expect(element.hasClass('ng-exception')).toBeTruthy();
+ expect(scope.$service('$log').error.logs.shift()[0]).
+ toMatchError(/Parse Error: Token '=' implies assignment but \[a-2\] can not be assigned to/);
});
});
@@ -750,10 +754,15 @@ describe("widget", function(){
it('should error on wrong parsing of ng:repeat', function(){
var scope = compile('<ul><li ng:repeat="i dont parse"></li></ul>');
- var log = "";
- log += element.attr('ng-exception') + ';';
- log += element.hasClass('ng-exception') + ';';
- expect(log).toMatch(/Expected ng:repeat in form of 'item in collection' but got 'i dont parse'./);
+
+ expect(scope.$service('$log').error.logs.shift()[0]).
+ toEqualError("Expected ng:repeat in form of 'item in collection' but got 'i dont parse'.");
+
+ expect(scope.$element.attr('ng-exception')).
+ toMatch(/Expected ng:repeat in form of 'item in collection' but got 'i dont parse'/);
+ expect(scope.$element).toHaveClass('ng-exception');
+
+ dealoc(scope);
});
it('should expose iterator offset as $index when iterating over arrays', function() {