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 './index' ;
4
+ import { MdSidenav , MdSidenavModule , MdSidenavToggleResult , MdSidenavContainer } from './index' ;
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 ,
@@ -446,6 +444,43 @@ describe('MdSidenav', () => {
446
444
} ) ;
447
445
} ) ;
448
446
447
+ describe ( 'MdSidenavContainer' , ( ) => {
448
+ beforeEach ( async ( ( ) => {
449
+ TestBed . configureTestingModule ( {
450
+ imports : [ MdSidenavModule . forRoot ( ) , A11yModule . forRoot ( ) , PlatformModule . forRoot ( ) ] ,
451
+ declarations : [
452
+ SidenavContainerTwoSidenavTestApp
453
+ ] ,
454
+ } ) ;
455
+
456
+ TestBed . compileComponents ( ) ;
457
+ } ) ) ;
458
+
459
+ describe ( 'methods' , ( ) => {
460
+ it ( 'should be able to open and close' , async ( ( ) => {
461
+ const fixture = TestBed . createComponent ( SidenavContainerTwoSidenavTestApp ) ;
462
+
463
+ fixture . detectChanges ( ) ;
464
+
465
+ const testComponent : SidenavContainerTwoSidenavTestApp =
466
+ fixture . debugElement . componentInstance ;
467
+ const sidenavs = fixture . debugElement . queryAll ( By . directive ( MdSidenav ) ) ;
468
+
469
+ expect ( sidenavs . every ( sidenav => sidenav . componentInstance . opened ) ) . toBeFalsy ( ) ;
470
+
471
+ return testComponent . sidenavContainer . open ( )
472
+ . then ( ( ) => {
473
+ expect ( sidenavs . every ( sidenav => sidenav . componentInstance . opened ) ) . toBeTruthy ( ) ;
474
+
475
+ return testComponent . sidenavContainer . close ( ) ;
476
+ } )
477
+ . then ( ( ) => {
478
+ expect ( sidenavs . every ( sidenav => sidenav . componentInstance . opened ) ) . toBeTruthy ( ) ;
479
+ } ) ;
480
+ } ) ) ;
481
+ } ) ;
482
+ } ) ;
483
+
449
484
450
485
/** Test component that contains an MdSidenavContainer but no MdSidenav. */
451
486
@Component ( { template : `<md-sidenav-container></md-sidenav-container>` } )
@@ -455,11 +490,14 @@ class SidenavContainerNoSidenavTestApp { }
455
490
@Component ( {
456
491
template : `
457
492
<md-sidenav-container>
458
- <md-sidenav> </md-sidenav>
459
- <md-sidenav> </md-sidenav>
493
+ <md-sidenav align="start" > </md-sidenav>
494
+ <md-sidenav align="end" > </md-sidenav>
460
495
</md-sidenav-container>` ,
461
496
} )
462
- class SidenavContainerTwoSidenavTestApp { }
497
+ class SidenavContainerTwoSidenavTestApp {
498
+ @ViewChild ( MdSidenavContainer )
499
+ sidenavContainer : MdSidenavContainer ;
500
+ }
463
501
464
502
/** Test component that contains an MdSidenavContainer and one MdSidenav. */
465
503
@Component ( {
0 commit comments