Jsdom: configurar js dom para getBoundingClientRect()

Criado em 25 ago. 2016  ·  4Comentários  ·  Fonte: jsdom/jsdom

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

talvez alguém configure o jsdom para que funcione com getBoundingClientRect() , eu trabalho com simulantjs e meu console loga de volta isso->
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}})

talvez alguem tenha ideias??

Comentários muito úteis

Você pode assumir o A API .getBoundingClientRect() funciona e faz o seguinte:

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

Todos 4 comentários

Não consigo entender muito bem essa questão. Parece que talvez seja um dupe de # 1581, https://github.com/tmpvar/jsdom/issues/653 , https://github.com/tmpvar/jsdom/issues/1322.

@domenic eu tenho componente , quando eu movo o mouse para a parte inferior do componente , espero que meu componente mostre buttop , e ele se ligue a const rect = node.getBoundingClientRect() este rect obtenha as coordenadas do mouse e no componente escreva const showPlusButton = event.insideX && Math.abs(event.pos.y - event.componentRect.bottom) <= MOUSE_DISTANCE quando eu movo o mouse eu sempre recebo a segunda captura de tela

jsdom não faz nenhuma renderização, então getBoundingClientRect() sempre retorna 0,0,0,0. Isso não vai mudar (mesmo a longo prazo previsível). Você pode tentar simular a função para emular os resultados esperados. Veja também #653.

Você pode assumir o A API .getBoundingClientRect() funciona e faz o seguinte:

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,
    }))
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

philipwalton picture philipwalton  ·  4Comentários

drewish picture drewish  ·  4Comentários

josephrexme picture josephrexme  ·  4Comentários

camelaissani picture camelaissani  ·  4Comentários

jacekpl picture jacekpl  ·  4Comentários