Фермент имитирует событие mousedown в компоненте реакции - PullRequest
0 голосов
/ 04 августа 2020

Это мой первый модульный тест, и я застрял на тестировании события мыши. У меня есть div, в котором при нажатии мыши я получаю offsetX и offsetY и сохраняю это значение в состоянии.

<div
      className={`outputCanvasHolder ${
        this.props.output.selection === "CLICK"
          ? "showOutput"
          : "hideOutput"
      }`}
      onMouseDown={e => {
        this.handleMouseDown(e.nativeEvent)
      }}
      onMouseMove={e => {
        this.handleMouseMove(e.nativeEvent)
      }}
      onMouseUp={e => {
        this.handleMouseUp(e.nativeEvent)
      }}
    >My div</div>

handleMouseDown = primitive => {
this.setState(
  {
    dragStartX: primitive.offsetX,
    dragStartY: primitive.offsetY
  }
)

}

Теперь я хочу протестировать его с помощью jest

it("mouse down event", () => {
props.output.selection = "CLICK"
const wrapper = shallow(<ReAlignedImageCanvas {...props} />)
const canvasDiv = wrapper.find(".showOutput")
console.log(canvasDiv.debug())
canvasDiv.simulate("mousedown", {
  target: {
    name: "dragStartX",
    value: 100
  }
})
expect(wrapper.find(".test"))
expect(wrapper.find(".test-100").length).to.equal(1)

})

Но я получаю сообщение об ошибке TypeError: не удается прочитать свойство offsetX из undefined. Подскажите, пожалуйста, как протестировать это событие

...