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() {} }