import { CollapseDirective } from './collapse.directive'; import { Component, DebugElement, ElementRef, Renderer2, Type } from '@angular/core'; import { AnimationBuilder } from '@angular/animations'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; class MockElementRef extends ElementRef {} @Component({ template: `
` }) class TestComponent {} describe('CollapseDirective', () => { let component: TestComponent; let fixture: ComponentFixture; let elementRef: DebugElement; let renderer: Renderer2; let animationBuilder: AnimationBuilder; beforeEach(() => { TestBed.configureTestingModule({ declarations: [TestComponent], imports: [CollapseDirective, NoopAnimationsModule], providers: [ { provide: ElementRef, useClass: MockElementRef }, { provide: AnimationBuilder }, Renderer2 ] }); fixture = TestBed.createComponent(TestComponent); component = fixture.componentInstance; elementRef = fixture.debugElement.query(By.directive(CollapseDirective)); renderer = fixture.componentRef.injector.get(Renderer2 as Type); fixture.detectChanges(); // initial binding }); it('should create an instance', () => { const directive = new CollapseDirective(elementRef, renderer, animationBuilder); expect(directive).toBeTruthy(); }); });