diff --git a/modules/@angular/core/testing/testing.ts b/modules/@angular/core/testing/testing.ts index b062b25f62..b5a297d243 100644 --- a/modules/@angular/core/testing/testing.ts +++ b/modules/@angular/core/testing/testing.ts @@ -2,7 +2,7 @@ * Public Test Library for unit testing Angular2 Applications. Uses the * Jasmine framework. */ -import {isPromise} from '../src/facade/lang'; +import {isPromise, isString} from '../src/facade/lang'; import {TestInjector, async, getTestInjector, inject, injectAsync} from './test_injector'; @@ -108,7 +108,12 @@ function _wrapTestFn(fn: Function) { let retVal = fn(); if (isPromise(retVal)) { // Asynchronous test function - wait for completion. - (>retVal).then(done, done.fail); + (>retVal).then(done, (err) => { + if (isString(err)) { + return done.fail(new Error(err)); + } + return done.fail(err); + }); } else { // Synchronous test function - complete immediately. done(); diff --git a/modules/@angular/platform-browser-dynamic/test/testing_public_browser_spec.ts b/modules/@angular/platform-browser-dynamic/test/testing_public_browser_spec.ts index 2f11a57ab8..5b74552194 100644 --- a/modules/@angular/platform-browser-dynamic/test/testing_public_browser_spec.ts +++ b/modules/@angular/platform-browser-dynamic/test/testing_public_browser_spec.ts @@ -142,7 +142,8 @@ export function main() { itPromise.then( () => { done.fail('Expected test to fail, but it did not'); }, (err) => { - expect(err).toEqual('Uncaught (in promise): Failed to load non-existant.html'); + expect(err.message) + .toEqual('Uncaught (in promise): Failed to load non-existant.html'); done(); }); restoreJasmineIt(); diff --git a/modules/@angular/platform-browser/test/testing_public_spec.ts b/modules/@angular/platform-browser/test/testing_public_spec.ts index 86f909cc74..ee2b45ead4 100644 --- a/modules/@angular/platform-browser/test/testing_public_spec.ts +++ b/modules/@angular/platform-browser/test/testing_public_spec.ts @@ -231,14 +231,15 @@ export function main() { it('should fail when an asynchronous error is thrown', (done: any /** TODO #9100 */) => { var itPromise = patchJasmineIt(); + var barError = new Error('bar'); it('throws an async error', - async(inject([], () => { setTimeout(() => { throw new Error('bar'); }, 0); }))); + async(inject([], () => { setTimeout(() => { throw barError; }, 0); }))); itPromise.then( () => { done.fail('Expected test to fail, but it did not'); }, (err) => { - expect(err).toEqual('bar'); + expect(err).toEqual(barError); done(); }); restoreJasmineIt(); @@ -258,7 +259,7 @@ export function main() { itPromise.then( () => { done.fail('Expected test to fail, but it did not'); }, (err) => { - expect(err).toEqual('Uncaught (in promise): baz'); + expect(err.message).toEqual('Uncaught (in promise): baz'); done(); }); restoreJasmineIt();