// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import React from 'react'; import Preferences from '@mm-redux/constants/preferences'; import {shallowWithIntl} from 'test/intl-test-helper'; import SavedPosts from './saved_posts'; describe('SavedPosts', () => { const baseProps = { actions: { clearSearch: jest.fn(), getPostThread: jest.fn(), getFlaggedPosts: jest.fn(), showPermalink: jest.fn(), selectPost: jest.fn(), }, theme: Preferences.THEMES.default, }; test('should match snapshot', () => { const wrapper = shallowWithIntl( , ); expect(wrapper.getElement()).toMatchSnapshot(); }); test('should match snapshot when getFlaggedPosts failed', async () => { const error = new Error('foo'); const newProps = { ...baseProps, actions: { ...baseProps.actions, getFlaggedPosts: jest.fn().mockResolvedValue({error}), }, }; const wrapper = shallowWithIntl( , ); await wrapper.instance().getFlaggedPosts(); expect(wrapper.state('didFail')).toBe(true); expect(wrapper.getElement()).toMatchSnapshot(); }); test('should match snapshot when component waiting for response', () => { const error = new Error('foo'); const newProps = { ...baseProps, actions: { ...baseProps.actions, getFlaggedPosts: jest.fn().mockResolvedValue({error}), }, }; const wrapper = shallowWithIntl( , ); wrapper.instance().getFlaggedPosts(); expect(wrapper.getElement()).toMatchSnapshot(); expect(wrapper.state('isLoading')).toBe(true); }); });