38902784b4378021ca35bed3e3ffba9ded3bbf9a
[portal/sdk.git] /
1 /*
2  * ============LICENSE_START==========================================
3  * ONAP Portal SDK
4  * ===================================================================
5  * Copyright © 2019 AT&T Intellectual Property. All rights reserved.
6  * 
7  * Modification Copyright © 2019 IBM.
8  * ===================================================================
9  *
10  * Unless otherwise specified, all software contained herein is licensed
11  * under the Apache License, Version 2.0 (the "License");
12  * you may not use this software except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  *             http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  *
23  * Unless otherwise specified, all documentation contained herein is licensed
24  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
25  * you may not use this documentation except in compliance with the License.
26  * You may obtain a copy of the License at
27  *
28  *             https://creativecommons.org/licenses/by/4.0/
29  *
30  * Unless required by applicable law or agreed to in writing, documentation
31  * distributed under the License is distributed on an "AS IS" BASIS,
32  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
33  * See the License for the specific language governing permissions and
34  * limitations under the License.
35  *
36  * ============LICENSE_END============================================
37  *
38  * 
39  */
40 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
41 import { RouterTestingModule } from '@angular/router/testing';
42 import { TranslateModule } from '@ngx-translate/core';
43 import { HttpClientModule } from '@angular/common/http'; 
44 import { SidebarComponent } from './sidebar.component';
45 import { LayoutModule } from '../../layout.module';
46 import { Session } from 'protractor';
47 import { CookieService } from 'ngx-cookie-service';
48 import { SidebarService } from 'src/app/shared/services';
49 import { ReplaySubject } from 'rxjs';
50 import 'rxjs/add/observable/of';
51 import { Observable } from 'rxjs/Observable';
52 import { BaseRequestOptions, Http, XHRBackend } from '@angular/http';
53 import { MockBackend } from '@angular/http/testing';
54 import { environment } from 'src/environments/environment';
55 import { inject } from '@angular/core';
56 import { Response } from '@angular/http';
57 import { HttpClientTestingModule } from '@angular/common/http/testing';
58
59 describe('SidebarComponent', () => {
60   let component: SidebarComponent;
61   let fixture: ComponentFixture<SidebarComponent>;
62   let sidebarService: SidebarService;
63   let spy:any;
64   
65   let mockSidebarService = {
66     navigate: jasmine.createSpy('navigate')
67   };
68
69   beforeEach(async(() => {
70     TestBed.configureTestingModule({
71       imports: [
72         LayoutModule,
73         RouterTestingModule,
74         TranslateModule.forRoot(),
75         HttpClientModule,
76         HttpClientTestingModule
77       ],
78       providers:[CookieService, SidebarService,MockBackend, BaseRequestOptions, {
79         provide: Http,
80                     useFactory: (backend: XHRBackend, defaultOptions: BaseRequestOptions) => {
81                         return new Http(backend, defaultOptions);
82                     },
83                     deps: [MockBackend, BaseRequestOptions],                    
84       }],
85     })
86     .compileComponents();
87   }));
88
89   beforeEach(() => {
90     fixture = TestBed.createComponent(SidebarComponent);
91     component = fixture.componentInstance;
92     fixture.detectChanges();
93     sidebarService = TestBed.get(SidebarService);
94   });
95
96   it('should create', () => {
97     expect(component).toBeTruthy();
98   });
99
100   describe('should test ngOnInit',()=>{
101     it('should validate on ngOnInit',(done)=>{
102      var result=sidebarService.getLeftMenu()
103      spy=spyOn(sidebarService, 'getLeftMenu').and.returnValue(result);  
104      fixture.detectChanges(); 
105      sidebarService.getLeftMenu(); 
106      expect(spy).toHaveBeenCalled();
107      component.ngOnInit(); 
108      done()
109     //expect(component.result).toEqual(result)
110     })
111   })
112
113   it('should test addExpandClass if element and showMenu variable value are same', () => {
114     component.showMenu= '1';
115     component.addExpandClass('1');
116     expect(component.showMenu).toBe('0');
117   });
118
119   it('should test addExpandClass if element and showMenu variable value are not same', () => {
120     component.showMenu= '0';
121     component.addExpandClass('1');
122     expect(component.showMenu).toBe('1');
123   });
124
125   it('should test toggleCollapsed function', () => {
126     component.collapsed= true;
127     component.toggleCollapsed();
128     expect(component.collapsed).toBe(false);
129   });
130
131   it('should test eventCalled function', () => {
132     component.isActive= true;
133     component.eventCalled();
134     expect(component.isActive).toBe(false);
135   });
136
137   it('should test isToggled method',()=>{
138     expect(component.isToggled()).toBe(false);  
139   })
140
141   it('should test toggleSidebar method',()=>{
142     component.pushRightClass="kumar";
143     expect(component.toggleSidebar()).toBeUndefined;
144   })
145
146   it('should test on onLoggedout method',()=>{
147      expect(localStorage.getItem('isLoggedin')).toBeFalsy
148     })
149
150 });