# 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 >> Test Image Registry >> test image registry - Location: tests/ui/component.test.ts:206:5 # Error details ``` TimeoutError: Step timeout of 20000ms exceeded. ``` ``` Error: expect(locator).toBeVisible() failed Locator: getByRole('heading', { name: 'Nexus Repository Manager: rhtap/backend-tests-go-dbafwepq' }) Expected: visible Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 60000ms - waiting for getByRole('heading', { name: 'Nexus Repository Manager: rhtap/backend-tests-go-dbafwepq' }) ``` # Page snapshot ```yaml - 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] ``` # Test source ```ts 1 | import { expect, Page } from '@playwright/test'; 2 | import { ImageRegistry } from '../../../rhtap/core/integration/registry/imageRegistry'; 3 | import { BaseRegistryPlugin } from "./baseRegistryPlugin"; 4 | import { RegistryPO } from "../../page-objects/registryPo"; 5 | 6 | export class NexusUiPlugin extends BaseRegistryPlugin { 7 | 8 | constructor(registry: ImageRegistry) { 9 | super(registry); 10 | } 11 | 12 | async checkRepositoryHeading(page: Page): Promise { > 13 | await expect(page.getByRole('heading', { name: `${RegistryPO.nexusRepositoryPrefix} ${this.registry.getOrganization()}/${this.registry.getImageName()}` })).toBeVisible(); | ^ Error: expect(locator).toBeVisible() failed 14 | } 15 | 16 | // eslint-disable-next-line no-unused-vars 17 | async checkRepositoryLink(_page: Page): Promise { 18 | // Skipped: Nexus repository link is not supported yet 19 | } 20 | 21 | async checkTableColumns(page: Page): Promise { 22 | await this.checkTableColumnHeaders(page, [ 23 | RegistryPO.versionColumnHeader, 24 | RegistryPO.artifactColumnHeader, 25 | RegistryPO.repositoryTypeColumnHeader, 26 | RegistryPO.checksumColumnHeader, 27 | RegistryPO.modifiedColumnHeader, 28 | RegistryPO.sizeColumnHeader, 29 | ]); 30 | } 31 | } 32 | ```