// 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(
,
{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(
,
{database, serverUrl},
);
fireEvent.press(getByTestId('remove-button-fileId'));
expect(removeDraftFile).toHaveBeenCalledWith(serverUrl, 'channelId', 'rootId', 'clientId');
});
});