Home Reference Source

src/components/controls/InputSelectTreeOldDeprecated/InputSelectTree.test.old.js

import React from 'react';
import { mount } from 'enzyme';

import InputSelectTree from '../InputSelectTree/InputSelectTree';

const setup = (propOverrides = {}) => {
  const props = Object.assign(
    {
      loading: false,
      value: '',
      disabled: false,
      placeholder: 'test',
      valueFieldId: 'id',
      labelFieldId: 'id',
      filter: 'includes',
      resetOnBlur: false,
      disabledValues: [],
      hasChildrenFieldId: true,
      options: [
        {
          id: '123412',
          parentId: '',
          icon: 'fa fa-square',
          image: 'https://i.stack.imgur.com/2zqqC.jpg',
          hasChildren: true,
        },
        {
          id: '33',
          parentId: '123412',
          icon: 'fa fa-square',
          image: 'https://i.stack.imgur.com/2zqqC.jpg',
          hasChildren: false,
        },
      ],
    },
    propOverrides
  );

  const wrapper = mount(<InputSelectTree {...props} />);

  return {
    props,
    wrapper,
  };
};

describe('<InputSelectTree />', () => {
  it('проверяет создание элемента', () => {
    const { wrapper } = setup();

    expect(wrapper.find('div.n2o-input-select').exists()).toBeTruthy();
  });

  it('проверяет создание детей', () => {
    const { wrapper } = setup();

    expect(
      wrapper.find('ui.n2o-tree-select-item > li.n2o-tree-select').exists()
    ).toBeTruthy();
  });

  it('проверяет наличие кнопки раскрытия', () => {
    const { wrapper } = setup();

    expect(wrapper.find('span.tree-toggle').exists()).toBeTruthy();
  });

  it('проверяет раскрытие детей', () => {
    const { wrapper } = setup();

    expect(
      wrapper
        .find('ui.n2o-tree-select-item')
        .first()
        .children()
        .at(1)
        .props().style.display
    ).toBe('none');
    wrapper
      .find('span.tree-toggle')
      .first()
      .simulate('click');
    expect(
      wrapper
        .find('ui.n2o-tree-select-item')
        .first()
        .children()
        .at(1)
        .props().style.display
    ).toBe('block');
  });

  it('проверяет чекбокс', () => {
    const { wrapper } = setup({ hasCheckboxes: true });

    expect(
      wrapper
        .find('input.custom-control-input')
        .first()
        .props().checked
    ).toBeFalsy();
    wrapper
      .find('button.dropdown-item')
      .first()
      .simulate('click');
    expect(
      wrapper
        .find('input.custom-control-input')
        .first()
        .props().checked
    ).toBeTruthy();
  });
});