X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fapp.component.spec.ts;h=02b5fc667116186669ab661bdfdea0cb42bce629;hb=8ce8fccb49a3c082c9fde5f20335af8e85b41584;hp=ed040a06e479de02f10ae200dd6754913848be3e;hpb=2b1dd82418c73899e94d98a70d5996d5c7fd6923;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-frontend/src/app/app.component.spec.ts b/webapp-frontend/src/app/app.component.spec.ts index ed040a0..02b5fc6 100644 --- a/webapp-frontend/src/app/app.component.spec.ts +++ b/webapp-frontend/src/app/app.component.spec.ts @@ -26,9 +26,12 @@ import { UiService } from './services/ui/ui.service'; describe('AppComponent', () => { let fixture: ComponentFixture; + let app: AppComponent; + let cookieServiceSpy: any; + let uiService: UiService; beforeEach(async(() => { - const cookieSpy = jasmine.createSpyObj('CookieService', [ 'get' ]); + cookieServiceSpy = jasmine.createSpyObj('CookieService', [ 'get', 'put' ]); TestBed.configureTestingModule({ imports: [ RouterTestingModule @@ -40,7 +43,7 @@ describe('AppComponent', () => { AppComponent ], providers: [ - { provide: CookieService, useValue: cookieSpy }, + { provide: CookieService, useValue: cookieServiceSpy }, UiService ] }).compileComponents(); @@ -48,11 +51,12 @@ describe('AppComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(AppComponent); + app = fixture.componentInstance; + uiService = TestBed.inject(UiService); fixture.detectChanges(); }); it('should create the app', () => { - const app = fixture.componentInstance; expect(app).toBeTruthy(); }); @@ -62,6 +66,16 @@ describe('AppComponent', () => { expect(ele.src).toContain('assets/oran-logo.png'); })); + it('should contain navigation menu', async(() => { + const ele = fixture.debugElement.nativeElement.querySelector('nrcp-sidenav-list'); + expect(ele).toBeTruthy(); + })); + + it('should contain dark mode selector', async(() => { + const ele = fixture.debugElement.nativeElement.querySelector('#darkModeSwitch'); + expect(ele).toBeTruthy(); + })); + it('should contain heading', async(() => { const ele = fixture.debugElement.nativeElement.querySelector('tspan'); expect(ele.textContent.trim()).toBe('Non-RT RIC Control Panel'); @@ -77,4 +91,32 @@ describe('AppComponent', () => { expect(ele).toBeTruthy(); })); }); + + describe('#darkMode', () => { + it('when dark mode value yes from cookie at start should set mode to dark', () => { + uiService.darkModeState.next(false); // Set internal state to light mode. + cookieServiceSpy.get.and.returnValue('yes'); // Cookie shall return dark mode used. + + app.ngOnInit(); + + expect(uiService.getDarkMode()).toBeTruthy(); + expect(app.darkMode).toBeTruthy(); + expect(cookieServiceSpy.get).toHaveBeenCalled(); + }); + + it('should toggle dark mode when selector is clicked', () => { + const darkModeSelector = fixture.debugElement.nativeElement.querySelector('#darkModeSwitch'); + + // Toggle to light mode + darkModeSelector.click(); + expect(uiService.getDarkMode()).toBeFalsy(); + expect(cookieServiceSpy.put).toHaveBeenCalledWith('darkMode', 'no'); + + + // Toggle to dark mode + darkModeSelector.click(); + expect(uiService.getDarkMode()).toBeTruthy(); + expect(cookieServiceSpy.put).toHaveBeenCalledWith('darkMode', 'yes'); + }); + }); });