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