aboutsummaryrefslogtreecommitdiffstats
path: root/test/scenario/SpecRunnerSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/scenario/SpecRunnerSpec.js')
-rw-r--r--test/scenario/SpecRunnerSpec.js123
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'
]);
});