diff --git a/test/jasmine-patch.spec.ts b/test/jasmine-patch.spec.ts index 0b2671ddb..c7fc9be7d 100644 --- a/test/jasmine-patch.spec.ts +++ b/test/jasmine-patch.spec.ts @@ -44,9 +44,28 @@ ifEnvSupports(supportJasmineSpec, () => { afterEach(() => { let zone = Zone.current; expect(zone.name).toEqual('ProxyZone'); - expect(beforeEachZone).toBe(zone); + expect(beforeEachZone.name).toEqual(zone.name); expect(itZone).toBe(zone); }); + }); + + describe('return promise', () => { + let log: string[]; + beforeEach(() => { + log = []; + }); + it('should wait for promise to resolve', () => { + return new Promise((res, _) => { + setTimeout(() => { + log.push('resolved'); + res(); + }, 100); + }); + }); + + afterEach(() => { + expect(log).toEqual(['resolved']); + }); }); })(); diff --git a/test/mocha-patch.spec.ts b/test/mocha-patch.spec.ts index 01ec59ba1..54c47bcd0 100644 --- a/test/mocha-patch.spec.ts +++ b/test/mocha-patch.spec.ts @@ -98,4 +98,23 @@ ifEnvSupports('Mocha', function() { }); + describe('return promise', () => { + let log: string[]; + beforeEach(() => { + log = []; + }); + + it('should wait for promise to resolve', () => { + return new Promise((res, _) => { + setTimeout(() => { + log.push('resolved'); + res(); + }, 100); + }); + }); + + afterEach(() => { + expect(log).toEqual(['resolved']); + }); + }); })(); \ No newline at end of file diff --git a/test/zone-spec/async-test.spec.ts b/test/zone-spec/async-test.spec.ts index 8d0f59e5e..b9daf7b73 100644 --- a/test/zone-spec/async-test.spec.ts +++ b/test/zone-spec/async-test.spec.ts @@ -546,5 +546,19 @@ describe('AsyncTestZoneSpec', function() { expect(logs).toEqual(['beforeEach', 'timeout']); })); }); + + describe('return promise', () => { + let value = 'init'; + it('should only call finish once', testAsync(() => { + return new Promise((resolve, _) => { + setTimeout(() => { + value = 'timeout'; + resolve(); + }, 100); + }); + }, () => { + expect(value).toEqual('timeout'); + })); + }); }); }); diff --git a/test/zone-spec/fake-async-test.spec.ts b/test/zone-spec/fake-async-test.spec.ts index cb23a340d..9889cff39 100644 --- a/test/zone-spec/fake-async-test.spec.ts +++ b/test/zone-spec/fake-async-test.spec.ts @@ -833,6 +833,26 @@ describe('FakeAsyncTestZoneSpec', () => { }); }); + describe('return promise', () => { + let log: string[]; + beforeEach(() => { + log = []; + }); + + it('should wait for promise to resolve', () => { + return new Promise((res, _) => { + setTimeout(() => { + log.push('resolved'); + res(); + }, 100); + }); + }); + + afterEach(() => { + expect(log).toEqual(['resolved']); + }); + }); + describe('fakeAsyncTest should patch Date', () => { let FakeAsyncTestZoneSpec = (Zone as any)['FakeAsyncTestZoneSpec']; let testZoneSpec: any;