React-dnd: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрдЬрд╛рдп рдПрдВрдЬрд╛рдЗрдо рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдирд╡ре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: react-dnd/react-dnd

рдореИрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╛ рдкрд╛рд▓рди тАЛтАЛрдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА https://github.com/react-dnd/react-dnd/issues/453

рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реИред

рдореИрдВ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдШрдЯрдХ рдХреЛ рдбреНрд░реИрдЧрдбреНрд░реЙрдкрдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рд▓рдкреЗрдЯрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ TestUtils.renderIntoDocument ред

рдпрд╣ рдПрдХ DragDropContextContainer рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рдПрдЧрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдореИрдВ рд╡рд╕реНрддреБ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Enyzme mount рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ $$typeof: Symbol(react.element) рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИ - рдЬреЛ рдореБрдЭреЗ рдкреНрд░рдмрдВрдзрдХ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрдЧрд╛ред

рдореИрдВ рдПрдВрдЬрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ - рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХрд┐рд╕реА рдХреЛ рдЗрд╕рд╕реЗ рдХреЛрдИ рдорджрдж рдорд┐рд▓реА?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдФрд░ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк wrapper.instance() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдпрд╣рд╛рдВ https://github.com/react-dnd/react-dnd/issues/488 рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдЬреИрд╕реЗ

const Context = wrapInTestContext(Component)
const wrapper = mount(<Context />)
const manager = wrapper.instance().getManager()
const backend = manager.getBackend()

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореБрдЭреЗ getHandlerId() рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдореЗрд░реА рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╛рдЗрд▓ рд╣реИ: https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдЕрднреА рдпрд╣ рдХрд╛рдо рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ, рдпрд╣рд╛рдБ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВред

import { ThingIAmTesting } from '../file/where/it/lives';
describe('It is a test!', () => {
  let props;
  let component;
  const getComponent = () => {
    let OriginalComponent = (ThingIAmTesting as any).DecoratedComponent;
    let identity = el => el;
    if (!component) {
      component = Enzyme.shallow(
        <OriginalComponent {...props} connectDragSource={identity} />
       );
      return component
    }

    beforeEach (() => {
      props = {
         prop: 'stuff',
         }
      component = undefined;
     })
    it('should render', () => {
      let component = getComponent();
      expect(component).toMatchSnapshot();
    });
})

рдЗрд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдФрд░ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк wrapper.instance() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдпрд╣рд╛рдВ https://github.com/react-dnd/react-dnd/issues/488 рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдЬреИрд╕реЗ

const Context = wrapInTestContext(Component)
const wrapper = mount(<Context />)
const manager = wrapper.instance().getManager()
const backend = manager.getBackend()

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореБрдЭреЗ getHandlerId() рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдореЗрд░реА рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╛рдЗрд▓ рд╣реИ: https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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