Home Reference Source Repository

src/components/__tests__/adminnav-test.js

'use strict'
import React from 'react'
import TestUtils from 'react/lib/ReactTestUtils'
import expect from 'expect'
import AdminNav from '../admin/AdminNav/AdminNav'

describe('AdminNav component', () => {
  const auth = {
    logoutLoading: false,
    logoutError: true,
    logoutErrMessage: 'Error'
  }
  const location = {
    pathname: '/admin'
  }
  let token = ''
  const newToken = 'AAABBB111222'
  const testFunc = (_token) => {
    token = _token
  }
  const adminNav = TestUtils.renderIntoDocument(<AdminNav onClick={() => testFunc(newToken)} auth={auth} location={location} />)
  it('renders into document', () => {
    expect(adminNav).toExist()
  })
  it('hides back button if showBackBtn is false', () => {
    const hasClass = TestUtils.findRenderedDOMComponentWithClass(adminNav, 'hide')
    expect(hasClass).toExist()
  })
  it('should call testFunc on click', function () {
    const buttonTag = TestUtils.findRenderedDOMComponentWithTag(adminNav, 'button')
    TestUtils.Simulate.click(buttonTag)
    expect(buttonTag).toExist()
    expect(token).toEqual(newToken)
  })
})