// 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 EphemeralStore from '@store/ephemeral_store'; import Uploads from './uploads'; describe('Uploads', () => { const baseProps = { canUploadFiles: true, channelId: 'channel-id', files: [], filesUploadingForCurrentChannel: true, handleRemoveLastFile: jest.fn(), initUploadFiles: jest.fn(), maxFileSize: 100, theme: Preferences.THEMES.default, }; test('handleUploadFiles should return early if screen is not the top screen', async () => { const topScreenId = 'top-screen'; EphemeralStore.getNavigationTopComponentId = jest.fn(() => (topScreenId)); const props = { ...baseProps, screenId: `not-${topScreenId}`, }; const wrapper = shallow( , ); const instance = wrapper.instance(); instance.handleFileSizeWarning = jest.fn(); await instance.handleUploadFiles([]); expect(instance.handleFileSizeWarning).not.toHaveBeenCalled(); expect(props.initUploadFiles).not.toHaveBeenCalled(); }); test('handlePasteFiles should display an error if uploads are disabled', () => { const topScreenId = 'top-screen'; EphemeralStore.getNavigationTopComponentId = jest.fn(() => (topScreenId)); const props = { ...baseProps, canUploadFiles: false, screenId: topScreenId, }; const wrapper = shallow( , ); const instance = wrapper.instance(); instance.showPasteFilesErrorDialog = jest.fn(); instance.handleUploadDisabled = jest.fn(); instance.handlePasteFiles(undefined, []); expect(instance.showPasteFilesErrorDialog).not.toHaveBeenCalled(); expect(instance.handleUploadDisabled).toHaveBeenCalled(); }); });