Kalkuli/2018.2-Kalkuli_Front-End

View on GitHub
src/App.test.js

Summary

Maintainability
A
0 mins
Test Coverage
import './services/__mocks__/matchMedia'
import { App, mapStateToProps, mapDispatchToProps } from './App'
import { Route } from 'react-router-dom'

describe('Testing <App/>', () => {

  const spyOnAddAuthToken = jest.fn()

  let wrapper = null
  const props = {
    onAddAuthToken: spyOnAddAuthToken,
    auth_token: 'token'
  }

  beforeEach(() => {
    wrapper = shallow(<App {...props}/>)
  })

  it('should dispatch onAddAuthToken', () => {
    expect(spyOnAddAuthToken).toHaveBeenCalled()
  })

  it('should guard restrict routes to unloogged users', () => {
    wrapper.setProps({ auth_token: null })
    const restrictedRoute = wrapper.find('dashboard')
    expect(restrictedRoute.exists()).toBe(false)
  })

  it('should render restrict routes to logged users', () => {
    expect(wrapper.find(Route)).toHaveLength(8)
  })

  it('should get a not found when accessing an unknown route', () => {
    const notFoundReturn =  wrapper.instance().notFoundRoute()
    expect(notFoundReturn).toEqual(<h1>Not found</h1>)
  })

  it('should test mapStateToProps for retrieving auth_token', () => {
    const initialState = {
      auth_token: 'token'
    }
    expect(mapStateToProps(initialState).auth_token).toMatch('token')
  })

  it('should test mapDispatchToProps for dispatching onAddAuthToken', () => {
    const dispatch = jest.fn()
    mapDispatchToProps(dispatch).onAddAuthToken()
    expect(dispatch.mock.calls[0][0]).toEqual({type: 'ADD_AUTH_TOKEN'})
  })
})