rofrischmann/fela

View on GitHub
packages/fela-integration/src/jest-react-fela_react-fela/__tests__/RendererProviderFactory-test.js

Summary

Maintainability
A
0 mins
Test Coverage
import 'raf/polyfill'
import React, { Component } from 'react'
import { render } from 'react-dom'

import { createRenderer } from 'fela'
import { RendererProvider } from 'react-fela'

const mockCallback = jest.fn()

jest.mock('fela-dom', () => ({
  rehydrate: () => mockCallback('rehydrate'),
  render: () => mockCallback('render'),
}))

afterAll(() => {
  jest.unmock('fela-dom')
})

describe('RendererProviderFactory', () => {
  beforeEach(() => {
    mockCallback.mockClear()
  })

  it('should do the initial render before childrens componentDidMount hook', () => {
    class Child extends Component {
      componentDidMount() {
        mockCallback('didMount')
      }

      render() {
        return <div>Hello World</div>
      }
    }

    render(
      <RendererProvider rehydrate renderer={createRenderer()}>
        <Child />
      </RendererProvider>,
      document.createElement('div')
    )

    expect(mockCallback.mock.calls.length).toBe(2)
    expect(mockCallback.mock.calls[0][0]).toBe('render')
    expect(mockCallback.mock.calls[1][0]).toBe('didMount')
  })
})