mattermost-mobile/app/utils/document/index.test.ts
2024-07-11 20:18:55 +08:00

77 lines
2.6 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {Alert} from 'react-native';
import {alertFailedToOpenDocument, alertDownloadDocumentDisabled, alertDownloadFailed} from './';
import type {IntlShape} from 'react-intl';
jest.mock('react-native', () => ({
Alert: {
alert: jest.fn(),
},
}));
describe('alertUtils', () => {
const intlMock = {
formatMessage: jest.fn(),
} as unknown as IntlShape;
beforeEach(() => {
jest.clearAllMocks();
});
it('should alert failed to open document with correct messages', () => {
const file = {extension: 'pdf'} as FileInfo;
intlMock.formatMessage.
//@ts-expect-error type definition
mockReturnValueOnce('Open Document failed').
mockReturnValueOnce('An error occurred while opening the document. Please make sure you have a PDF viewer installed and try again.\n').
mockReturnValueOnce('OK');
alertFailedToOpenDocument(file, intlMock);
expect(Alert.alert).toHaveBeenCalledWith(
'Open Document failed',
'An error occurred while opening the document. Please make sure you have a PDF viewer installed and try again.\n',
[{text: 'OK'}],
);
});
it('should alert download document disabled with correct messages', () => {
intlMock.formatMessage.
//@ts-expect-error type definition
mockReturnValueOnce('Download disabled').
mockReturnValueOnce('File downloads are disabled on this server. Please contact your System Admin for more details.\n').
mockReturnValueOnce('OK');
alertDownloadDocumentDisabled(intlMock);
expect(Alert.alert).toHaveBeenCalledWith(
'Download disabled',
'File downloads are disabled on this server. Please contact your System Admin for more details.\n',
[{text: 'OK'}],
);
});
it('should alert download failed with correct messages', () => {
intlMock.formatMessage.
//@ts-expect-error type definition
mockReturnValueOnce('Download failed').
mockReturnValueOnce('An error occurred while downloading the file. Please check your internet connection and try again.\n').
mockReturnValueOnce('OK');
alertDownloadFailed(intlMock);
expect(Alert.alert).toHaveBeenCalledWith(
'Download failed',
'An error occurred while downloading the file. Please check your internet connection and try again.\n',
[{text: 'OK'}],
);
});
});