All Downloads are FREE. Search and download functionalities are using the official Maven repository.

components.widgets.Table.cells.CollapsedCell.CollapsedCell.test.js Maven / Gradle / Ivy

There is a newer version: 7.28.3
Show newest version
import React from 'react'
import { mount } from 'enzyme'

import CollapsedCell from './CollapsedCell'

const setup = (propOverrides = {}) => {
    const props = {
        tooltipFieldId: 'tooltip',
        model: {
            data: ['Казань', 'Москва', 'Токио', 'Берлин', 'Париж', 'Лондон'],
            tooltip: 'tooltip',
        },
        fieldKey: 'data',
        amountToGroup: 3,
        isControlledTooltip: true,
        ...propOverrides,
    }

    const wrapper = mount()

    return {
        props,
        wrapper,
    }
}

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

        expect(wrapper.find('span.badge').exists()).toBeTruthy()
    })

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

        expect(wrapper.find('span.badge')).toHaveLength(props.amountToGroup)
    })

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

        // раскрытие
        wrapper
            .find('a.collapsed-cell-control')
            .last()
            .simulate('click')
        expect(wrapper.find('span.badge')).toHaveLength(
            props.model[props.fieldKey].length,
        )

        // скрытие
        wrapper
            .find('a.collapsed-cell-control')
            .last()
            .simulate('click')
        expect(wrapper.find('span.badge')).toHaveLength(props.amountToGroup)
    })

    it('проверяет цвета', () => {
        const { wrapper, props } = setup({ color: 'info' })

        expect(wrapper.find(`span.badge-${props.color}`).exists()).toBeTruthy()
    })

    it('проверяет отсутствие кнопки раскрытия при маленьком количестве элементов', () => {
        const { wrapper, props } = setup({
            amountToGroup: 1,
            fieldKey: 'data',
            model: {
                data: ['testData'],
            },
        })

        expect(wrapper.find('span.badge')).toHaveLength(
            props.model[props.fieldKey].length,
        )
    })
})




© 2015 - 2025 Weber Informatics LLC | Privacy Policy