ldx-widgets
Version:
widgets
114 lines (65 loc) • 3.05 kB
text/coffeescript
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)