Jsdom: getBoundingClientRect()のjsdomを設定します

作成日 2016年08月25日  ·  4コメント  ·  ソース: jsdom/jsdom

screen shot 2016-08-25 at 4 57 33 pm

誰かがjsdomをgetBoundingClientRect()で動作するように設定している可能性があります。私はsimulantjsで動作し、コンソールはこれに戻ります->
screen shot 2016-08-25 at 5 03 42 pm

    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}})

多分誰かがアイデアを持っていますか?

最も参考になるコメント

あなたは仮定することができます .getBoundingClientRect()APIは機能し、次のことを行います。

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,
    }))

全てのコメント4件

私はこの問題をよく理解できません。 おそらくそれは#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も参照してください。

あなたは仮定することができます .getBoundingClientRect()APIは機能し、次のことを行います。

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,
    }))
このページは役に立ちましたか?
0 / 5 - 0 評価