Хотите проверить размер константы массива в React - PullRequest
0 голосов
/ 08 апреля 2020

Я использую энзим, и сейчас у меня в основном файле есть const, размер которого я хочу проверить, но я не уверен, как это сделать с энзимом или шуткой.

const menuItems = [
  {
    id: "loginID",
    name: "Login",
    link: "/",
  },
  {
    id: "eventListID",
    name: "Event List",
    link: "/eventlist",
  },
  {
    id: "listID",
    name: "List",
    link: "/list",
  },
];

Я посмотрел на Google, но мне интересно, есть ли способ ссылаться на элементы меню в моем коде? У меня есть меню, которое при открытии вызывает menuItems const и отображает значения там

В моем тестовом файле я попытался:

it("renders three options when menu is active", () => {
  const wrapper = mount(<EventPage />);
  wrapper.setState({ active: true });
  expect(wrapper.find(menuItem).length).toBe(3);
});

Но, очевидно, это не сработало. Любая помощь будет отличной

edit:

Вот соответствующий код EventPage:

state = {
menuOpen: false,
  };

toggleMenu = (e) => {
e.preventDefault();
this.setState({
  menuOpen: !this.state.menuOpen,
});
   };

       <Menu
        id="menu1"
        open={this.state.menuOpen}
        menuText="Menu"
        items={menuItems}
        //toggleMenu opens menu side panel if Menu is clicked
        handleMenuToggle={this.toggleMenu}
        data-testid="toggleMenu"
      >

1 Ответ

0 голосов
/ 08 апреля 2020

Вы можете найти отрендеренное меню, а затем просто проверить длину его items prop

Предполагая, что есть единственное Menu:

expect(wrapper.find(Menu).at(0).props().items.length).toBe(3)
...