UNPKG

ldx-widgets

Version:

widgets

114 lines (65 loc) 3.05 kB
describe 'PDFViewer', -> React = require 'react' PDFViewer = React.createFactory require('../../src/components/pdf_viewer') TestUtils = require 'react-dom/test-utils' ReactDOM = require 'react-dom' catchSpy = sinon.spy() window.PDFJS = getDocument: (params) -> then: -> catch: catchSpy #--------------------------------------------------------------------- Default Props it 'Should have default props', -> pdfViewer = TestUtils.renderIntoDocument PDFViewer {} defaultProps = pdfViewer.props expect(defaultProps.showPageDividers).to.equal(yes) expect(defaultProps.intent).to.equal('display') #--------------------------------------------------------------------- Render it 'Should Render the number of canvas pages based on the totalPages from state', -> pdfViewer = TestUtils.renderIntoDocument PDFViewer {} pdfViewer.setState totalPages: 5 # getting all canvas pages pages = TestUtils.scryRenderedDOMComponentsWithClass pdfViewer, 'pdf-canvas' expect(pages.length).to.equal(pdfViewer.state.totalPages) it 'Should Render the appropriate number of page dividers if showPageDivider is true and intent isnt print', -> pdfViewer = TestUtils.renderIntoDocument PDFViewer {} pdfViewer.setState totalPages: 5 # getting pageDivider divs pageDivider = TestUtils.scryRenderedDOMComponentsWithClass pdfViewer, 'pdf-page-divide' expect(pageDivider.length).to.equal(pdfViewer.state.totalPages-1) it 'Should NOT Render the page dividers if showPageDivider is false', -> pdfViewer = TestUtils.renderIntoDocument PDFViewer { showPageDividers: false } pdfViewer.setState totalPages: 5 # getting pageDivider divs pageDivider = TestUtils.scryRenderedDOMComponentsWithClass pdfViewer, 'pdf-page-divide' expect(pageDivider.length).to.equal(0) it 'Should NOT Render the page dividers if intent is equal to print', -> pdfViewer = TestUtils.renderIntoDocument PDFViewer { intent: 'print' } pdfViewer.setState totalPages: 5 # getting pageDivider divs pageDivider = TestUtils.scryRenderedDOMComponentsWithClass pdfViewer, 'pdf-page-divide' expect(pageDivider.length).to.equal(0) #--------------------------------------------------------------------- Click handling it 'Should call the onClick prop when a canvas page is clicked', -> onClick = sinon.spy() pdfViewer = TestUtils.renderIntoDocument PDFViewer { onClick: onClick } pages = TestUtils.scryRenderedDOMComponentsWithClass pdfViewer, 'pdf-canvas' canvasPage1 = pages[0] TestUtils.Simulate.click canvasPage1 expect(onClick.calledOnce).to.equal(true) pdfViewer.setState totalPages: 5 pages = TestUtils.scryRenderedDOMComponentsWithClass pdfViewer, 'pdf-canvas' canvasPage4 = pages[3] TestUtils.Simulate.click canvasPage4 expect(onClick.calledTwice).to.equal(true)