Rocket.Chat.ReactNative/app/containers/MessageComposer/helpers/forceJpgExtension.test.ts

108 lines
3.2 KiB
TypeScript

import { Image } from 'react-native-image-crop-picker';
import { forceJpgExtension } from './forceJpgExtension';
const attachment: Image = {
exif: null,
filename: 'IMG_0040.PNG',
path: 'tmp/temp',
height: 534,
width: 223,
data: null,
modificationDate: '1643984790',
localIdentifier: 'device/L0/001',
size: 16623,
sourceURL: '',
mime: 'image/jpeg',
cropRect: null,
creationDate: '1641490665'
};
describe('forceJpgExtension for iOS', () => {
jest.mock('react-native', () => ({ Platform: { OS: 'ios' } }));
describe('with mime as image/jpeg', () => {
test('filename.jpg should be filename.jpg', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.jpg';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.jpg');
});
test('filename.png should be filename.jpg', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.png';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.jpg');
});
test('filename.jpeg should be filename.jpg', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.jpeg';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.jpg');
});
test('filename.heic should be filename.jpg', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.heic';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.jpg');
});
});
describe('with mime different', () => {
test('filename.jpg should be filename.jpg', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.png';
newAttachment.mime = 'image/png';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.png');
});
});
});
describe('forceJpgExtension for android', () => {
jest.mock('react-native', () => ({ Platform: { OS: 'android' } }));
describe('with mime as image/jpeg', () => {
test('filename.jpg should be filename.jpg', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.jpg';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.jpg');
});
test('filename.png should be filename.png', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.png';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.png');
});
test('filename.jpeg should be filename.jpeg', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.jpeg';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.jpeg');
});
test('filename.heic should be filename.heic', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.heic';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.heic');
});
});
describe('with mime different', () => {
test('filename.jpg should be filename.jpg', () => {
const newAttachment = attachment;
newAttachment.filename = 'filename.png';
newAttachment.mime = 'image/png';
const file = forceJpgExtension(newAttachment);
expect(file.filename).toBe('filename.png');
});
});
});