RocketChat/Rocket.Chat

View on GitHub
ee/packages/pdf-worker/src/templates/ChatTranscript/components/Files.spec.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import { render } from '@testing-library/react';
import type { ReactNode } from 'react';

import { invalidFile, validFile } from '../ChatTranscript.fixtures';
import { Files } from './Files';

jest.mock('@react-pdf/renderer', () => ({
    StyleSheet: { create: () => ({ style: '' }) },
    Image: () => <img src='' alt='' />,
    Text: ({ children }: { children: ReactNode }) => <div>{children}</div>,
    View: ({ children }: { children: ReactNode }) => <div>{children}</div>,
}));

describe('components/Files', () => {
    it('should renders file name and invalid message when buffer is null', () => {
        const { getByText } = render(<Files files={[invalidFile]} invalidMessage='invalid' />);
        const invalidText = getByText('invalid');
        const fileName = getByText(invalidFile.name);

        expect(invalidText).toBeInTheDocument();
        expect(fileName).toBeInTheDocument();
    });

    it('should renders file name and image when buffer is not null', () => {
        const { getByRole, getByText } = render(<Files files={[validFile]} invalidMessage='' />);
        const image = getByRole('img');
        const fileName = getByText(validFile.name);

        expect(image).toBeInTheDocument();
        expect(fileName).toBeInTheDocument();
    });
});