prometheus

Форк
0
/
TimeInput.test.tsx 
61 строка · 2.0 Кб
1
import * as React from 'react';
2
import { shallow } from 'enzyme';
3
import sinon from 'sinon';
4
import TimeInput from './TimeInput';
5
import { Button, InputGroup, InputGroupAddon, Input } from 'reactstrap';
6
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
7
import { faChevronLeft, faChevronRight, faTimes } from '@fortawesome/free-solid-svg-icons';
8

9
describe('TimeInput', () => {
10
  const timeInputProps = {
11
    time: 1572102237932,
12
    range: 60 * 60 * 7,
13
    placeholder: 'time input',
14
    onChangeTime: (): void => {
15
      // Do nothing.
16
    },
17
    useLocalTime: false,
18
  };
19
  const timeInput = shallow(<TimeInput {...timeInputProps} />);
20
  it('renders the string "scalar"', () => {
21
    const inputGroup = timeInput.find(InputGroup);
22
    expect(inputGroup.prop('className')).toEqual('time-input');
23
    expect(inputGroup.prop('size')).toEqual('sm');
24
  });
25

26
  it('renders buttons to adjust time', () => {
27
    [
28
      {
29
        position: 'prepend',
30
        title: 'Decrease time',
31
        icon: faChevronLeft,
32
      },
33
      {
34
        position: 'append',
35
        title: 'Clear time',
36
        icon: faTimes,
37
      },
38
      {
39
        position: 'append',
40
        title: 'Increase time',
41
        icon: faChevronRight,
42
      },
43
    ].forEach((button) => {
44
      const onChangeTime = sinon.spy();
45
      const timeInput = shallow(<TimeInput {...timeInputProps} onChangeTime={onChangeTime} />);
46
      const addon = timeInput.find(InputGroupAddon).filterWhere((addon) => addon.prop('addonType') === button.position);
47
      const btn = addon.find(Button).filterWhere((btn) => btn.prop('title') === button.title);
48
      const icon = btn.find(FontAwesomeIcon);
49
      expect(icon.prop('icon')).toEqual(button.icon);
50
      expect(icon.prop('fixedWidth')).toBe(true);
51
      btn.simulate('click');
52
      expect(onChangeTime.calledOnce).toBe(true);
53
    });
54
  });
55

56
  it('renders an Input', () => {
57
    const input = timeInput.find(Input);
58
    expect(input.prop('placeholder')).toEqual(timeInputProps.placeholder);
59
    expect(input.prop('innerRef')).toEqual({ current: null });
60
  });
61
});
62

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.