Jsdom: 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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

vsemozhetbyt picture vsemozhetbyt  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JacksonGariety picture JacksonGariety  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

domenic picture domenic  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

josephrexme picture josephrexme  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

drewish picture drewish  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ