Как проверить реакцию перетаскивания с помощью фермента - PullRequest
0 голосов
/ 23 мая 2019

Я ищу хорошее решение для правильного теста, чего я хочу добиться - это добавить перетаскиваемый элемент (компонент 1) в dropzone (компонент 2), я надеюсь, что это возможно сделать с двумя компонентами из других файлов. , Я использую для модульного тестирования:

  • фермент
  • Шутка
  • реагируют-ДНА
  • реагирует-ДНО испытаний * +1010 утилиты *
  • реагируют-ДНА-тест-бэкенд

function setupTargetElement(props) {
    const TargetContext = wrapInTestContext(TargetComponent)
    return mount(<TargetContext {...props}/>)
}

function setupDragElement(props) {
    const DragContext = wrapInTestContext(DragComponent)
    return mount(<DragContext {...props}/>)
}

describe("Shoud drop element", () => {
let targetElement
let dragElement
const mockDragElement = () => {
        return (
            <li key={drag.id} className="item" >
                Drag Elemnt
            </li>
        )
    }

beforeEach(() => {
        targetElement = setupTargetElement({         
            canDrop: true
        })
        dragElement = setupDragElement({
            connectDragSource: mockDragElement()
        })
    })

it('Should drop employee block', () => {
        const dragManager = dragElement.instance().getManager()
        const dragBackend = createBackend(dragManager)
        const targetManager = targetElement.instance().getManager()
        const targetBackend = createBackend(targetManager)

        let dragModule = dragElement.find(DragComponent)
        let targetModule = targetElement.find(TargetComponent)
        const dragSourceId = dragModule.instance().getHandlerId()
        const targetId = targetModule.instance().getHandlerId()

        dragBackend.simulateBeginDrag([dragSourceId], {})

        dragBackend.simulateHover([targetId], {})
        targetElement.update()
        targetModule = targetElement.find(TargetComponent)
    })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

Я получаю ошибку в этой dragBackend.simulateHover([targetId], {}) строке:

Ожидаемые целевые идентификаторы для регистрации.

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...