* Viewing Files in Edit mode in mobile with ability to delete and save * Added upload attachment to keyboard tracker view * using state instread of use ref * Minor * Added tests * intl extract * new function getFiles ById, batch file deletion and tests * Files fetching in edit options and tests * Removed DeviceEventEmitter and used React context * Added support to check minimum required version to show edit file attachments * resolve forward ref issue * Minor * memotized props for context and observe config with value * Import fixes * Ability to show quick action and add files to edit post * type safety for EditPostContext * Reverted back the post priority props * constant shift * Added test for QuickAction to show slashcomand * Added test for edit_post, upload_item and upload_remove * Added test for Edit_post_input and edit_post index * fix the height issue between attachment and keyboard due to safeArea * Minor: removed debugging border color * Addressed dev review comments * Import fixes * Address UX comments * Fixed props for UploadItem and remove effective Edit mode * handled save button disabled state when uploading attachments * handled newly added and retry file removal without alert message * Test updated * Added test for input_quick_action index.tsx * Added test for not in edit mode for upload_item index * Added test for upload_remove component when not in edit mode * added tests for file_upload_error hook * Added test for calling callback when in edit mode * Test for edit post input for server version check
67 lines
2 KiB
TypeScript
67 lines
2 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {removeDraftFile} from '@actions/local/draft';
|
|
import {fireEvent, renderWithEverything} from '@test/intl-test-helper';
|
|
import TestHelper from '@test/test_helper';
|
|
|
|
import UploadRemove from './upload_remove';
|
|
|
|
import type {Database} from '@nozbe/watermelondb';
|
|
|
|
jest.mock('@context/edit_post', () => ({
|
|
useEditPost: jest.fn(),
|
|
}));
|
|
|
|
jest.mock('@actions/local/draft', () => ({
|
|
removeDraftFile: jest.fn(),
|
|
}));
|
|
|
|
const {useEditPost} = require('@context/edit_post');
|
|
|
|
describe('UploadRemove', () => {
|
|
const serverUrl = 'serverUrl';
|
|
let database: Database;
|
|
|
|
beforeEach(async () => {
|
|
database = (await TestHelper.setupServerDatabase(serverUrl)!).database;
|
|
});
|
|
|
|
it('should call onFileRemove when isEditMode is true', () => {
|
|
const onFileRemove = jest.fn();
|
|
jest.mocked(useEditPost).mockReturnValue({
|
|
onFileRemove,
|
|
isEditMode: true,
|
|
});
|
|
|
|
const {getByTestId} = renderWithEverything(
|
|
<UploadRemove
|
|
channelId='channelId'
|
|
rootId='rootId'
|
|
clientId='clientId'
|
|
fileId='fileId'
|
|
/>,
|
|
{database},
|
|
);
|
|
fireEvent.press(getByTestId('remove-button-fileId'));
|
|
expect(onFileRemove).toHaveBeenCalledWith('fileId');
|
|
});
|
|
|
|
it('should call removeDraftFile when isEditMode is false', () => {
|
|
jest.mocked(useEditPost).mockReturnValue({
|
|
isEditMode: false,
|
|
});
|
|
|
|
const {getByTestId} = renderWithEverything(
|
|
<UploadRemove
|
|
channelId='channelId'
|
|
rootId='rootId'
|
|
clientId='clientId'
|
|
fileId='fileId'
|
|
/>,
|
|
{database, serverUrl},
|
|
);
|
|
fireEvent.press(getByTestId('remove-button-fileId'));
|
|
expect(removeDraftFile).toHaveBeenCalledWith(serverUrl, 'channelId', 'rootId', 'clientId');
|
|
});
|
|
});
|