誰かがjsdomをgetBoundingClientRect()で動作するように設定している可能性があります。私はsimulantjsで動作し、コンソールはこれに戻ります->
const wrapper = mount(
<Provider store={store}>
<FullDecoratedBlock
uid={'test'}
setFocusedElement={setFocusedElement}/>
</Provider>, {attachTo: document.getElementById('app')})
expect(wrapper.find('.add-wrap').length).to.eql(0)
simulant.fire(document.body.querySelector('.wrapper-resize-button'), 'mousedown')
simulant.fire(document.body, 'mousemove', {target: {clientX: 51, clientY: 101}})
多分誰かがアイデアを持っていますか?
私はこの問題をよく理解できません。 おそらくそれは#1581、 https://github.com/tmpvar/jsdom/issues/653、https://github.com/tmpvar/jsdom/issues/1322の複製のようです。
@domenic私はコンポーネントを持っています、私がマウスをコンポーネントの下部に移動すると、私のコンポーネントがボタントップを表示するのを待ちます、そしてそれはconst rect = node.getBoundingClientRect()
跳ね返り、このrect get座標をマウスの取得し、コンポーネントにconst showPlusButton = event.insideX && Math.abs(event.pos.y - event.componentRect.bottom) <= MOUSE_DISTANCE
を書き込みます
jsdomはレンダリングを行わないため、 getBoundingClientRect()
は常に0,0,0,0を返します。 それは変わりません(予見可能な長期でも)。 関数をモックして、期待する結果をエミュレートすることができます。 #653も参照してください。
あなたは仮定することができます
const p = document.createElement('p')
p.getBoundingClientRect = jest.fn(() => ({
x: 851.671875,
y: 200.046875,
width: 8.34375,
height: 17,
top: 967.046875,
right: 860.015625,
bottom: 984.046875,
left: 851.671875,
}))
最も参考になるコメント
あなたは仮定することができます .getBoundingClientRect()APIは機能し、次のことを行います。