forked from Ivasoft/mattermost-mobile
* Update screens * Update login tests * Remove done * Fix failing tests * Update screens and components * Check styles fix * Update tests * Prevent setState call after component unmounts * Add empty setButtons func to dummy navigator * Remove platform check * Remove Platform import * Update react-native-navigation version * Add separate showModalOverCurrentContext function * check-style fixes * Remove overriding of AppDelegate's window * Fix modal over current context animation * Add showSearchModal navigation action * Check-style fix * Address review comments * Update SettingsSidebar and children * Update EditProfile screen * Update SettingsSidebar * Keep track of latest componentId to appear * Track componentId in state to use in navigation actions * Update FlaggedPosts and children * Update RecentMentions * Update Settings * Store componentIds in ephemeral store * Update AttachmentButton * Remove unnecessary dismissModal * Fix typo * Check-style fix * Address review comments
77 lines
2.2 KiB
JavaScript
77 lines
2.2 KiB
JavaScript
// 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 'mattermost-redux/constants/preferences';
|
|
|
|
import {VALID_MIME_TYPES} from 'app/screens/edit_profile/edit_profile';
|
|
import AttachmentButton from './attachment_button';
|
|
|
|
jest.mock('react-intl');
|
|
|
|
describe('AttachmentButton', () => {
|
|
const baseProps = {
|
|
actions: {
|
|
showModalOverCurrentContext: jest.fn(),
|
|
},
|
|
theme: Preferences.THEMES.default,
|
|
blurTextBox: jest.fn(),
|
|
maxFileSize: 10,
|
|
uploadFiles: jest.fn(),
|
|
};
|
|
|
|
test('should match snapshot', () => {
|
|
const wrapper = shallow(
|
|
<AttachmentButton {...baseProps}/>
|
|
);
|
|
|
|
expect(wrapper.getElement()).toMatchSnapshot();
|
|
});
|
|
|
|
test('should not upload file with invalid MIME type', () => {
|
|
const props = {
|
|
...baseProps,
|
|
validMimeTypes: VALID_MIME_TYPES,
|
|
onShowUnsupportedMimeTypeWarning: jest.fn(),
|
|
};
|
|
|
|
const wrapper = shallow(
|
|
<AttachmentButton {...props}/>
|
|
);
|
|
|
|
const file = {
|
|
type: 'image/gif',
|
|
fileSize: 10,
|
|
fileName: 'test',
|
|
};
|
|
wrapper.instance().uploadFiles([file]);
|
|
expect(props.onShowUnsupportedMimeTypeWarning).toHaveBeenCalled();
|
|
expect(props.uploadFiles).not.toHaveBeenCalled();
|
|
});
|
|
|
|
test('should upload file with valid MIME type', () => {
|
|
const props = {
|
|
...baseProps,
|
|
validMimeTypes: VALID_MIME_TYPES,
|
|
onShowUnsupportedMimeTypeWarning: jest.fn(),
|
|
};
|
|
|
|
const wrapper = shallow(
|
|
<AttachmentButton {...props}/>
|
|
);
|
|
|
|
const file = {
|
|
fileSize: 10,
|
|
fileName: 'test',
|
|
};
|
|
VALID_MIME_TYPES.forEach((mimeType) => {
|
|
file.type = mimeType;
|
|
wrapper.instance().uploadFiles([file]);
|
|
expect(props.onShowUnsupportedMimeTypeWarning).not.toHaveBeenCalled();
|
|
expect(props.uploadFiles).toHaveBeenCalled();
|
|
});
|
|
});
|
|
});
|