// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import React from 'react'; import {shallow} from 'enzyme'; import Preferences from '@mm-redux/constants/preferences'; import {DeviceTypes} from 'app/constants'; import MainSidebar from 'app/components/sidebars/main/main_sidebar.ios'; import SidebarSettings from './index'; jest.mock('react-intl'); jest.mock('app/mattermost_managed', () => ({ isRunningInSplitView: jest.fn().mockResolvedValue(false), addEventListener: jest.fn(), })); describe('SidebarSettings', () => { const baseProps = { theme: Preferences.THEMES.default, isLandscape: false, }; test('should match, full snapshot', async () => { const wrapper = shallow( , ); expect(wrapper.getElement()).toMatchSnapshot(); await wrapper.instance().loadSetting(); expect(wrapper.getElement()).toMatchSnapshot(); }); test('should set the Permanent Sidebar value to false', async () => { const wrapper = shallow( , ); await wrapper.instance().loadSetting(); expect(wrapper.state('enabled')).toBe(false); }); test('should set the Permanent Sidebar value to true and update the sidebar', async () => { DeviceTypes.IS_TABLET = true; const wrapper = shallow( , ); const mainProps = { actions: { getTeams: jest.fn(), logChannelSwitch: jest.fn(), makeDirectChannel: jest.fn(), setChannelDisplayName: jest.fn(), setChannelLoading: jest.fn(), joinChannel: jest.fn(), }, blurPostTextBox: jest.fn(), currentTeamId: 'current-team-id', currentUserId: 'current-user-id', deviceWidth: 10, isLandscape: false, teamsCount: 2, theme: Preferences.THEMES.default, }; const mainSidebar = shallow( , ); await wrapper.instance().loadSetting(); expect(wrapper.state('enabled')).toBe(false); await wrapper.instance().saveSetting(true); expect(wrapper.state('enabled')).toBe(true); expect(mainSidebar.state('permanentSidebar')).toBe(true); }); });