# Instructions

- Following Playwright test failed.
- Explain why, be concise, respect Playwright best practices.
- Provide a snippet of code with the fix, if possible.

# Test info

- Name: journal.spec.ts >> user can cook recipe and see stock deducted correctly
- Location: tests/journal.spec.ts:40:5

# Error details

```
Test timeout of 30000ms exceeded.
```

```
Error: locator.click: Test timeout of 30000ms exceeded.
Call log:
  - waiting for getByRole('button', { name: 'Журнал' })
    - locator resolved to <button title="Журнал" aria-label="Журнал" class="sc-fybwtB OoOMI">…</button>
  - attempting click action
    - waiting for element to be visible, enabled and stable

```

# Page snapshot

```yaml
- generic [active] [ref=e1]:
  - generic [ref=e4]:
    - generic [ref=e6]:
      - generic [ref=e9]:
        - button [ref=e11] [cursor=pointer]:
          - img [ref=e12]
        - heading "Тестовое блюдо для проверки запасов" [level=1] [ref=e15]:
          - generic [ref=e16]: Тестовое блюдо для проверки запасов
      - generic [ref=e19]:
        - generic [ref=e21]:
          - button "Добавить фото" [ref=e23]:
            - img [ref=e24]
            - generic [ref=e26]: Добавить фото
          - generic [ref=e27]:
            - generic [ref=e28]:
              - generic [ref=e31]: Основное блюдо
              - generic [ref=e32]: Тестовое блюдо для проверки запасов
            - generic [ref=e33]:
              - button "Добавить в план" [ref=e34]:
                - img [ref=e35]
                - generic [ref=e37]: Добавить в план
              - button "Изменить название" [ref=e38]:
                - img [ref=e39]
                - generic [ref=e41]: Изменить название
              - button "Изменить категории" [ref=e42]:
                - img [ref=e43]
                - generic [ref=e45]: Изменить категории
              - button "Удалить рецепт" [ref=e46]:
                - img [ref=e47]
                - generic [ref=e49]: Удалить рецепт
        - generic [ref=e50]:
          - generic [ref=e51]:
            - generic [ref=e52]: Ингредиенты
            - button "Изменить" [ref=e53]:
              - generic [ref=e55]: Изменить
          - generic [ref=e57]:
            - generic [ref=e58]:
              - generic [ref=e59]:
                - generic [ref=e60]:
                  - img [ref=e61]
                  - img [ref=e64]
                - generic [ref=e66]: 6 из 6
              - generic [ref=e67]:
                - button "Уменьшить" [ref=e68]:
                  - img [ref=e69]
                - generic [ref=e72]: 2 порции
                - button "Увеличить" [ref=e73]:
                  - img [ref=e74]
            - list [ref=e76]:
              - listitem "Помидоры" [ref=e77]:
                - button "Помидоры" [ref=e78] [cursor=pointer]
                - generic:
                  - generic:
                    - img
                  - generic:
                    - generic: Помидоры
                    - generic:
                      - generic:
                        - generic:
                          - img
                        - text: 200 г
                        - generic: (есть)
              - listitem "Говядина" [ref=e79]:
                - button "Говядина" [ref=e80] [cursor=pointer]
                - generic:
                  - generic:
                    - img
                  - generic:
                    - generic: Говядина
                    - generic:
                      - generic:
                        - generic:
                          - img
                        - text: 300 г
                        - generic:
                          - text: (
                          - generic: есть 300 г
                          - text: )
              - listitem "Перец чёрный" [ref=e81]:
                - button "Перец чёрный" [ref=e82] [cursor=pointer]
                - generic:
                  - generic:
                    - img
                  - generic:
                    - generic: Перец чёрный
                    - generic:
                      - generic:
                        - generic:
                          - img
                        - text: по вкусу
                        - generic: (есть)
              - listitem "Соль" [ref=e83]:
                - button "Соль" [ref=e84] [cursor=pointer]
                - generic:
                  - generic:
                    - img
                  - generic:
                    - generic: Соль
                    - generic:
                      - generic:
                        - generic:
                          - img
                        - text: по вкусу
                        - generic:
                          - text: (
                          - generic: есть 500 г
                          - text: )
              - listitem "Молоко" [ref=e85]:
                - button "Молоко" [ref=e86] [cursor=pointer]
                - generic:
                  - generic:
                    - img
                  - generic:
                    - generic: Молоко
                    - generic:
                      - generic:
                        - generic:
                          - img
                        - text: 500 мл
                        - generic:
                          - text: (
                          - generic: есть 1 л
                          - text: )
              - listitem "Яйцо куриное" [ref=e87]:
                - button "Яйцо куриное" [ref=e88] [cursor=pointer]
                - generic:
                  - generic:
                    - img
                  - generic:
                    - generic: Яйцо куриное
                    - generic:
                      - generic:
                        - generic:
                          - img
                        - text: 2 шт
                        - generic:
                          - text: (
                          - generic: есть 4 шт
                          - text: )
        - generic [ref=e89]:
          - generic [ref=e91]: Инструкции
          - generic [ref=e93]:
            - generic [ref=e94]: Давайте добавим инструкции!
            - button "Сгенерировать" [ref=e95]:
              - generic [ref=e96]:
                - img [ref=e97]
                - generic [ref=e99]: Сгенерировать
            - button "Добавить вручную" [ref=e100]:
              - generic [ref=e102]: Добавить вручную
    - navigation [ref=e103]:
      - button "Рецепты" [ref=e104] [cursor=pointer]:
        - img [ref=e105]
      - button "Журнал" [ref=e107] [cursor=pointer]:
        - img [ref=e108]
      - button "Есть дома" [ref=e110] [cursor=pointer]:
        - img [ref=e111]
      - button "Покупки" [ref=e113] [cursor=pointer]:
        - img [ref=e114]
      - button "Профиль" [ref=e116] [cursor=pointer]:
        - img [ref=e117]
  - generic:
    - dialog "Перец чёрный":
      - generic [ref=e122]:
        - listitem "Перец чёрный" [ref=e123]:
          - button "Перец чёрный" [ref=e124] [cursor=pointer]
          - generic:
            - generic:
              - img
            - generic:
              - generic: Перец чёрный
              - generic:
                - generic:
                  - generic:
                    - img
                  - text: по вкусу
                  - generic: (есть)
        - separator [ref=e125]
        - list [ref=e126]:
          - listitem "Подробнее об ингредиенте" [ref=e127]:
            - button "Подробнее об ингредиенте" [ref=e128] [cursor=pointer]
            - generic:
              - generic:
                - img
              - generic:
                - generic: Подробнее об ингредиенте
          - listitem "Уточнить количество" [ref=e129]:
            - button "Уточнить количество" [ref=e130] [cursor=pointer]
            - generic:
              - generic:
                - img
              - generic:
                - generic: Уточнить количество
          - listitem "Отметить, что закончилось" [ref=e131]:
            - button "Отметить, что закончилось" [ref=e132] [cursor=pointer]
            - generic:
              - generic:
                - img
              - generic:
                - generic: Отметить, что закончилось
```

# Test source

```ts
  1  | import { Page, expect } from "@playwright/test";
  2  | 
  3  | /**
  4  |  * Navigate to the journal page using bottom navigation
  5  |  */
  6  | export default async function goToJournal(page: Page): Promise<void> {
> 7  |   await page.getByRole("button", { name: "Журнал" }).click();
     |                                                      ^ Error: locator.click: Test timeout of 30000ms exceeded.
  8  | 
  9  |   // Wait for journal to load by checking for meal sections
  10 |   // Use .first() since there are multiple "Завтрак" elements (one for each day)
  11 |   await expect(page.getByText("Завтрак").first()).toBeVisible();
  12 | }
  13 | 
```