Jsdom: configurer js dom pour getBoundingClientRect()

Créé le 25 août 2016  ·  4Commentaires  ·  Source: jsdom/jsdom

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

peut-être que quelqu'un configure jsdom pour qu'il fonctionne avec getBoundingClientRect() , je travaille avec simulantjs et ma console se connecte ceci->
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}})

peut-être que quelqu'un a des idées ??

Commentaire le plus utile

Vous pouvez supposer que L'API .getBoundingClientRect() fonctionne et procède comme suit :

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

Tous les 4 commentaires

Je ne comprends pas très bien ce problème. Il semble que ce soit peut-être une dupe de # 1581, https://github.com/tmpvar/jsdom/issues/653 , https://github.com/tmpvar/jsdom/issues/1322.

@domenic j'ai un composant, quand je déplace la souris vers le bas du composant, j'attends que mon composant affiche le bouton, et il rebondit sur const rect = node.getBoundingClientRect() ce rect obtiennent les coordonnées de la souris, et dans le composant, écrivez const showPlusButton = event.insideX && Math.abs(event.pos.y - event.componentRect.bottom) <= MOUSE_DISTANCE lorsque je déplace la souris, j'obtiens toujours une deuxième capture d'écran

jsdom ne fait aucun rendu, donc getBoundingClientRect() renvoie toujours 0,0,0,0. Cela ne changera pas (même prévisible à long terme). Vous pouvez essayer de vous moquer de la fonction pour émuler les résultats que vous attendez. Voir aussi #653.

Vous pouvez supposer que L'API .getBoundingClientRect() fonctionne et procède comme suit :

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,
    }))
Cette page vous a été utile?
0 / 5 - 0 notes