+
+ 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');
+ });
+ });