Home Reference Source Test

src/DataContainer.test.js

import React from 'react';
import {Provider} from 'react-redux';
import {render} from '@testing-library/react';
import {createStore} from 'redux';

import DataContainer from './DataContainer';

describe('DataContainer', () => {
  /** @test {DataContainer} */
  it('displays a table with the current data', () => {
    const initialState = {
      data: {
        current: {
          name: 'foo',
          columns: ['bar', 'baz'],
          data: [{bar: 1, baz: 2}],
        },
      },
    };
    const mockStore = createStore(() => initialState, initialState);
    const {container} = render(
      <Provider store={mockStore}>
        <DataContainer />
      </Provider>
    );

    // Check that the table is rendered with correct content
    expect(container.querySelector('.ReactTable')).toBeInTheDocument();
    expect(container).toHaveTextContent('Data for selected expression');
    expect(container).toHaveTextContent('bar');
    expect(container).toHaveTextContent('baz');
    expect(container).toHaveTextContent('1');
    expect(container).toHaveTextContent('2');
  });
});