wahanegi/vibereport

View on GitHub
app/javascript/components/__tests__/ProductivityBadFollowUp.test.js

Summary

Maintainability
A
0 mins
Test Coverage
import React from 'react';
import { render, fireEvent, screen } from '@testing-library/react';
import '@testing-library/jest-dom';
import {MemoryRouter} from 'react-router-dom';
import ProductivityBadFollowUp from "../Pages/ProductivityBadFollowUp";

const mockService = {
  isLoading: false,
  error: null,
};
  
const data = {
  response: {
    attributes: {
      productivity_comment: "",
    },
  },
};
const setData = jest.fn();

const productivityBadFollowUpProps = {
  data,
  setData,
  saveDataToDb: () => {},
  steps: [],
  service: mockService,
  draft: false,
};

describe('ProductivityBadFollowUp', () => {
  test('checking components for crashing', () => {
    render(
      <MemoryRouter>
        <ProductivityBadFollowUp {...productivityBadFollowUpProps} />
      </MemoryRouter>
      );
  });

  it('render page ProductivityBadFollowUp', () => {
    render(
      <MemoryRouter>
        <ProductivityBadFollowUp {...productivityBadFollowUpProps} />
      </MemoryRouter>
      );
    expect(screen.getByText('It\'s like that sometimes...')).toBeInTheDocument();
    expect(screen.getByText('Reflect on what you think limited your productivity...')).toBeInTheDocument();
  });

  it('should update the bad_follow_comment state when the comment input is changed', () => {
    const { getByPlaceholderText } = render(
      <MemoryRouter>
        <ProductivityBadFollowUp {...productivityBadFollowUpProps} />
      </MemoryRouter>
    );
    const commentInput = getByPlaceholderText('Is there anything that we can do to help?');
    fireEvent.change(commentInput, { target: { value: 'Test comment' } });
    expect(commentInput.value).toBe('Test comment');
  });
});