146 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {
 | 
						|
  beforeEach,
 | 
						|
  xdescribe,
 | 
						|
  ddescribe,
 | 
						|
  describe,
 | 
						|
  expect,
 | 
						|
  iit,
 | 
						|
  inject,
 | 
						|
  it,
 | 
						|
} from '@angular/core/testing/testing_internal';
 | 
						|
 | 
						|
import {hasLifecycleHook} from '@angular/compiler/src/directive_lifecycle_reflector';
 | 
						|
import {LifecycleHooks} from '@angular/core/src/metadata/lifecycle_hooks';
 | 
						|
 | 
						|
export function main() {
 | 
						|
  describe('Create DirectiveMetadata', () => {
 | 
						|
    describe('lifecycle', () => {
 | 
						|
 | 
						|
      describe("ngOnChanges", () => {
 | 
						|
        it("should be true when the directive has the ngOnChanges method", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.OnChanges, DirectiveWithOnChangesMethod))
 | 
						|
              .toBe(true);
 | 
						|
        });
 | 
						|
 | 
						|
        it("should be false otherwise", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.OnChanges, DirectiveNoHooks)).toBe(false);
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
      describe("ngOnDestroy", () => {
 | 
						|
        it("should be true when the directive has the ngOnDestroy method", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.OnDestroy, DirectiveWithOnDestroyMethod))
 | 
						|
              .toBe(true);
 | 
						|
        });
 | 
						|
 | 
						|
        it("should be false otherwise", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.OnDestroy, DirectiveNoHooks)).toBe(false);
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
      describe("ngOnInit", () => {
 | 
						|
        it("should be true when the directive has the ngOnInit method", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.OnInit, DirectiveWithOnInitMethod)).toBe(true);
 | 
						|
        });
 | 
						|
 | 
						|
        it("should be false otherwise", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.OnInit, DirectiveNoHooks)).toBe(false);
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
      describe("ngDoCheck", () => {
 | 
						|
        it("should be true when the directive has the ngDoCheck method", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.DoCheck, DirectiveWithOnCheckMethod)).toBe(true);
 | 
						|
        });
 | 
						|
 | 
						|
        it("should be false otherwise", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.DoCheck, DirectiveNoHooks)).toBe(false);
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
      describe("ngAfterContentInit", () => {
 | 
						|
        it("should be true when the directive has the ngAfterContentInit method", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.AfterContentInit,
 | 
						|
                                  DirectiveWithAfterContentInitMethod))
 | 
						|
              .toBe(true);
 | 
						|
        });
 | 
						|
 | 
						|
        it("should be false otherwise", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.AfterContentInit, DirectiveNoHooks)).toBe(false);
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
      describe("ngAfterContentChecked", () => {
 | 
						|
        it("should be true when the directive has the ngAfterContentChecked method", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.AfterContentChecked,
 | 
						|
                                  DirectiveWithAfterContentCheckedMethod))
 | 
						|
              .toBe(true);
 | 
						|
        });
 | 
						|
 | 
						|
        it("should be false otherwise", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.AfterContentChecked, DirectiveNoHooks))
 | 
						|
              .toBe(false);
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
 | 
						|
      describe("ngAfterViewInit", () => {
 | 
						|
        it("should be true when the directive has the ngAfterViewInit method", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.AfterViewInit, DirectiveWithAfterViewInitMethod))
 | 
						|
              .toBe(true);
 | 
						|
        });
 | 
						|
 | 
						|
        it("should be false otherwise", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.AfterViewInit, DirectiveNoHooks)).toBe(false);
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
      describe("ngAfterViewChecked", () => {
 | 
						|
        it("should be true when the directive has the ngAfterViewChecked method", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.AfterViewChecked,
 | 
						|
                                  DirectiveWithAfterViewCheckedMethod))
 | 
						|
              .toBe(true);
 | 
						|
        });
 | 
						|
 | 
						|
        it("should be false otherwise", () => {
 | 
						|
          expect(hasLifecycleHook(LifecycleHooks.AfterViewChecked, DirectiveNoHooks)).toBe(false);
 | 
						|
        });
 | 
						|
      });
 | 
						|
    });
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
class DirectiveNoHooks {}
 | 
						|
 | 
						|
class DirectiveWithOnChangesMethod {
 | 
						|
  ngOnChanges(_) {}
 | 
						|
}
 | 
						|
 | 
						|
class DirectiveWithOnInitMethod {
 | 
						|
  ngOnInit() {}
 | 
						|
}
 | 
						|
 | 
						|
class DirectiveWithOnCheckMethod {
 | 
						|
  ngDoCheck() {}
 | 
						|
}
 | 
						|
 | 
						|
class DirectiveWithOnDestroyMethod {
 | 
						|
  ngOnDestroy() {}
 | 
						|
}
 | 
						|
 | 
						|
class DirectiveWithAfterContentInitMethod {
 | 
						|
  ngAfterContentInit() {}
 | 
						|
}
 | 
						|
 | 
						|
class DirectiveWithAfterContentCheckedMethod {
 | 
						|
  ngAfterContentChecked() {}
 | 
						|
}
 | 
						|
 | 
						|
class DirectiveWithAfterViewInitMethod {
 | 
						|
  ngAfterViewInit() {}
 | 
						|
}
 | 
						|
 | 
						|
class DirectiveWithAfterViewCheckedMethod {
 | 
						|
  ngAfterViewChecked() {}
 | 
						|
}
 |