diff options
| -rw-r--r-- | src/scenario/Future.js | 22 | ||||
| -rw-r--r-- | src/scenario/Matcher.js | 42 | ||||
| -rw-r--r-- | src/scenario/Runner.js | 6 | ||||
| -rw-r--r-- | test/scenario/RunnerSpec.js | 80 |
4 files changed, 64 insertions, 86 deletions
diff --git a/src/scenario/Future.js b/src/scenario/Future.js index 6c90df9d..d70e8e6e 100644 --- a/src/scenario/Future.js +++ b/src/scenario/Future.js @@ -11,25 +11,3 @@ Future.prototype = { this.value = value; } }; - -function Matcher(future, logger) { - var self = this; - this.logger = logger; - this.future = future; -} - -Matcher.addMatcher = function(name, matcher){ - Matcher.prototype[name] = function(expected) { - var future = this.future; - $scenario.addFuture( - 'expect ' + future.name + ' ' + name + ' ' + expected, - function(done){ - if (matcher(future.value, expected)) - throw "Expected " + expected + ' but was ' + future.value; - done(); - } - ); - }; -}; - -Matcher.addMatcher('toEqual', function(a,b){ return a == b; }); diff --git a/src/scenario/Matcher.js b/src/scenario/Matcher.js index dd7b7ee6..a4a13285 100644 --- a/src/scenario/Matcher.js +++ b/src/scenario/Matcher.js @@ -1,21 +1,21 @@ -//function Matcher(future, logger) { -// var self = this; -// this.logger = logger; -// this.future = future; -//} -// -//Matcher.addMatcher = function(name, matcher){ -// Matcher.prototype[name] = function(expected) { -// var future = this.future; -// $scenario.addFuture( -// 'expect ' + future.name + ' ' + name + ' ' + expected, -// function(done){ -// if (matcher(future.value, expected)) -// throw "Expected " + expected + ' but was ' + future.value; -// done(); -// } -// ); -// }; -//}; -// -//Matcher.addMatcher('toEqual', function(a,b){ return a == b; }); +function Matcher(future, logger) { + var self = this; + this.logger = logger; + this.future = future; +} + +Matcher.addMatcher = function(name, matcher){ + Matcher.prototype[name] = function(expected) { + var future = this.future; + $scenario.addFuture( + 'expect ' + future.name + ' ' + name + ' ' + expected, + function(done){ + if (matcher(future.value, expected)) + throw "Expected " + expected + ' but was ' + future.value; + done(); + } + ); + }; +}; + +Matcher.addMatcher('toEqual', function(a,b){ return a == b; }); diff --git a/src/scenario/Runner.js b/src/scenario/Runner.js index 3fc1c614..4e5d0f01 100644 --- a/src/scenario/Runner.js +++ b/src/scenario/Runner.js @@ -22,9 +22,9 @@ angular.scenario.Runner = function(scope, jQuery){ this.scope.afterEach = function(body) { afterEach = body; }; -// this.scope.expect = function(future) { -// return new Matcher(future, self.logger); -// }; + this.scope.expect = function(future) { + return new Matcher(future, self.logger); + }; this.scope.it = function(name, body) { var specName = path.join(' ') + ': it ' + name; self.currentSpec = specs[specName] = { diff --git a/test/scenario/RunnerSpec.js b/test/scenario/RunnerSpec.js index b9280e0a..de7c199d 100644 --- a/test/scenario/RunnerSpec.js +++ b/test/scenario/RunnerSpec.js @@ -204,45 +204,45 @@ describe('Runner', function() { }); }); -// describe('run', function() { -// var next; -// beforeEach(function() { -// Describe('d1', function() { -// It('it1', function() { $scenario.addFuture('s1', logger('s1,')); }); -// It('it2', function() { -// $scenario.addFuture('s2', logger('s2,')); -// $scenario.addFuture('s2.2', function(done){ next = done; }); -// }); -// }); -// Describe('d2', function() { -// It('it3', function() { $scenario.addFuture('s3', logger('s3,')); }); -// It('it4', function() { $scenario.addFuture('s4', logger('s4,')); }); -// }); -// }); -// it('should execute all specs', function() { -// $scenario.run(body); -// -// expect(log).toEqual('s1,s2,'); -// next(); -// expect(log).toEqual('s1,s2,s3,s4,'); -// }); -// it('should publish done state and results as tests are run', function() { -// expect(scenario.$testrun.done).toBeFalsy(); -// expect(scenario.$testrun.results).toEqual([]); -// $scenario.run(body); -// expect(scenario.$testrun.done).toBeFalsy(); -// expect(scenario.$testrun.results).toEqual([ -// {name: 'd1: it it1', passed: true, error: undefined, steps: ['s1']} -// ]); -// next(); -// expect(scenario.$testrun.done).toBeTruthy(); -// expect(scenario.$testrun.results).toEqual([ -// {name: 'd1: it it1', passed: true, error: undefined, steps: ['s1']}, -// {name: 'd1: it it2', passed: true, error: undefined, steps: ['s2', 's2.2']}, -// {name: 'd2: it it3', passed: true, error: undefined, steps: ['s3']}, -// {name: 'd2: it it4', passed: true, error: undefined, steps: ['s4']} -// ]); -// }); -// }); + describe('run', function() { + var next; + beforeEach(function() { + Describe('d1', function() { + It('it1', function() { $scenario.addFuture('s1', logger('s1,')); }); + It('it2', function() { + $scenario.addFuture('s2', logger('s2,')); + $scenario.addFuture('s2.2', function(done){ next = done; }); + }); + }); + Describe('d2', function() { + It('it3', function() { $scenario.addFuture('s3', logger('s3,')); }); + It('it4', function() { $scenario.addFuture('s4', logger('s4,')); }); + }); + }); + it('should execute all specs', function() { + $scenario.run(body); + + expect(log).toEqual('s1,s2,'); + next(); + expect(log).toEqual('s1,s2,s3,s4,'); + }); + it('should publish done state and results as tests are run', function() { + expect(scenario.$testrun.done).toBeFalsy(); + expect(scenario.$testrun.results).toEqual([]); + $scenario.run(body); + expect(scenario.$testrun.done).toBeFalsy(); + expect(scenario.$testrun.results).toEqual([ + {name: 'd1: it it1', passed: true, error: undefined, steps: ['s1']} + ]); + next(); + expect(scenario.$testrun.done).toBeTruthy(); + expect(scenario.$testrun.results).toEqual([ + {name: 'd1: it it1', passed: true, error: undefined, steps: ['s1']}, + {name: 'd1: it it2', passed: true, error: undefined, steps: ['s2', 's2.2']}, + {name: 'd2: it it3', passed: true, error: undefined, steps: ['s3']}, + {name: 'd2: it it4', passed: true, error: undefined, steps: ['s4']} + ]); + }); + }); });
\ No newline at end of file |
