Как сделать вывод типа с помощью шутки найти фермент - PullRequest
1 голос
/ 28 апреля 2020

У меня есть компонент, обернутый в Provider, и я использую крепление Enzyme для его проверки. Я хотел бы вывести тип при использовании wrapper.find, чтобы я мог получить доступ к состоянию компонента и иметь все типы. Вот пример кода, который я запускаю:

const wrapper = mount<Provider>(
  <Provider mocks={mocks}>
    <MyComponent
      foo={bar}
    />
  </Provider>
);

const MyComponentInstance = wrapper.find("MyComponent").instance();

expect(MyComponentInstance.state.isBar).toBe(true);

MyComponentInstance - это то место, где я хотел бы получить вывод типа, поэтому позже я смогу вызвать MyComponentInstance.state.isBar.

Тип MyComponent State определяется следующим образом:

type State = {
  isBar: boolean
}
export class MyComponent extends Component {
  public state : State = {
    isBar: false
  }
}

1 Ответ

1 голос
/ 28 апреля 2020

Согласно документации вы также можете найти компоненты по их конструктору. Поэтому вы можете попробовать следующее:

const wrapper = mount<Provider>(
  <Provider mocks={mocks}>
    <MyComponent
      foo={bar}
    />
  </Provider>
);

const MyComponentInstance = wrapper.find(MyComponent).instance();

expect(MyComponentInstance.state.isBar).toBe(true);

Теперь TypeScript должен иметь возможность выводить тип, но работает ли он, зависит от используемых вами определений типов.

...