11import { CollapseDirective } from './collapse.directive' ;
22import { Component , DebugElement , ElementRef , Renderer2 } from '@angular/core' ;
3- import { ComponentFixture , TestBed } from '@angular/core/testing' ;
3+ import { ComponentFixture , fakeAsync , TestBed } from '@angular/core/testing' ;
44import { NoopAnimationsModule } from '@angular/platform-browser/animations' ;
55import { By } from '@angular/platform-browser' ;
66
77class MockElementRef extends ElementRef { }
88
99@Component ( {
10- template : '<div cCollapse horizontal>Test</div>' ,
10+ template : '<div cCollapse [ horizontal]="horizontal" [(visible)]="visible" [animate]="false" >Test</div>' ,
1111 imports : [ CollapseDirective ]
1212} )
13- class TestComponent { }
13+ class TestComponent {
14+ horizontal = false ;
15+ visible = false ;
16+ }
1417
1518describe ( 'CollapseDirective' , ( ) => {
1619 let component : TestComponent ;
@@ -26,7 +29,7 @@ describe('CollapseDirective', () => {
2629 fixture = TestBed . createComponent ( TestComponent ) ;
2730 component = fixture . componentInstance ;
2831 elementRef = fixture . debugElement . query ( By . directive ( CollapseDirective ) ) ;
29-
32+ component . visible = false ;
3033 fixture . detectChanges ( ) ; // initial binding
3134 } ) ;
3235
@@ -37,7 +40,17 @@ describe('CollapseDirective', () => {
3740 } ) ;
3841 } ) ;
3942
40- it ( 'should have css classes' , ( ) => {
43+ it ( 'should have css classes' , fakeAsync ( ( ) => {
44+ expect ( elementRef . nativeElement . style . display ) . toContain ( 'none' ) ;
45+ expect ( elementRef . nativeElement ) . not . toHaveClass ( 'collapse-horizontal' ) ;
46+ component . horizontal = true ;
47+ component . visible = true ;
48+ fixture . detectChanges ( ) ;
4149 expect ( elementRef . nativeElement ) . toHaveClass ( 'collapse-horizontal' ) ;
42- } ) ;
50+ expect ( elementRef . nativeElement . style . display ) . toBe ( '' ) ;
51+ component . horizontal = false ;
52+ component . visible = false ;
53+ fixture . detectChanges ( ) ;
54+ expect ( elementRef . nativeElement ) . not . toHaveClass ( 'collapse-horizontal' ) ;
55+ } ) ) ;
4356} ) ;
0 commit comments