58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | /** | ||
|  |  * @license | ||
|  |  * Copyright Google Inc. All Rights Reserved. | ||
|  |  * | ||
|  |  * Use of this source code is governed by an MIT-style license that can be | ||
|  |  * found in the LICENSE file at https://angular.io/license
 | ||
|  |  */ | ||
|  | 
 | ||
|  | import {ifEnvSupports} from '../test-util'; | ||
|  | 
 | ||
|  | describe('SyncTestZoneSpec', () => { | ||
|  |   const SyncTestZoneSpec = (Zone as any)['SyncTestZoneSpec']; | ||
|  |   let testZoneSpec; | ||
|  |   let syncTestZone: Zone; | ||
|  | 
 | ||
|  |   beforeEach(() => { | ||
|  |     testZoneSpec = new SyncTestZoneSpec('name'); | ||
|  |     syncTestZone = Zone.current.fork(testZoneSpec); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should fail on Promise.then', () => { | ||
|  |     syncTestZone.run(() => { | ||
|  |       expect(() => { | ||
|  |         Promise.resolve().then(function() {}); | ||
|  |       }).toThrow(new Error('Cannot call Promise.then from within a sync test.')); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should fail on setTimeout', () => { | ||
|  |     syncTestZone.run(() => { | ||
|  |       expect(() => { | ||
|  |         setTimeout(() => {}, 100); | ||
|  |       }).toThrow(new Error('Cannot call setTimeout from within a sync test.')); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   describe('event tasks', ifEnvSupports('document', () => { | ||
|  |              it('should work with event tasks', () => { | ||
|  |                syncTestZone.run(() => { | ||
|  |                  const button = document.createElement('button'); | ||
|  |                  document.body.appendChild(button); | ||
|  |                  let x = 1; | ||
|  |                  try { | ||
|  |                    button.addEventListener('click', () => { x++; }); | ||
|  | 
 | ||
|  |                    button.click(); | ||
|  |                    expect(x).toEqual(2); | ||
|  | 
 | ||
|  |                    button.click(); | ||
|  |                    expect(x).toEqual(3); | ||
|  |                  } finally { | ||
|  |                    document.body.removeChild(button); | ||
|  |                  } | ||
|  |                }); | ||
|  |              }); | ||
|  |            })); | ||
|  | }); |