# 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: ui/component.test.ts >> Component UI Test Suite >> Check dependencies tab and gitops dependency >> test dependency - Location: tests/ui/component.test.ts:253:5 # Error details ``` TimeoutError: Step timeout of 30000ms exceeded. ``` ``` Error: expect(locator).toBeVisible() failed Locator: getByRole('heading', { name: 'Depends on components' }) Expected: visible Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 60000ms - waiting for getByRole('heading', { name: 'Depends on components' }) ``` # Page snapshot ```yaml - generic [ref=e2]: - generic [ref=e3]: - navigation [ref=e5]: - generic [ref=e6]: - link "Home" [ref=e8] [cursor=pointer]: - /url: / - img [ref=e9] - generic [ref=e18]: - img [ref=e20] - combobox "Search..." [ref=e22] - generic "Self-service" [ref=e25]: - link "Self-service" [ref=e26] [cursor=pointer]: - /url: /create - img [ref=e28] - button "Your starred items" [ref=e31] [cursor=pointer]: - img [ref=e32] - button "Application launcher" [ref=e35] [cursor=pointer]: - img [ref=e36] - button "Help" [ref=e39] [cursor=pointer]: - img [ref=e40] - separator [ref=e42] - button "Admin" [ref=e44] [cursor=pointer]: - generic [ref=e45]: - img [ref=e46] - paragraph [ref=e49]: Admin - img [ref=e50] - generic [ref=e53]: - navigation "sidebar nav": - generic [ref=e55]: - generic [ref=e58]: - link "Home" [ref=e60] [cursor=pointer]: - /url: / - img [ref=e64] - generic [ref=e66]: Home - link "Catalog" [ref=e68] [cursor=pointer]: - /url: /catalog - img [ref=e72] - generic [ref=e74]: Catalog - link "APIs" [ref=e76] [cursor=pointer]: - /url: /api-docs - img [ref=e80] - generic [ref=e82]: APIs - link "Learning Paths" [ref=e84] [cursor=pointer]: - /url: /learning-paths - img [ref=e88] - generic [ref=e90]: Learning Paths - separator [ref=e91] - link "Docs" [ref=e94] [cursor=pointer]: - /url: /docs - img [ref=e98] - generic [ref=e100]: Docs - generic [ref=e101]: - separator [ref=e102] - button "Administration" [ref=e103] [cursor=pointer]: - generic [ref=e104]: - img [ref=e108] - generic [ref=e111]: Administration - img [ref=e113] - main [ref=e115]: - generic [ref=e117]: - paragraph [ref=e118]: component - heading "backend-tests-go-dbafwepq" [level=1] [ref=e119]: - generic [ref=e121]: backend-tests-go-dbafwepq - article [ref=e122]: - alert [ref=e123]: - 'button "Warning: Entity not found" [ref=e124] [cursor=pointer]': - generic [ref=e125]: - img [ref=e126] - 'heading "Warning: Entity not found" [level=6] [ref=e128]' - img [ref=e131] - generic [ref=e135]: - generic [ref=e136]: - generic [ref=e138]: - paragraph [ref=e139]: Let's get you started with Developer Hub - paragraph [ref=e140]: We'll guide you through a few quick steps - separator [ref=e141] - list [ref=e143]: - button "Expand Set up authentication details" [ref=e145] [cursor=pointer]: - img [ref=e148] - generic [ref=e154]: Set up authentication - button "Expand item" [ref=e155]: - img [ref=e156] - button "Expand Configure RBAC details" [ref=e159] [cursor=pointer]: - img [ref=e162] - generic [ref=e165]: Configure RBAC - button "Expand item" [ref=e166]: - img [ref=e167] - button "Expand Configure Git details" [ref=e170] [cursor=pointer]: - img [ref=e173] - generic [ref=e176]: Configure Git - button "Expand item" [ref=e177]: - img [ref=e178] - button "Expand Manage plugins details" [ref=e181] [cursor=pointer]: - img [ref=e184] - generic [ref=e187]: Manage plugins - button "Expand item" [ref=e188]: - img [ref=e189] - generic [ref=e191]: - progressbar [ref=e192] - generic [ref=e194]: - paragraph [ref=e195]: Not started - button "Hide" [ref=e196] [cursor=pointer]: Hide ``` # Test source ```ts 1 | import { expect, Page } from '@playwright/test'; 2 | import { DependenciesPO } from '../../page-objects/dependenciesPo'; 3 | 4 | export class DependenciesUiPlugin { 5 | private readonly componentName: string; 6 | 7 | constructor( 8 | componentName: string, 9 | ) { 10 | this.componentName = componentName; 11 | } 12 | 13 | async checkAllBoxesPresent(page: Page) { 14 | for (const title of DependenciesPO.titles) { > 15 | await expect(page.getByRole('heading', { name: title })).toBeVisible(); | ^ Error: expect(locator).toBeVisible() failed 16 | } 17 | } 18 | 19 | async checkRelationsTitle(page: Page) { 20 | await expect(page.getByText( DependenciesPO.relationsTitle )).toBeVisible(); 21 | } 22 | 23 | async checkNodesPresent(page: Page) { 24 | const componentNode = page.getByTestId('node').filter({ has: page.getByText(this.componentName, { exact: true }) }); 25 | await expect(componentNode).toBeVisible(); 26 | await expect(page.getByTestId("node").filter({ hasText: `${this.componentName}-gitops` })).toBeVisible(); 27 | } 28 | } 29 | ```