diff options
Diffstat (limited to 'test/scenario/SpecRunnerSpec.js')
| -rw-r--r-- | test/scenario/SpecRunnerSpec.js | 123 |
1 files changed, 47 insertions, 76 deletions
diff --git a/test/scenario/SpecRunnerSpec.js b/test/scenario/SpecRunnerSpec.js index 921d6853..7947a3ca 100644 --- a/test/scenario/SpecRunnerSpec.js +++ b/test/scenario/SpecRunnerSpec.js @@ -1,40 +1,4 @@ /** - * Mock of all required UI classes/methods. (UI, Spec, Step). - */ -function UIMock() { - this.log = []; -} -UIMock.prototype = { - addSpec: function(spec) { - var log = this.log; - log.push('addSpec:' + spec.name); - return { - addStep: function(name) { - log.push('addStep:' + name); - return { - finish: function(e) { - log.push('step finish:' + (e ? e : '')); - return this; - }, - error: function(e) { - log.push('step error:' + (e ? e : '')); - return this; - } - }; - }, - finish: function(e) { - log.push('spec finish:' + (e ? e : '')); - return this; - }, - error: function(e) { - log.push('spec error:' + (e ? e : '')); - return this; - } - }; - } -}; - -/** * Mock Application */ function ApplicationMock($window) { @@ -47,7 +11,7 @@ ApplicationMock.prototype = { }; describe('angular.scenario.SpecRunner', function() { - var $window; + var $window, $root, log; var runner; function createSpec(name, body) { @@ -60,14 +24,22 @@ describe('angular.scenario.SpecRunner', function() { } beforeEach(function() { + log = []; $window = {}; $window.setTimeout = function(fn, timeout) { fn(); }; - runner = angular.scope(); - runner.application = new ApplicationMock($window); - runner.$window = $window; - runner.$become(angular.scenario.SpecRunner); + $root = angular.scope({ + emit: function(eventName) { + log.push(eventName); + }, + on: function(eventName) { + log.push('Listener Added for ' + eventName); + } + }); + $root.application = new ApplicationMock($window); + $root.$window = $window; + runner = $root.$new(angular.scenario.SpecRunner); }); it('should bind futures to the spec', function() { @@ -92,84 +64,82 @@ describe('angular.scenario.SpecRunner', function() { it('should execute spec function and notify UI', function() { var finished; - var ui = new UIMock(); var spec = createSpec('test spec', function() { this.test = 'some value'; }); runner.addFuture('test future', function(done) { done(); }); - runner.run(ui, spec, function() { + runner.run(spec, function() { finished = true; }); expect(runner.test).toEqual('some value'); expect(finished).toBeTruthy(); - expect(ui.log).toEqual([ - 'addSpec:test spec', - 'addStep:test future', - 'step finish:', - 'spec finish:' + expect(log).toEqual([ + 'SpecBegin', + 'StepBegin', + 'StepEnd', + 'SpecEnd' ]); }); it('should execute notify UI on spec setup error', function() { var finished; - var ui = new UIMock(); var spec = createSpec('test spec', function() { throw 'message'; }); - runner.run(ui, spec, function() { + runner.run(spec, function() { finished = true; }); expect(finished).toBeTruthy(); - expect(ui.log).toEqual([ - 'addSpec:test spec', - 'spec error:message' + expect(log).toEqual([ + 'SpecBegin', + 'SpecError', + 'SpecEnd' ]); }); it('should execute notify UI on step failure', function() { var finished; - var ui = new UIMock(); var spec = createSpec('test spec'); runner.addFuture('test future', function(done) { done('failure message'); }); - runner.run(ui, spec, function() { + runner.run(spec, function() { finished = true; }); expect(finished).toBeTruthy(); - expect(ui.log).toEqual([ - 'addSpec:test spec', - 'addStep:test future', - 'step finish:failure message', - 'spec finish:' + expect(log).toEqual([ + 'SpecBegin', + 'StepBegin', + 'StepFailure', + 'StepEnd', + 'SpecEnd' ]); }); it('should execute notify UI on step error', function() { var finished; - var ui = new UIMock(); var spec = createSpec('test spec', function() { this.addFuture('test future', function(done) { throw 'error message'; }); }); - runner.run(ui, spec, function() { + runner.run(spec, function() { finished = true; }); expect(finished).toBeTruthy(); - expect(ui.log).toEqual([ - 'addSpec:test spec', - 'addStep:test future', - 'step error:error message', - 'spec finish:' + expect(log).toEqual([ + 'SpecBegin', + 'StepBegin', + 'StepError', + 'StepEnd', + 'SpecEnd' ]); }); it('should run after handlers even if error in body of spec', function() { var finished, after; - var ui = new UIMock(); var spec = createSpec('test spec', function() { this.addFuture('body', function(done) { throw 'error message'; @@ -181,18 +151,19 @@ describe('angular.scenario.SpecRunner', function() { done(); }); }; - runner.run(ui, spec, function() { + runner.run(spec, function() { finished = true; }); expect(finished).toBeTruthy(); expect(after).toBeTruthy(); - expect(ui.log).toEqual([ - 'addSpec:test spec', - 'addStep:body', - 'step error:error message', - 'addStep:after', - 'step finish:', - 'spec finish:' + expect(log).toEqual([ + 'SpecBegin', + 'StepBegin', + 'StepError', + 'StepEnd', + 'StepBegin', + 'StepEnd', + 'SpecEnd' ]); }); |
