Jsdom: настроить js dom для getBoundingClientRect()

Созданный на 25 авг. 2016  ·  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() , чтобы получить координаты мыши, а в компоненте написать 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 рейтинги