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

components.widgets.Tree.until.test.js Maven / Gradle / Ivy

The newest version!
import {
    collectionToComponentObject,
    createTreeFn,
    takeKeysWhenSearching,
    getTreeLinerRoute,
} from './until'
import { toCollectionObject, Component, linerTree, tree } from './forUntilTest'

describe('Проверка функционала дерева', () => {
    describe('collectionToComponentObject', () => {
        it('Вызов с пустыми значенииями', () => {
            const res = collectionToComponentObject()

            expect(res).toEqual({})
        })
        it('Вызов c компонентом', () => {
            const res = collectionToComponentObject(Component)

            expect(res).toEqual({})
        })
        it('Вызов c компонентом и свойствами компонента', () => {
            const props = {
                datasource: [{ id: 1 }, { id: 2 }, { id: 3 }],
                valueFieldId: 'id',
            }
            const res = collectionToComponentObject(Component, props)

            expect(res).toEqual(toCollectionObject)
        })
    })

    describe('createTreeFn', () => {
        it('Вызов с пустыми значенииями', () => {
            const createTree = createTreeFn(Component)

            expect(createTree()).toEqual([])
        })
        it('Вызов с данными. Постройка дерева. Нет родителей', () => {
            const createTree = createTreeFn(Component)

            expect(
                createTree({
                    datasource: [{ id: 1 }, { id: 2 }, { id: 3 }],
                    parentFieldId: 'parent',
                    valueFieldId: 'id',
                }),
            ).toEqual(linerTree)
        })
        it('Вызов с данными. Постройка дерева. Есть родители', () => {
            const createTree = createTreeFn(Component)

            expect(
                createTree({
                    datasource: [{ id: 1 }, { id: 2, parent: 1 }, { id: 3, parent: 1 }],
                    parentFieldId: 'parent',
                    valueFieldId: 'id',
                }),
            ).toEqual(tree)
        })
    })

    describe('takeKeysWhenSearching', () => {
        it('Вызов с пустыми значенииями', () => {
            expect(takeKeysWhenSearching()).toEqual([])
        })

        it('Поиск при filter=includes', () => {
            expect(
                takeKeysWhenSearching({
                    filter: 'includes',
                    value: 'Test',
                    datasource: [
                        { id: '1', parent: '', label: 'text-Test-text' },
                        { id: '2', parent: '1', label: 'texttext' },
                        { id: '3', parent: '1', label: 'texttext' },
                    ],
                    valueFieldId: 'id',
                    labelFieldId: 'label',
                }),
            ).toEqual(['1'])
        })

        it('Поиск при filter=startsWith', () => {
            expect(
                takeKeysWhenSearching({
                    filter: 'startsWith',
                    value: 'Test',
                    datasource: [
                        { id: '1', parent: '', label: 'Test-text' },
                        { id: '2', parent: '1', label: 'texttext' },
                        { id: '3', parent: '1', label: 'texttext' },
                    ],
                    valueFieldId: 'id',
                    labelFieldId: 'label',
                }),
            ).toEqual(['1'])
        })

        it('Поиск при filter=endsWith', () => {
            expect(
                takeKeysWhenSearching({
                    filter: 'endsWith',
                    value: 'Test',
                    datasource: [
                        { id: '1', parent: '', label: 'test--Test' },
                        { id: '2', parent: '1', label: 'texttext' },
                        { id: '3', parent: '1', label: 'texttext' },
                    ],
                    valueFieldId: 'id',
                    labelFieldId: 'label',
                }),
            ).toEqual(['1'])
        })
    })

    describe('getTreeLinerRoute', () => {
        it('Постройка пути открыт parent', () => {
            const createTree = getTreeLinerRoute(
                [
                    { id: '1', parent: '', label: 'Test-text' },
                    { id: '2', parent: '1', label: 'texttext' },
                    { id: '3', parent: '1', label: 'texttext' },
                ],
                ['1'],
                {
                    parentFieldId: 'parent',
                    valueFieldId: 'id',
                },
            )

            expect(createTree).toEqual(['1', '2', '3'])
        })
        it('Постройка пути закрыт parent', () => {
            const createTree = getTreeLinerRoute(
                [
                    { id: '1', parent: '', label: 'Test-text' },
                    { id: '2', parent: '1', label: 'texttext' },
                    { id: '3', parent: '1', label: 'texttext' },
                ],
                [],
                {
                    parentFieldId: 'parent',
                    valueFieldId: 'id',
                },
            )

            expect(createTree).toEqual(['1'])
        })
    })
})




© 2015 - 2024 Weber Informatics LLC | Privacy Policy