diff options
Diffstat (limited to 'test/angular-mocksSpec.js')
| -rw-r--r-- | test/angular-mocksSpec.js | 113 |
1 files changed, 83 insertions, 30 deletions
diff --git a/test/angular-mocksSpec.js b/test/angular-mocksSpec.js index 205461af..343be966 100644 --- a/test/angular-mocksSpec.js +++ b/test/angular-mocksSpec.js @@ -8,90 +8,90 @@ describe('mocks', function() { } it('should take millis as constructor argument', function() { - expect(new TzDate(0, 0).getTime()).toBe(0); - expect(new TzDate(0, 1283555108000).getTime()).toBe(1283555108000); + expect(new angular.mock.TzDate(0, 0).getTime()).toBe(0); + expect(new angular.mock.TzDate(0, 1283555108000).getTime()).toBe(1283555108000); }); it('should take dateString as constructor argument', function() { - expect(new TzDate(0, '1970-01-01T00:00:00.000Z').getTime()).toBe(0); - expect(new TzDate(0, '2010-09-03T23:05:08.023Z').getTime()).toBe(1283555108023); + expect(new angular.mock.TzDate(0, '1970-01-01T00:00:00.000Z').getTime()).toBe(0); + expect(new angular.mock.TzDate(0, '2010-09-03T23:05:08.023Z').getTime()).toBe(1283555108023); }); it('should fake getLocalDateString method', function() { //0 in -3h - var t0 = new TzDate(-3, 0); + var t0 = new angular.mock.TzDate(-3, 0); expect(t0.toLocaleDateString()).toMatch('1970'); //0 in +0h - var t1 = new TzDate(0, 0); + var t1 = new angular.mock.TzDate(0, 0); expect(t1.toLocaleDateString()).toMatch('1970'); //0 in +3h - var t2 = new TzDate(3, 0); + var t2 = new angular.mock.TzDate(3, 0); expect(t2.toLocaleDateString()).toMatch('1969'); }); it('should fake getHours method', function() { //0 in -3h - var t0 = new TzDate(-3, 0); + var t0 = new angular.mock.TzDate(-3, 0); expect(t0.getHours()).toBe(3); //0 in +0h - var t1 = new TzDate(0, 0); + var t1 = new angular.mock.TzDate(0, 0); expect(t1.getHours()).toBe(0); //0 in +3h - var t2 = new TzDate(3, 0); + var t2 = new angular.mock.TzDate(3, 0); expect(t2.getHours()).toMatch(21); }); it('should fake getMinutes method', function() { //0:15 in -3h - var t0 = new TzDate(-3, minutes(15)); + var t0 = new angular.mock.TzDate(-3, minutes(15)); expect(t0.getMinutes()).toBe(15); //0:15 in -3.25h - var t0a = new TzDate(-3.25, minutes(15)); + var t0a = new angular.mock.TzDate(-3.25, minutes(15)); expect(t0a.getMinutes()).toBe(30); //0 in +0h - var t1 = new TzDate(0, minutes(0)); + var t1 = new angular.mock.TzDate(0, minutes(0)); expect(t1.getMinutes()).toBe(0); //0:15 in +0h - var t1a = new TzDate(0, minutes(15)); + var t1a = new angular.mock.TzDate(0, minutes(15)); expect(t1a.getMinutes()).toBe(15); //0:15 in +3h - var t2 = new TzDate(3, minutes(15)); + var t2 = new angular.mock.TzDate(3, minutes(15)); expect(t2.getMinutes()).toMatch(15); //0:15 in +3.25h - var t2a = new TzDate(3.25, minutes(15)); + var t2a = new angular.mock.TzDate(3.25, minutes(15)); expect(t2a.getMinutes()).toMatch(0); }); it('should fake getSeconds method', function() { //0 in -3h - var t0 = new TzDate(-3, 0); + var t0 = new angular.mock.TzDate(-3, 0); expect(t0.getSeconds()).toBe(0); //0 in +0h - var t1 = new TzDate(0, 0); + var t1 = new angular.mock.TzDate(0, 0); expect(t1.getSeconds()).toBe(0); //0 in +3h - var t2 = new TzDate(3, 0); + var t2 = new angular.mock.TzDate(3, 0); expect(t2.getSeconds()).toMatch(0); }); it('should create a date representing new year in Bratislava', function() { - var newYearInBratislava = new TzDate(-1, '2009-12-31T23:00:00.000Z'); + var newYearInBratislava = new angular.mock.TzDate(-1, '2009-12-31T23:00:00.000Z'); expect(newYearInBratislava.getTimezoneOffset()).toBe(-60); expect(newYearInBratislava.getFullYear()).toBe(2010); expect(newYearInBratislava.getMonth()).toBe(0); @@ -103,7 +103,7 @@ describe('mocks', function() { it('should delegate all the UTC methods to the original UTC Date object', function() { //from when created from string - var date1 = new TzDate(-1, '2009-12-31T23:00:00.000Z'); + var date1 = new angular.mock.TzDate(-1, '2009-12-31T23:00:00.000Z'); expect(date1.getUTCFullYear()).toBe(2009); expect(date1.getUTCMonth()).toBe(11); expect(date1.getUTCDate()).toBe(31); @@ -113,7 +113,7 @@ describe('mocks', function() { //from when created from millis - var date2 = new TzDate(-1, angular.String.toDate('2009-12-31T23:00:00.000Z').getTime()); + var date2 = new angular.mock.TzDate(-1, angular.String.toDate('2009-12-31T23:00:00.000Z').getTime()); expect(date2.getUTCFullYear()).toBe(2009); expect(date2.getUTCMonth()).toBe(11); expect(date2.getUTCDate()).toBe(31); @@ -124,16 +124,20 @@ describe('mocks', function() { it('should throw error when no third param but toString called', function() { - expect(function() { new TzDate(0,0).toString(); }). + expect(function() { new angular.mock.TzDate(0,0).toString(); }). toThrow('Method \'toString\' is not implemented in the TzDate mock'); }); }); - describe('$log mock', function() { + describe('$log', function() { var $log; - beforeEach(function() { - $log = MockLogFactory(); - }); + beforeEach(inject(['$log', function(log) { + $log = log; + }])); + + afterEach(inject(function($log){ + $log.reset(); + })); it('should provide log method', function() { expect(function() { $log.log(''); }).not.toThrow(); @@ -170,14 +174,48 @@ describe('mocks', function() { $log.error('fake log'); expect($log.error.logs).toContain(['fake log']); }); + + it('should assertEmpty', function(){ + try { + $log.error(Error('MyError')); + $log.warn(Error('MyWarn')); + $log.info(Error('MyInfo')); + $log.log(Error('MyLog')); + $log.assertEmpty(); + } catch (error) { + error = error.message || error; + expect(error).toMatch(/Error: MyError/m); + expect(error).toMatch(/Error: MyWarn/m); + expect(error).toMatch(/Error: MyInfo/m); + expect(error).toMatch(/Error: MyLog/m); + } finally { + $log.reset(); + } + }); + + it('should reset state', function(){ + $log.error(Error('MyError')); + $log.warn(Error('MyWarn')); + $log.info(Error('MyInfo')); + $log.log(Error('MyLog')); + $log.reset(); + var passed = false; + try { + $log.assertEmpty(); // should not throw error! + passed = true; + } catch (e) { + passed = e; + } + expect(passed).toBe(true); + }); }); describe('defer', function() { var browser, log; - beforeEach(function() { - browser = new MockBrowser(); + beforeEach(inject(function($browser) { + browser = $browser; log = ''; - }); + })); function logFn(text){ return function() { log += text +';'; @@ -229,5 +267,20 @@ describe('mocks', function() { it('should rethrow exceptions', inject(function($exceptionHandler) { expect(function() { $exceptionHandler('myException'); }).toThrow('myException'); })); + + + it('should log exceptions', inject(function($exceptionHandlerProvider){ + $exceptionHandlerProvider.mode('log'); + var $exceptionHandler = $exceptionHandlerProvider.$get(); + $exceptionHandler('MyError'); + expect($exceptionHandler.errors).toEqual(['MyError']); + })); + + + it('should thorw on wrong argument', inject(function($exceptionHandlerProvider) { + expect(function() { + $exceptionHandlerProvider.mode('XXX'); + }).toThrow("Unknown mode 'XXX', only 'log'/'rethrow' modes are allowed!"); + })); }); }); |
