import {DashboardsProvider} from '@bthlabs/homehub-core'; import {shallow} from 'enzyme'; import React from 'react'; import {DashboardContainer, TaskbarContainer} from 'src/main/containers'; import {StateDataSource} from 'src/main/dataSources'; import * as AppView from 'src/main/views/AppView'; import {SettingsFactory} from 'tests/__fixtures__/settings'; describe('src/main/views/AppView', () => { describe('AppView', () => { let fakeActions = null; let fakeSetings = null; beforeEach(() => { fakeActions = { setDocumentTitle: jasmine.createSpy(), }; fakeSetings = SettingsFactory(); }); describe('componentDidMount', () => { it('calls the setDocumentTitle action', () => { // Given const component = shallow( ); // When component.instance().componentDidMount(); // Then expect(fakeActions.setDocumentTitle).toHaveBeenCalledWith( jasmine.any(String) ); }); }); describe('render', () => { it('configures and renders the DashboardsProvider', () => { // Given const component = shallow( ); // When const dashboardsProvider = component.find(DashboardsProvider).at(0); // Then expect(dashboardsProvider.exists()).toBe(true); expect(dashboardsProvider.prop('loader')).toBeDefined(); expect(dashboardsProvider.prop('loadDashboards')).toEqual( StateDataSource.loadState ); expect(dashboardsProvider.prop('saveDashboards')).toEqual( StateDataSource.saveState ); expect(dashboardsProvider.prop('settings')).toEqual(fakeSetings); }); it('configures and renders the DashboardContainer', () => { // Given const component = shallow( ); // When const dashboardContainer = component.find(DashboardContainer).at(0); // Then expect(dashboardContainer.exists()).toBe(true); }); it('configures and renders the TaskbarContainer', () => { // Given const component = shallow( ); // When const taskbarContainer = component.find(TaskbarContainer).at(0); // Then expect(taskbarContainer.exists()).toBe(true); }); }); }); });