57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { async, fakeAsync, tick } from '@angular/core/testing';
 | |
| 
 | |
| import { Observable } from 'rxjs/Observable';
 | |
| 
 | |
| describe('Angular async helper', () => {
 | |
|   let actuallyDone = false;
 | |
| 
 | |
|   beforeEach(() => { actuallyDone = false; });
 | |
| 
 | |
|   afterEach(() => { expect(actuallyDone).toBe(true, 'actuallyDone should be true'); });
 | |
| 
 | |
|   it('should run normal test', () => { actuallyDone = true; });
 | |
| 
 | |
|   it('should run normal async test', (done: DoneFn) => {
 | |
|     setTimeout(() => {
 | |
|       actuallyDone = true;
 | |
|       done();
 | |
|     }, 0);
 | |
|   });
 | |
| 
 | |
|   it('should run async test with task',
 | |
|       async(() => { setTimeout(() => { actuallyDone = true; }, 0); }));
 | |
| 
 | |
|   it('should run async test with successful promise', async(() => {
 | |
|     const p = new Promise(resolve => { setTimeout(resolve, 10); });
 | |
|     p.then(() => { actuallyDone = true; });
 | |
|   }));
 | |
| 
 | |
|   it('should run async test with failed promise', async(() => {
 | |
|     const p = new Promise((resolve, reject) => { setTimeout(reject, 10); });
 | |
|     p.catch(() => { actuallyDone = true; });
 | |
|   }));
 | |
| 
 | |
|   // Fail message: Cannot use setInterval from within an async zone test
 | |
|   // See https://github.com/angular/angular/issues/10127
 | |
|   xit('should run async test with successful delayed Observable', async(() => {
 | |
|     const source = Observable.of(true).delay(10);
 | |
|     source.subscribe(
 | |
|       val => actuallyDone = true,
 | |
|       err => fail(err)
 | |
|     );
 | |
|   }));
 | |
| 
 | |
|   // Fail message: Error: 1 periodic timer(s) still in the queue
 | |
|   // See https://github.com/angular/angular/issues/10127
 | |
|   xit('should run async test with successful delayed Observable', fakeAsync(() => {
 | |
|     const source = Observable.of(true).delay(10);
 | |
|     source.subscribe(
 | |
|       val => actuallyDone = true,
 | |
|       err => fail(err)
 | |
|     );
 | |
| 
 | |
|     tick();
 | |
|   }));
 | |
| 
 | |
| });
 |