import { prepareDataForSubmit } from '../IncidentsCardInfo/helpers';
import { IncidentEdit } from 'myApi';
import {
  incident,
  incident2,
  incident3,
  incident4,
  incident5,
  incident6,
  incident7,
  incident8,
} from '../MOCK';

describe('Подготовка данных перед отправкой на бэк для изменения данных инцидента', () => {
  test('Данные заполнены полностью', () => {
    const data: IncidentEdit = prepareDataForSubmit(incident);
    expect(data).toEqual({
      deadline: '2022-04-22',
      assigned_to: 1,
      status: 1,
      comment: 'Коментарий первого инцидента',
    });
  });

  test('Не выбран deadline', () => {
    const data: IncidentEdit = prepareDataForSubmit(incident2);
    expect(data).toEqual({
      deadline: null,
      assigned_to: 1,
      status: 1,
      comment: 'Коментарий второго инцидента',
    });
  });

  test('Статус "Не назначено" ', () => {
    const data: IncidentEdit = prepareDataForSubmit(incident3);
    expect(data).toEqual({
      deadline: '2022-04-21',
      assigned_to: null,
      status: 0,
      comment: 'Коментарий третьего инцидента',
    });
  });

  test('Статус "Назначено на" ', () => {
    const data: IncidentEdit = prepareDataForSubmit(incident4);
    expect(data).toEqual({
      deadline: '2022-04-21',
      assigned_to: 1,
      status: 1,
      comment: 'Коментарий четвертого инцидента',
    });
  });

  test('Статус "Отложен" без дедлайна и назначения', () => {
    const data: IncidentEdit = prepareDataForSubmit(incident5);
    expect(data).toEqual({
      deadline: '2022-04-21',
      assigned_to: null,
      status: 2,
      comment: 'Коментарий пятого инцидента',
    });
  });

  test('Статус "Отложен" без дедлайна с назначением', () => {
    const data: IncidentEdit = prepareDataForSubmit(incident6);
    expect(data).toEqual({
      deadline: null,
      assigned_to: 1,
      status: 2,
      comment: null,
    });
  });

  test('Статус "Отложен" с дедлайном и назначением ', () => {
    const data: IncidentEdit = prepareDataForSubmit(incident7);
    expect(data).toEqual({
      deadline: '2022-04-25',
      assigned_to: 1,
      status: 2,
      comment: 'Коментарий седьмого инцидента',
    });
  });

  test('Статус Решенный', () => {
    const data: IncidentEdit = prepareDataForSubmit(incident8);
    expect(data).toEqual({
      deadline: '2022-04-25',
      assigned_to: 1,
      status: 3,
      comment: 'Коментарий седьмого инцидента',
    });
  });
});
