| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- import React from 'react';
- import { shallow } from 'enzyme';
- import Thresholds from './Thresholds';
- import { OptionsProps } from './module';
- import { PanelOptionsProps } from '../../../types';
- const setup = (propOverrides?: object) => {
- const props: PanelOptionsProps<OptionsProps> = {
- onChange: jest.fn(),
- options: {} as OptionsProps,
- };
- Object.assign(props, propOverrides);
- return shallow(<Thresholds {...props} />).instance() as Thresholds;
- };
- const thresholds = [
- { index: 0, label: 'Min', value: 0, canRemove: false, color: 'rgba(50, 172, 45, 0.97)' },
- { index: 1, label: '', value: 50, canRemove: true, color: 'rgba(237, 129, 40, 0.89)' },
- { index: 2, label: 'Max', value: 100, canRemove: false },
- ];
- describe('Add threshold', () => {
- it('should add threshold between min and max', () => {
- const instance = setup();
- instance.onAddThreshold(1);
- expect(instance.state.thresholds).toEqual([
- { index: 0, label: 'Min', value: 0, canRemove: false, color: 'rgba(50, 172, 45, 0.97)' },
- { index: 1, label: '', value: 50, canRemove: true, color: 'rgba(237, 129, 40, 0.89)' },
- { index: 2, label: 'Max', value: 100, canRemove: false },
- ]);
- });
- it('should add threshold between min and added threshold', () => {
- const instance = setup({
- options: { thresholds: thresholds },
- });
- instance.onAddThreshold(1);
- expect(instance.state.thresholds).toEqual([
- { index: 0, label: 'Min', value: 0, canRemove: false, color: 'rgba(50, 172, 45, 0.97)' },
- { index: 1, label: '', value: 25, canRemove: true, color: 'rgba(237, 129, 40, 0.89)' },
- { index: 2, label: '', value: 50, canRemove: true, color: 'rgba(237, 129, 40, 0.89)' },
- { index: 3, label: 'Max', value: 100, canRemove: false },
- ]);
- });
- });
- describe('Add at index', () => {
- it('should return 1, no added thresholds', () => {
- const instance = setup();
- const result = instance.insertAtIndex(1);
- expect(result).toEqual(1);
- });
- it('should return 1, one added threshold', () => {
- const instance = setup();
- instance.state = {
- thresholds: [
- { index: 0, label: 'Min', value: 0, canRemove: false },
- { index: 1, label: '', value: 50, canRemove: true },
- { index: 2, label: 'Max', value: 100, canRemove: false },
- ],
- };
- const result = instance.insertAtIndex(1);
- expect(result).toEqual(1);
- });
- it('should return 2, two added thresholds', () => {
- const instance = setup({
- options: {
- thresholds: [
- { index: 0, label: 'Min', value: 0, canRemove: false },
- { index: 1, label: '', value: 25, canRemove: true },
- { index: 2, label: '', value: 50, canRemove: true },
- { index: 3, label: 'Max', value: 100, canRemove: false },
- ],
- },
- });
- const result = instance.insertAtIndex(2);
- expect(result).toEqual(2);
- });
- it('should return 2, one added threshold', () => {
- const instance = setup();
- instance.state = {
- thresholds: [
- { index: 0, label: 'Min', value: 0, canRemove: false },
- { index: 1, label: '', value: 50, canRemove: true },
- { index: 2, label: 'Max', value: 100, canRemove: false },
- ],
- };
- const result = instance.insertAtIndex(2);
- expect(result).toEqual(2);
- });
- });
- describe('change threshold value', () => {
- it('should update value and resort rows', () => {
- const instance = setup();
- const mockThresholds = [
- { index: 0, label: 'Min', value: 0, canRemove: false, color: 'rgba(50, 172, 45, 0.97)' },
- { index: 1, label: '', value: 50, canRemove: true, color: 'rgba(237, 129, 40, 0.89)' },
- { index: 2, label: '', value: 75, canRemove: true, color: 'rgba(237, 129, 40, 0.89)' },
- { index: 3, label: 'Max', value: 100, canRemove: false },
- ];
- instance.state = {
- thresholds: mockThresholds,
- };
- const mockEvent = { target: { value: 78 } };
- instance.onChangeThresholdValue(mockEvent, mockThresholds[1]);
- expect(instance.state.thresholds).toEqual([
- { index: 0, label: 'Min', value: 0, canRemove: false, color: 'rgba(50, 172, 45, 0.97)' },
- { index: 1, label: '', value: 78, canRemove: true, color: 'rgba(237, 129, 40, 0.89)' },
- { index: 2, label: '', value: 75, canRemove: true, color: 'rgba(237, 129, 40, 0.89)' },
- { index: 3, label: 'Max', value: 100, canRemove: false },
- ]);
- });
- });
|