diff options
| author | Elliott Sprehn | 2010-10-19 13:17:49 -0700 |
|---|---|---|
| committer | Elliott Sprehn | 2010-10-20 14:38:00 -0700 |
| commit | 2115db69035c5993533fe7a3825e64cf6e9068ad (patch) | |
| tree | 796a502b28cd2bda8108a672eac0bf28c8bc21d4 /test/scenario/HtmlUISpec.js | |
| parent | 9c8b1800b90e14b643bab6ada8e96f8f850e84a6 (diff) | |
| download | angular.js-2115db69035c5993533fe7a3825e64cf6e9068ad.tar.bz2 | |
Lots of stability and performance updates and UI polish too.
Polish the Scenario Runner UI to include:
- a scroll pane that steps appear in since the list can be very long
- Collapse successful tests
- Show the line where the DSL statements were when there's an error (Chrome, Firefox)
Also:
- Remove lots angular.bind calls to reduce the amount of stack space used.
- Use setTimeout(...,0) to schedule the next future to let the browser breathe and have it repaint the steps. Also prevents overflowing the stack when an it() creates many futures.
- Run afterEach() handlers even if the it() block fails.
- Make navigateTo() take a function as the second argument so you can compute a URL in the future.
- Add wait() DSL statement to allow interactive debugging of tests.
- Allow custom jQuery selectors with element(...).query(fn) DSL statement.
Known Issues:
- All afterEach() handlers run even if a beforeEach() handler fails. Only after handlers for the same level as the failure and above should run.
Diffstat (limited to 'test/scenario/HtmlUISpec.js')
| -rw-r--r-- | test/scenario/HtmlUISpec.js | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/test/scenario/HtmlUISpec.js b/test/scenario/HtmlUISpec.js index 5b800fca..9357e00b 100644 --- a/test/scenario/HtmlUISpec.js +++ b/test/scenario/HtmlUISpec.js @@ -2,6 +2,8 @@ describe('angular.scenario.HtmlUI', function() { var ui; var context; var spec; + + function line() { return 'unknown:-1'; } beforeEach(function() { spec = { @@ -35,44 +37,44 @@ describe('angular.scenario.HtmlUI', function() { it('should update totals when steps complete', function() { // Error ui.addSpec(spec).error('error'); - // Error - specUI = ui.addSpec(spec); - specUI.addStep('some step').finish(); - specUI.finish('error'); // Failure specUI = ui.addSpec(spec); - specUI.addStep('some step').finish('failure'); - specUI.finish('failure'); + specUI.addStep('some step', line).finish('failure'); + specUI.finish(); // Failure specUI = ui.addSpec(spec); - specUI.addStep('some step').finish('failure'); - specUI.finish('failure'); + specUI.addStep('some step', line).finish('failure'); + specUI.finish(); // Failure specUI = ui.addSpec(spec); - specUI.addStep('some step').finish('failure'); - specUI.finish('failure'); + specUI.addStep('some step', line).finish('failure'); + specUI.finish(); // Success specUI = ui.addSpec(spec); - specUI.addStep('some step').finish(); + specUI.addStep('some step', line).finish(); + specUI.finish(); + // Success + specUI = ui.addSpec(spec); + specUI.addStep('another step', line).finish(); specUI.finish(); expect(parseInt(context.find('#status-legend .status-failure').text(), 10)). toEqual(3); - expect(parseInt(context.find('#status-legend .status-error').text(), 10)). - toEqual(2); expect(parseInt(context.find('#status-legend .status-success').text(), 10)). + toEqual(2); + expect(parseInt(context.find('#status-legend .status-error').text(), 10)). toEqual(1); }); it('should update timer when test completes', function() { // Success specUI = ui.addSpec(spec); - specUI.addStep('some step').finish(); + specUI.addStep('some step', line).finish(); specUI.finish(); // Failure specUI = ui.addSpec(spec); - specUI.addStep('some step').finish('failure'); + specUI.addStep('some step', line).finish('failure'); specUI.finish('failure'); // Error @@ -83,5 +85,14 @@ describe('angular.scenario.HtmlUI', function() { expect(timer.innerHTML).toMatch(/ms$/); }); }); + + it('should include line if provided', function() { + specUI = ui.addSpec(spec); + specUI.addStep('some step', line).finish('error!'); + specUI.finish(); + + var errorHtml = context.find('#describe-10 .tests li pre').html(); + expect(errorHtml.indexOf('unknown:-1')).toEqual(0); + }); }); |
