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