1
1
import { fakeAsync , async , tick , ComponentFixture , TestBed } from '@angular/core/testing' ;
2
- import { Component } from '@angular/core' ;
2
+ import { Component , ViewChild } from '@angular/core' ;
3
3
import { By } from '@angular/platform-browser' ;
4
- import { MdSidenav , MdSidenavModule , MdSidenavToggleResult } from './sidenav' ;
4
+ import { MdSidenav , MdSidenavModule , MdSidenavToggleResult , MdSidenavContainer } from './sidenav' ;
5
5
import { A11yModule } from '../core/a11y/index' ;
6
6
import { PlatformModule } from '../core/platform/index' ;
7
7
import { ESCAPE } from '../core/keyboard/keycodes' ;
8
8
9
-
10
9
function endSidenavTransition ( fixture : ComponentFixture < any > ) {
11
10
let sidenav : any = fixture . debugElement . query ( By . directive ( MdSidenav ) ) . componentInstance ;
12
11
sidenav . _onTransitionEnd ( < any > {
@@ -23,7 +22,6 @@ describe('MdSidenav', () => {
23
22
imports : [ MdSidenavModule . forRoot ( ) , A11yModule . forRoot ( ) , PlatformModule . forRoot ( ) ] ,
24
23
declarations : [
25
24
BasicTestApp ,
26
- SidenavContainerTwoSidenavTestApp ,
27
25
SidenavContainerNoSidenavTestApp ,
28
26
SidenavSetToOpenedFalse ,
29
27
SidenavSetToOpenedTrue ,
@@ -444,6 +442,43 @@ describe('MdSidenav', () => {
444
442
} ) ;
445
443
} ) ;
446
444
445
+ describe ( 'MdSidenavContainer' , ( ) => {
446
+ beforeEach ( async ( ( ) => {
447
+ TestBed . configureTestingModule ( {
448
+ imports : [ MdSidenavModule . forRoot ( ) , A11yModule . forRoot ( ) , PlatformModule . forRoot ( ) ] ,
449
+ declarations : [
450
+ SidenavContainerTwoSidenavTestApp
451
+ ] ,
452
+ } ) ;
453
+
454
+ TestBed . compileComponents ( ) ;
455
+ } ) ) ;
456
+
457
+ describe ( 'methods' , ( ) => {
458
+ it ( 'should be able to open and close' , async ( ( ) => {
459
+ const fixture = TestBed . createComponent ( SidenavContainerTwoSidenavTestApp ) ;
460
+
461
+ fixture . detectChanges ( ) ;
462
+
463
+ const testComponent : SidenavContainerTwoSidenavTestApp =
464
+ fixture . debugElement . componentInstance ;
465
+ const sidenavs = fixture . debugElement . queryAll ( By . directive ( MdSidenav ) ) ;
466
+
467
+ expect ( sidenavs . every ( sidenav => sidenav . componentInstance . opened ) ) . toBeFalsy ( ) ;
468
+
469
+ return testComponent . sidenavContainer . open ( )
470
+ . then ( ( ) => {
471
+ expect ( sidenavs . every ( sidenav => sidenav . componentInstance . opened ) ) . toBeTruthy ( ) ;
472
+
473
+ return testComponent . sidenavContainer . close ( ) ;
474
+ } )
475
+ . then ( ( ) => {
476
+ expect ( sidenavs . every ( sidenav => sidenav . componentInstance . opened ) ) . toBeTruthy ( ) ;
477
+ } ) ;
478
+ } ) ) ;
479
+ } ) ;
480
+ } ) ;
481
+
447
482
448
483
/** Test component that contains an MdSidenavContainer but no MdSidenav. */
449
484
@Component ( { template : `<md-sidenav-container></md-sidenav-container>` } )
@@ -453,11 +488,14 @@ class SidenavContainerNoSidenavTestApp { }
453
488
@Component ( {
454
489
template : `
455
490
<md-sidenav-container>
456
- <md-sidenav> </md-sidenav>
457
- <md-sidenav> </md-sidenav>
491
+ <md-sidenav align="start" > </md-sidenav>
492
+ <md-sidenav align="end" > </md-sidenav>
458
493
</md-sidenav-container>` ,
459
494
} )
460
- class SidenavContainerTwoSidenavTestApp { }
495
+ class SidenavContainerTwoSidenavTestApp {
496
+ @ViewChild ( MdSidenavContainer )
497
+ sidenavContainer : MdSidenavContainer ;
498
+ }
461
499
462
500
/** Test component that contains an MdSidenavContainer and one MdSidenav. */
463
501
@Component ( {
0 commit comments