This was done automatically by tslint, which can now fix issues it finds. The fixer is still pending in PR https://github.com/palantir/tslint/pull/1568 Also I have a local bugfix for https://github.com/palantir/tslint/issues/1569 which causes too many imports to be deleted.
		
			
				
	
	
		
			134 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			3.9 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 {AsyncTestCompleter, beforeEach, describe, expect, inject, it} from '@angular/core/testing/testing_internal';
 | |
| import {EventEmitter} from '../src/async';
 | |
| 
 | |
| export function main() {
 | |
|   describe('EventEmitter', () => {
 | |
|     var emitter: EventEmitter<any>;
 | |
| 
 | |
|     beforeEach(() => { emitter = new EventEmitter(); });
 | |
| 
 | |
|     it('should call the next callback',
 | |
|        inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
 | |
|          emitter.subscribe({
 | |
|            next: (value: any) => {
 | |
|              expect(value).toEqual(99);
 | |
|              async.done();
 | |
|            }
 | |
|          });
 | |
|          emitter.emit(99);
 | |
|        }));
 | |
| 
 | |
|     it('should call the throw callback',
 | |
|        inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
 | |
|          emitter.subscribe({
 | |
|            next: () => {},
 | |
|            error: (error: any) => {
 | |
|              expect(error).toEqual('Boom');
 | |
|              async.done();
 | |
|            }
 | |
|          });
 | |
|          emitter.error('Boom');
 | |
|        }));
 | |
| 
 | |
|     it('should work when no throw callback is provided',
 | |
|        inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
 | |
|          emitter.subscribe({next: () => {}, error: (_: any) => { async.done(); }});
 | |
|          emitter.error('Boom');
 | |
|        }));
 | |
| 
 | |
|     it('should call the return callback',
 | |
|        inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
 | |
|          emitter.subscribe(
 | |
|              {next: () => {}, error: (_: any) => {}, complete: () => { async.done(); }});
 | |
|          emitter.complete();
 | |
|        }));
 | |
| 
 | |
|     it('should subscribe to the wrapper synchronously', () => {
 | |
|       var called = false;
 | |
|       emitter.subscribe({next: (value: any) => { called = true; }});
 | |
|       emitter.emit(99);
 | |
| 
 | |
|       expect(called).toBe(true);
 | |
|     });
 | |
| 
 | |
|     it('delivers next and error events synchronously',
 | |
|        inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
 | |
|          let log: any[] /** TODO #9100 */ = [];
 | |
| 
 | |
|          emitter.subscribe({
 | |
|            next: (x: any) => {
 | |
|              log.push(x);
 | |
|              expect(log).toEqual([1, 2]);
 | |
|            },
 | |
|            error: (err: any) => {
 | |
|              log.push(err);
 | |
|              expect(log).toEqual([1, 2, 3, 4]);
 | |
|              async.done();
 | |
|            }
 | |
|          });
 | |
|          log.push(1);
 | |
|          emitter.emit(2);
 | |
|          log.push(3);
 | |
|          emitter.error(4);
 | |
|          log.push(5);
 | |
|        }));
 | |
| 
 | |
|     it('delivers next and complete events synchronously', () => {
 | |
|       let log: any[] /** TODO #9100 */ = [];
 | |
| 
 | |
|       emitter.subscribe({
 | |
|         next: (x: any) => {
 | |
|           log.push(x);
 | |
|           expect(log).toEqual([1, 2]);
 | |
|         },
 | |
|         error: null,
 | |
|         complete: () => {
 | |
|           log.push(4);
 | |
|           expect(log).toEqual([1, 2, 3, 4]);
 | |
|         }
 | |
|       });
 | |
|       log.push(1);
 | |
|       emitter.emit(2);
 | |
|       log.push(3);
 | |
|       emitter.complete();
 | |
|       log.push(5);
 | |
|       expect(log).toEqual([1, 2, 3, 4, 5]);
 | |
|     });
 | |
| 
 | |
|     it('delivers events asynchronously when forced to async mode',
 | |
|        inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
 | |
|          var e = new EventEmitter(true);
 | |
|          var log: any[] /** TODO #9100 */ = [];
 | |
|          e.subscribe((x: any) => {
 | |
|            log.push(x);
 | |
|            expect(log).toEqual([1, 3, 2]);
 | |
|            async.done();
 | |
|          });
 | |
|          log.push(1);
 | |
|          e.emit(2);
 | |
|          log.push(3);
 | |
| 
 | |
|        }));
 | |
| 
 | |
|     it('reports whether it has subscribers', () => {
 | |
|       var e = new EventEmitter(false);
 | |
|       expect(e.observers.length > 0).toBe(false);
 | |
|       e.subscribe({next: () => {}});
 | |
|       expect(e.observers.length > 0).toBe(true);
 | |
|     });
 | |
| 
 | |
|     // TODO: vsavkin: add tests cases
 | |
|     // should call dispose on the subscription if generator returns {done:true}
 | |
|     // should call dispose on the subscription on throw
 | |
|     // should call dispose on the subscription on return
 | |
|   });
 | |
| }
 |