UNPKG

@peergrade/react-pdf

Version:

Display PDFs in your React app as easily as if they were images.

87 lines (68 loc) 1.93 kB
import React from 'react'; import { shallow } from 'enzyme'; import { pdfjs } from '../../entry.jest'; import { TextLayerItemInternal as TextLayerItem } from '../TextLayerItem'; import { loadPDF } from '../../__tests__/utils'; const pdfFile = loadPDF('./__mocks__/_pdf.pdf'); /* eslint-disable comma-dangle */ describe('TextLayerItem', () => { // Loaded page let page; beforeAll(async () => { const pdf = await pdfjs.getDocument({ data: pdfFile.arrayBuffer }); page = await pdf.getPage(1); }); const defaultProps = { fontName: '', itemIndex: 0, str: 'Test', transform: [], width: 0, }; describe('rendering', () => { it('renders text content properly', () => { const str = 'Test string'; const component = shallow( <TextLayerItem {...defaultProps} page={page} str={str} /> ); const textItem = component.text(); expect(textItem).toEqual(str); }); it('calls customTextRenderer with necessary arguments', () => { const customTextRenderer = jest.fn(); const str = 'Test string'; const itemIndex = 5; shallow( <TextLayerItem {...defaultProps} customTextRenderer={customTextRenderer} itemIndex={itemIndex} page={page} str={str} /> ); expect(customTextRenderer).toBeCalledWith( expect.objectContaining({ str, itemIndex, }), ); }); it('renders text content properly given customTextRenderer', () => { const customTextRenderer = () => 'Test value'; const component = shallow( <TextLayerItem {...defaultProps} customTextRenderer={customTextRenderer} page={page} /> ); const textItem = component.text(); expect(textItem).toEqual('Test value'); }); }); });