# 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: src/manager/tests/e2e/insurance/insurance-create.spec.ts >> creates an insurance with a short description - Location: src/manager/tests/e2e/insurance/insurance-create.spec.ts:15:7 # Error details ``` Test timeout of 75000ms exceeded. ``` ``` Error: locator.click: Test timeout of 75000ms exceeded. Call log: - waiting for locator('.v-dialog:has([data-test-id="insurance-create-dialog"]):has(.v-overlay__content:not(.dialog-bottom-transition-enter-active))').locator('fieldset:has(legend:has-text("Booking portal"))').getByTestId('language-aware-input').getByRole('button', { name: 'English', exact: true }) ``` # Page snapshot ```yaml - generic [ref=e1]: - generic [ref=e6]: - banner [ref=e7]: - generic [ref=e8]: - button [ref=e9] [cursor=pointer]: - generic [ref=e11]: 󰍜 - link [ref=e12] [cursor=pointer]: - /url: / - button "AS" [ref=e15] [cursor=pointer]: - generic [ref=e19]: AS - generic: - text: 󰗊 󰅀 - text: 󰷖 󰍃 - navigation [ref=e20]: - list [ref=e22]: - generic [ref=e24]: Dashboard - link "Tasks" [ref=e25] [cursor=pointer]: - /url: /tasks - img [ref=e28] - generic [ref=e31]: Tasks - link "Facility maps" [ref=e32] [cursor=pointer]: - /url: /facility-map - generic [ref=e34]: 󰧾 - generic [ref=e36]: Facility maps - link "Analytics" [ref=e37] [cursor=pointer]: - /url: /dashboard - generic [ref=e39]: 󱖶 - generic [ref=e41]: Analytics - generic [ref=e43]: Sales - link "Bookings" [ref=e44] [cursor=pointer]: - /url: /bookings - generic [ref=e46]: 󰇡 - generic [ref=e48]: Bookings - link "Customers" [ref=e49] [cursor=pointer]: - /url: /customers - generic [ref=e51]: 󰀏 - generic [ref=e53]: Customers - link "Invoices" [ref=e54] [cursor=pointer]: - /url: /invoices - generic [ref=e56]: 󰷉 - generic [ref=e58]: Invoices - link "Credit notes" [ref=e59] [cursor=pointer]: - /url: /credit-notes - img [ref=e62] - generic [ref=e65]: Credit notes - link "Units" [ref=e66] [cursor=pointer]: - /url: /units - generic [ref=e68]: 󰍀 - generic [ref=e70]: Units - generic [ref=e72]: Site management - link "Locations" [ref=e73] [cursor=pointer]: - /url: /locations - generic [ref=e75]: 󰟙 - generic [ref=e77]: Locations - link "Unit types" [ref=e78] [cursor=pointer]: - /url: /unit-types - generic [ref=e80]: 󰆧 - generic [ref=e82]: Unit types - link "Protection Plans" [ref=e83] [cursor=pointer]: - /url: /insurances - generic [ref=e85]: 󰳌 - generic [ref=e87]: Protection Plans - link "Deposits" [ref=e88] [cursor=pointer]: - /url: /deposits - generic [ref=e90]: 󱙆 - generic [ref=e92]: Deposits - link "Products" [ref=e93] [cursor=pointer]: - /url: /products - generic [ref=e95]: 󰄑 - generic [ref=e97]: Products - link "Discounts" [ref=e98] [cursor=pointer]: - /url: /discounts - generic [ref=e100]: 󰓼 - generic [ref=e102]: Discounts - generic [ref=e103]: - option "Emails" [ref=e104] [cursor=pointer]: - generic [ref=e106]: 󰻨 - generic [ref=e108]: Emails - generic [ref=e112]: 󰅀 - text: 󱡰 󰁥 - generic [ref=e114]: Admin - link "Integrations" [ref=e115] [cursor=pointer]: - /url: /connected-apps - generic [ref=e117]: 󱘖 - generic [ref=e119]: Integrations - link "User & Roles" [ref=e120] [cursor=pointer]: - /url: /users - generic [ref=e122]: 󰭘 - generic [ref=e124]: User & Roles - generic [ref=e125]: - option "Booking Portal" [ref=e126] [cursor=pointer]: - generic [ref=e128]: 󱃁 - generic [ref=e130]: Booking Portal - generic [ref=e134]: 󰅀 - text: 󰖟 󰟙 - generic [ref=e135]: - option "JaneAI" [ref=e136] [cursor=pointer]: - generic [ref=e138]: 󱙺 - generic [ref=e140]: JaneAI - generic [ref=e144]: 󰅀 - text: 󱜹 - generic [ref=e146]: Feedback - link "Voting Portal" [ref=e147] [cursor=pointer]: - /url: /voting-portal - generic [ref=e149]: 󰔔 - generic [ref=e151]: Voting Portal - generic [ref=e153]: - generic [ref=e154]: Kinnovis GmbH © 2026 - generic [ref=e155]: v2026.05.04 - main [ref=e156]: - generic [ref=e158]: - generic [ref=e160]: - generic [ref=e163]: - generic [ref=e164]: Site Management - heading "Protection Plan" [level=1] [ref=e166]: - generic [ref=e167]: Protection Plan - link "Create Protection Plan" [ref=e169] [cursor=pointer]: - /url: /insurances/create - generic [ref=e171]: 󰐕 - generic [ref=e172]: Create Protection Plan - generic [ref=e174]: - generic [ref=e176]: - button "Filters Reset filters" [ref=e177] [cursor=pointer]: - generic [ref=e178]: - heading "Filters" [level=3] [ref=e181] - generic [ref=e183]: - button "Reset filters" [ref=e185]: - generic [ref=e186]: - generic [ref=e187]: 󰑐 - text: Reset filters - generic [ref=e191]: 󰅀 - generic [ref=e197]: - generic [ref=e202]: - generic [ref=e204]: 󰍉 - generic [ref=e205]: - generic: Search - textbox "Search" [ref=e206] - text: 󰅙 - combobox [ref=e210]: - generic [ref=e211]: - generic: Location - combobox "Location" [ref=e213] - button [ref=e215] [cursor=pointer]: 󰍝 - generic [ref=e217]: - generic [ref=e219]: - generic [ref=e221]: - button "Select all" [ref=e229] [cursor=pointer]: - generic [ref=e231]: 󰄬 - generic [ref=e232]: Select all - button "Edit price" [disabled] [ref=e237]: - img [ref=e239] - generic [ref=e245]: Edit price - table [ref=e247]: - rowgroup [ref=e248]: - row "ID Name Location" [ref=e249]: - columnheader [ref=e250]: - generic [ref=e251]: - checkbox [ref=e252] - generic [ref=e254] [cursor=pointer]: 󰄱 - columnheader "ID" [ref=e255]: - button "ID" [ref=e256] [cursor=pointer]: - generic [ref=e258]: ID - generic [ref=e261]: 󰁝 - columnheader "Name" [ref=e262]: - button "Name" [ref=e263] [cursor=pointer]: - generic [ref=e265]: Name - generic [ref=e268]: 󰁝 - columnheader "Location" [ref=e269]: - button "Location" [ref=e270] [cursor=pointer]: - generic [ref=e272]: Location - generic [ref=e275]: 󰁝 - row [ref=e276]: - columnheader [ref=e277] - rowgroup [ref=e278]: - row "7813-3370-4 Soft Insurance rBpaV1 Vienna South" [ref=e279]: - cell [ref=e280]: - generic [ref=e281]: - checkbox [ref=e282] - generic [ref=e284] [cursor=pointer]: 󰄱 - cell "7813-3370-4" [ref=e285]: - link "7813-3370-4" [ref=e286] [cursor=pointer]: - /url: /insurances/781333704 - generic [ref=e287]: 7813-3370-4 - cell "Soft Insurance rBpaV1" [ref=e288]: - link "Soft Insurance rBpaV1" [ref=e289] [cursor=pointer]: - /url: /insurances/781333704 - generic [ref=e291]: Soft Insurance rBpaV1 - cell "Vienna South" [ref=e292]: - link "Vienna South" [ref=e293] [cursor=pointer]: - /url: /insurances/781333704 - generic [ref=e294]: Vienna South - row "1321-0844-10 Sleek Insurance mbLn8s Vienna South" [ref=e295]: - cell [ref=e296]: - generic [ref=e297]: - checkbox [ref=e298] - generic [ref=e300] [cursor=pointer]: 󰄱 - cell "1321-0844-10" [ref=e301]: - link "1321-0844-10" [ref=e302] [cursor=pointer]: - /url: /insurances/1321084410 - generic [ref=e303]: 1321-0844-10 - cell "Sleek Insurance mbLn8s" [ref=e304]: - link "Sleek Insurance mbLn8s" [ref=e305] [cursor=pointer]: - /url: /insurances/1321084410 - generic [ref=e307]: Sleek Insurance mbLn8s - cell "Vienna South" [ref=e308]: - link "Vienna South" [ref=e309] [cursor=pointer]: - /url: /insurances/1321084410 - generic [ref=e310]: Vienna South - row "8104-2651-3 VC - Insurance weekly - 60 City 1030" [ref=e311]: - cell [ref=e312]: - generic [ref=e313]: - checkbox [ref=e314] - generic [ref=e316] [cursor=pointer]: 󰄱 - cell "8104-2651-3" [ref=e317]: - link "8104-2651-3" [ref=e318] [cursor=pointer]: - /url: /insurances/810426513 - generic [ref=e319]: 8104-2651-3 - cell "VC - Insurance weekly - 60" [ref=e320]: - link "VC - Insurance weekly - 60" [ref=e321] [cursor=pointer]: - /url: /insurances/810426513 - generic [ref=e323]: VC - Insurance weekly - 60 - cell "City 1030" [ref=e324]: - link "City 1030" [ref=e325] [cursor=pointer]: - /url: /insurances/810426513 - generic [ref=e326]: City 1030 - row "2053-7716-27 VC - Insurance weekly - 30 City 1030" [ref=e327]: - cell [ref=e328]: - generic [ref=e329]: - checkbox [ref=e330] - generic [ref=e332] [cursor=pointer]: 󰄱 - cell "2053-7716-27" [ref=e333]: - link "2053-7716-27" [ref=e334] [cursor=pointer]: - /url: /insurances/2053771627 - generic [ref=e335]: 2053-7716-27 - cell "VC - Insurance weekly - 30" [ref=e336]: - link "VC - Insurance weekly - 30" [ref=e337] [cursor=pointer]: - /url: /insurances/2053771627 - generic [ref=e339]: VC - Insurance weekly - 30 - cell "City 1030" [ref=e340]: - link "City 1030" [ref=e341] [cursor=pointer]: - /url: /insurances/2053771627 - generic [ref=e342]: City 1030 - row "8543-2780-1 VC - Insurance weekly - 20 City 1030" [ref=e343]: - cell [ref=e344]: - generic [ref=e345]: - checkbox [ref=e346] - generic [ref=e348] [cursor=pointer]: 󰄱 - cell "8543-2780-1" [ref=e349]: - link "8543-2780-1" [ref=e350] [cursor=pointer]: - /url: /insurances/854327801 - generic [ref=e351]: 8543-2780-1 - cell "VC - Insurance weekly - 20" [ref=e352]: - link "VC - Insurance weekly - 20" [ref=e353] [cursor=pointer]: - /url: /insurances/854327801 - generic [ref=e355]: VC - Insurance weekly - 20 - cell "City 1030" [ref=e356]: - link "City 1030" [ref=e357] [cursor=pointer]: - /url: /insurances/854327801 - generic [ref=e358]: City 1030 - row "5547-2778 VC - Insurance weekly - 15 City 1030" [ref=e359]: - cell [ref=e360]: - generic [ref=e361]: - checkbox [ref=e362] - generic [ref=e364] [cursor=pointer]: 󰄱 - cell "5547-2778" [ref=e365]: - link "5547-2778" [ref=e366] [cursor=pointer]: - /url: /insurances/55472778 - generic [ref=e367]: 5547-2778 - cell "VC - Insurance weekly - 15" [ref=e368]: - link "VC - Insurance weekly - 15" [ref=e369] [cursor=pointer]: - /url: /insurances/55472778 - generic [ref=e371]: VC - Insurance weekly - 15 - cell "City 1030" [ref=e372]: - link "City 1030" [ref=e373] [cursor=pointer]: - /url: /insurances/55472778 - generic [ref=e374]: City 1030 - row "1374-7085-82 VC - Insurance weekly - 10 City 1030" [ref=e375]: - cell [ref=e376]: - generic [ref=e377]: - checkbox [ref=e378] - generic [ref=e380] [cursor=pointer]: 󰄱 - cell "1374-7085-82" [ref=e381]: - link "1374-7085-82" [ref=e382] [cursor=pointer]: - /url: /insurances/1374708582 - generic [ref=e383]: 1374-7085-82 - cell "VC - Insurance weekly - 10" [ref=e384]: - link "VC - Insurance weekly - 10" [ref=e385] [cursor=pointer]: - /url: /insurances/1374708582 - generic [ref=e387]: VC - Insurance weekly - 10 - cell "City 1030" [ref=e388]: - link "City 1030" [ref=e389] [cursor=pointer]: - /url: /insurances/1374708582 - generic [ref=e390]: City 1030 - row "1669-4168-6 VC - Insurance monthly - 60 City 1030" [ref=e391]: - cell [ref=e392]: - generic [ref=e393]: - checkbox [ref=e394] - generic [ref=e396] [cursor=pointer]: 󰄱 - cell "1669-4168-6" [ref=e397]: - link "1669-4168-6" [ref=e398] [cursor=pointer]: - /url: /insurances/166941686 - generic [ref=e399]: 1669-4168-6 - cell "VC - Insurance monthly - 60" [ref=e400]: - link "VC - Insurance monthly - 60" [ref=e401] [cursor=pointer]: - /url: /insurances/166941686 - generic [ref=e403]: VC - Insurance monthly - 60 - cell "City 1030" [ref=e404]: - link "City 1030" [ref=e405] [cursor=pointer]: - /url: /insurances/166941686 - generic [ref=e406]: City 1030 - row "1095-6483-88 VC - Insurance monthly - 30 City 1030" [ref=e407]: - cell [ref=e408]: - generic [ref=e409]: - checkbox [ref=e410] - generic [ref=e412] [cursor=pointer]: 󰄱 - cell "1095-6483-88" [ref=e413]: - link "1095-6483-88" [ref=e414] [cursor=pointer]: - /url: /insurances/1095648388 - generic [ref=e415]: 1095-6483-88 - cell "VC - Insurance monthly - 30" [ref=e416]: - link "VC - Insurance monthly - 30" [ref=e417] [cursor=pointer]: - /url: /insurances/1095648388 - generic [ref=e419]: VC - Insurance monthly - 30 - cell "City 1030" [ref=e420]: - link "City 1030" [ref=e421] [cursor=pointer]: - /url: /insurances/1095648388 - generic [ref=e422]: City 1030 - row "9442-5628-0 VC - Insurance monthly - 20 City 1030" [ref=e423]: - cell [ref=e424]: - generic [ref=e425]: - checkbox [ref=e426] - generic [ref=e428] [cursor=pointer]: 󰄱 - cell "9442-5628-0" [ref=e429]: - link "9442-5628-0" [ref=e430] [cursor=pointer]: - /url: /insurances/944256280 - generic [ref=e431]: 9442-5628-0 - cell "VC - Insurance monthly - 20" [ref=e432]: - link "VC - Insurance monthly - 20" [ref=e433] [cursor=pointer]: - /url: /insurances/944256280 - generic [ref=e435]: VC - Insurance monthly - 20 - cell "City 1030" [ref=e436]: - link "City 1030" [ref=e437] [cursor=pointer]: - /url: /insurances/944256280 - generic [ref=e438]: City 1030 - generic [ref=e441]: - generic [ref=e442]: - generic [ref=e443]: "Items per page:" - combobox [ref=e446]: - generic [ref=e448] [cursor=pointer]: - generic [ref=e450]: "10" - combobox "Items per page:": "10" - generic [ref=e452]: 󰍝 - generic [ref=e453]: 1-10 of 42 - generic [ref=e454]: - button [disabled]: - generic: - generic: 󰘀 - button [disabled]: - generic: - generic: 󰅁 - button [ref=e455] [cursor=pointer]: - generic [ref=e457]: 󰅂 - button [ref=e458] [cursor=pointer]: - generic [ref=e460]: 󰘁 - generic: - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - dialog: - generic [ref=e463]: - generic [ref=e464]: - generic [ref=e466]: - generic [ref=e467]: - button [ref=e468] [cursor=pointer]: - generic [ref=e470]: 󰅖 - heading "Create Protection Plan" [level=2] [ref=e472] - button "Save" [ref=e474] [cursor=pointer]: - generic [ref=e475]: Save - separator [ref=e476] - generic [ref=e478]: - group "General" [ref=e479]: - heading "General" [level=3] [ref=e481]: - generic [ref=e483]: General - generic [ref=e484]: - generic [ref=e486]: - generic [ref=e488]: - textbox "Name *" [ref=e490]: Handmade Insurance GUoBYb - generic: - generic: Name * - alert [ref=e491] - generic [ref=e494]: - combobox [ref=e496]: - generic [ref=e498]: - generic [ref=e500]: Vienna South - combobox "Location *" [ref=e501] - button [ref=e503] [cursor=pointer]: 󰍝 - generic: - generic: Location * - alert [ref=e504] - group "Taxes" [ref=e506]: - heading "Taxes" [level=3] [ref=e508]: - generic [ref=e510]: Taxes - generic [ref=e511]: - generic [ref=e513]: - combobox [ref=e515]: - generic [ref=e517]: - generic [ref=e519]: 20% - combobox "B2C *" [ref=e520] - button [ref=e522] [cursor=pointer]: 󰍝 - generic: - generic: B2C * - alert [ref=e523] - generic [ref=e526]: - combobox [ref=e528]: - generic [ref=e530]: - generic [ref=e532]: 20% - combobox "B2B *" [active] [ref=e533]: 20% - button [ref=e535] [cursor=pointer]: 󰍝 - generic: - generic: B2B * - alert [ref=e536] - group "Booking portal" [ref=e538]: - heading "Booking portal" [level=3] [ref=e540]: - generic [ref=e542]: Booking portal - generic [ref=e549]: - generic [ref=e550]: - tablist [ref=e551]: - generic: - generic: 󰅁 - generic [ref=e553]: - tab "English" [selected] [ref=e554] [cursor=pointer]: - generic [ref=e555]: English - tab "Swedish" [ref=e556] [cursor=pointer]: - generic [ref=e557]: Swedish - tab "Slovenian" [ref=e558] [cursor=pointer]: - generic [ref=e559]: Slovenian - tab "Russian" [ref=e560] [cursor=pointer]: - generic [ref=e561]: Russian - tab "Portugese" [ref=e562] [cursor=pointer]: - generic [ref=e563]: Portugese - tab "Polish" [ref=e564] [cursor=pointer]: - generic [ref=e565]: Polish - tab "Norwegian" [ref=e566] [cursor=pointer]: - generic [ref=e567]: Norwegian - tab "Dutch" [ref=e568] [cursor=pointer]: - generic [ref=e569]: Dutch - tab "Latvian" [ref=e570] [cursor=pointer]: - generic [ref=e571]: Latvian - tab "French" [ref=e572] [cursor=pointer]: - generic [ref=e573]: French - tab "Finnish" [ref=e574] [cursor=pointer]: - generic [ref=e575]: Finnish - tab "Spanish" [ref=e576] [cursor=pointer]: - generic [ref=e577]: Spanish - tab "Greek" [ref=e578] [cursor=pointer]: - generic [ref=e579]: Greek - tab "German" [ref=e580] [cursor=pointer]: - generic [ref=e581]: German - tab "Czech" [ref=e582] [cursor=pointer]: - generic [ref=e583]: Czech - tab "Catalan" [ref=e584] [cursor=pointer]: - generic [ref=e585]: Catalan - generic [ref=e587] [cursor=pointer]: 󰅂 - separator [ref=e588] - generic [ref=e590]: - generic [ref=e593]: - generic: Short description - textbox "Short description" [ref=e594] - alert [ref=e595] - group "Booking Plan" [ref=e597]: - heading "Booking Plan" [level=3] [ref=e599]: - generic [ref=e601]: Booking Plan - generic [ref=e602]: - generic [ref=e606]: - table [ref=e610]: - rowgroup [ref=e611]: - row "Billing period Discount Price / period (excl. VAT) Period price (excl. VAT) Status" [ref=e612]: - columnheader "Billing period" [ref=e613]: - button "Billing period" [ref=e614] [cursor=pointer]: - generic [ref=e616]: Billing period - generic [ref=e619]: 󰁝 - columnheader "Discount" [ref=e620]: - button "Discount" [ref=e621] [cursor=pointer]: - generic [ref=e623]: Discount - generic [ref=e626]: 󰁝 - columnheader "Price / period (excl. VAT)" [ref=e627]: - button "Price / period (excl. VAT)" [ref=e628] [cursor=pointer]: - generic [ref=e630]: Price / period (excl. VAT) - generic [ref=e633]: 󰁝 - columnheader "Period price (excl. VAT)" [ref=e634]: - button "Period price (excl. VAT)" [ref=e635] [cursor=pointer]: - generic [ref=e637]: Period price (excl. VAT) - generic [ref=e640]: 󰁝 - columnheader "Status" [ref=e641]: - generic [ref=e644]: Status - columnheader [ref=e645]: - button [ref=e646] [cursor=pointer]: - generic [ref=e649]: 󰁝 - row [ref=e650]: - columnheader [ref=e651] - rowgroup [ref=e652]: - row "No data yet" [ref=e653]: - cell "No data yet" [ref=e654]: - generic [ref=e655]: No data yet - generic [ref=e658]: - generic [ref=e659]: - generic [ref=e660]: "Items per page:" - combobox [ref=e663]: - generic [ref=e665] [cursor=pointer]: - generic [ref=e667]: "10" - combobox "Items per page:": "10" - generic [ref=e669]: 󰍝 - generic [ref=e670]: 0-0 of 0 - generic [ref=e671]: - button [disabled]: - generic: - generic: 󰘀 - button [disabled]: - generic: - generic: 󰅁 - button [disabled]: - generic: - generic: 󰅂 - button [disabled]: - generic: - generic: 󰘁 - alert [ref=e672] - button "Add booking plan" [ref=e674] [cursor=pointer]: - generic [ref=e676]: 󰐕 - generic [ref=e677]: Add booking plan - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip - tooltip ``` # Test source ```ts 1 | import { TextAreaField } from '@/manager/shared/components/TextAreaField'; 2 | import { languages } from '@/shared/data/seed-languages'; 3 | import { BaseComponent } from '@/shared/base/BaseComponent'; 4 | import { getInputHostByLabel } from '@/manager/shared/utils/locator-utils'; 5 | import { LanguageKey, LanguageRecordPartial } from '@/shared/types/language-types'; 6 | import { Locator } from '@playwright/test'; 7 | 8 | export class LanguageAwareInput extends BaseComponent { 9 | private readonly main = this.host.getByTestId('language-aware-input'); 10 | private readonly textAreaField = new TextAreaField(getInputHostByLabel(this.main, 'Short description')); 11 | 12 | async fill(values: LanguageRecordPartial): Promise { 13 | for (const [key, value] of Object.entries(values) as [LanguageKey, string | undefined][]) { 14 | if (value === undefined) { 15 | continue; 16 | } 17 | > 18 | await this.getLanguageButton(key).click(); | ^ Error: locator.click: Test timeout of 75000ms exceeded. 19 | await this.textAreaField.fill(value); 20 | } 21 | } 22 | 23 | private getLanguageButton(key: LanguageKey): Locator { 24 | return this.main.getByRole('button', { name: languages[key].name, exact: true }); 25 | } 26 | } 27 | ```