refactor(benchpress): make tests for error cases also work in Dart

Also introduces `PromiseWrapper.catchError`.
Could not use `PromiseWrapper.catch` as a name as Dart would not allow
this method name.
This commit is contained in:
Tobias Bosch
2015-02-25 17:43:33 -08:00
parent dd1898c132
commit 65ebff056a
4 changed files with 31 additions and 23 deletions

View File

@ -1,7 +1,8 @@
import {ddescribe, describe, it, iit, xit, expect, beforeEach, afterEach} from 'angular2/test_lib';
import { StringMap, ListWrapper } from 'angular2/src/facade/collection';
import { isPresent, StringWrapper, isJsObject } from 'angular2/src/facade/lang';
import { isPresent, StringWrapper } from 'angular2/src/facade/lang';
import { PromiseWrapper } from 'angular2/src/facade/async';
import { WebDriverExtension, bind, Injector, Options } from 'benchpress/benchpress';
@ -23,16 +24,15 @@ export function main() {
});
});
// TODO(tbosch): In Dart, somehow we don't provide the error
// correctly in the promise result...
if (isJsObject({})) {
it('should throw if there is no match', (done) => {
createExtension(['m1'], {'browser': 'm2'}).then(null, (err) => {
it('should throw if there is no match', (done) => {
PromiseWrapper.catchError(
createExtension(['m1'], {'browser': 'm2'}),
(err) => {
expect(isPresent(err)).toBe(true);
done();
});
});
}
}
);
});
});
}

View File

@ -2,7 +2,7 @@ import {describe, it, iit, xit, expect, beforeEach, afterEach} from 'angular2/te
import { ListWrapper } from 'angular2/src/facade/collection';
import { PromiseWrapper } from 'angular2/src/facade/async';
import { Json, isBlank, isJsObject } from 'angular2/src/facade/lang';
import { Json, isBlank } from 'angular2/src/facade/lang';
import {
WebDriverExtension, ChromeDriverExtension,
@ -164,20 +164,16 @@ export function main() {
});
});
// TODO(tbosch): In Dart, somehow we don't provide the error
// correctly in the promise result...
if (isJsObject({})) {
it('should throw an error on buffer overflow', (done) => {
createExtension([
chromeTimelineEvents.start('FunctionCall', 1234),
], 'Tracing.bufferUsage').readPerfLog().then(null, (err) => {
expect( () => {
throw err;
}).toThrowError('The DevTools trace buffer filled during the test!');
done();
});
it('should throw an error on buffer overflow', (done) => {
PromiseWrapper.catchError(createExtension([
chromeTimelineEvents.start('FunctionCall', 1234),
], 'Tracing.bufferUsage').readPerfLog(), (err) => {
expect( () => {
throw err;
}).toThrowError('The DevTools trace buffer filled during the test!');
done();
});
}
});
it('should match chrome browsers', () => {
expect(createExtension().supports({