# 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/customer/customer-edit.spec.ts >> should edit the address of a business German customer
- Location: src/manager/tests/e2e/customer/customer-edit.spec.ts:6:7

# Error details

```
Test timeout of 60000ms exceeded.
```

```
Error: locator.fill: Test timeout of 60000ms exceeded.
Call log:
  - waiting for locator('.v-dialog:has([data-test-id="customer-edit-general-dialog"]):has(.v-overlay__content:not(.dialog-bottom-transition-enter-active))').locator('.v-input:has(label:has-text("Postal code"))').locator('input[type=text]')

```

# 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=e14] [cursor=pointer]:
          - generic [ref=e18]: AS
          - generic:
            - text: 󰗊 󰅀
            - text: 󰷖 󰍃
    - navigation [ref=e19]:
      - list [ref=e21]:
        - generic [ref=e23]: Dashboard
        - link "Tasks" [ref=e24] [cursor=pointer]:
          - /url: /tasks
          - img [ref=e27]
          - generic [ref=e30]: Tasks
        - link "Facility maps" [ref=e31] [cursor=pointer]:
          - /url: /facility-map
          - generic [ref=e33]: 󰧾
          - generic [ref=e35]: Facility maps
        - link "Analytics" [ref=e36] [cursor=pointer]:
          - /url: /dashboard
          - generic [ref=e38]: 󱖶
          - generic [ref=e40]: Analytics
        - generic [ref=e42]: Sales
        - link "Bookings" [ref=e43] [cursor=pointer]:
          - /url: /bookings
          - generic [ref=e45]: 󰇡
          - generic [ref=e47]: Bookings
        - link "Customers" [ref=e48] [cursor=pointer]:
          - /url: /customers
          - generic [ref=e50]: 󰀏
          - generic [ref=e52]: Customers
        - link "Invoices" [ref=e53] [cursor=pointer]:
          - /url: /invoices
          - generic [ref=e55]: 󰷉
          - generic [ref=e57]: Invoices
        - link "Credit notes" [ref=e58] [cursor=pointer]:
          - /url: /credit-notes
          - img [ref=e61]
          - generic [ref=e64]: Credit notes
        - link "Units" [ref=e65] [cursor=pointer]:
          - /url: /units
          - generic [ref=e67]: 󰍀
          - generic [ref=e69]: Units
        - generic [ref=e71]: Site Management
        - link "Locations" [ref=e72] [cursor=pointer]:
          - /url: /locations
          - generic [ref=e74]: 󰟙
          - generic [ref=e76]: Locations
        - link "Unit types" [ref=e77] [cursor=pointer]:
          - /url: /unit-types
          - generic [ref=e79]: 󰆧
          - generic [ref=e81]: Unit types
        - link "Protection Plans" [ref=e82] [cursor=pointer]:
          - /url: /insurances
          - generic [ref=e84]: 󰳌
          - generic [ref=e86]: Protection Plans
        - link "Deposits" [ref=e87] [cursor=pointer]:
          - /url: /deposits
          - generic [ref=e89]: 󱙆
          - generic [ref=e91]: Deposits
        - link "Products" [ref=e92] [cursor=pointer]:
          - /url: /products
          - generic [ref=e94]: 󰄑
          - generic [ref=e96]: Products
        - link "Discounts" [ref=e97] [cursor=pointer]:
          - /url: /discounts
          - generic [ref=e99]: 󰓼
          - generic [ref=e101]: Discounts
        - generic [ref=e102]:
          - option "Emails" [ref=e103] [cursor=pointer]:
            - generic [ref=e105]: 󰻨
            - generic [ref=e107]: Emails
            - generic [ref=e109]: 󰅀
          - text: 󱡰 󰁥
        - generic [ref=e111]: Admin
        - link "Integrations" [ref=e112] [cursor=pointer]:
          - /url: /connected-apps
          - generic [ref=e114]: 󱘖
          - generic [ref=e116]: Integrations
        - link "User & Roles" [ref=e117] [cursor=pointer]:
          - /url: /users
          - generic [ref=e119]: 󰭘
          - generic [ref=e121]: User & Roles
        - generic [ref=e122]:
          - option "Booking Portal" [ref=e123] [cursor=pointer]:
            - generic [ref=e125]: 󱃁
            - generic [ref=e127]: Booking Portal
            - generic [ref=e129]: 󰅀
          - text: 󰖟 󰟙
        - generic [ref=e130]:
          - option "JaneAI" [ref=e131] [cursor=pointer]:
            - generic [ref=e133]: 󱙺
            - generic [ref=e135]: JaneAI
            - generic [ref=e137]: 󰅀
          - text: 󱜹
        - generic [ref=e139]: Feedback
        - link "Voting Portal" [ref=e140] [cursor=pointer]:
          - /url: /voting-portal
          - generic [ref=e142]: 󰔔
          - generic [ref=e144]: Voting Portal
    - main [ref=e145]:
      - generic [ref=e146]:
        - generic [ref=e148]:
          - generic [ref=e149]:
            - link [ref=e151] [cursor=pointer]:
              - /url: /customers
              - generic [ref=e153]: 󰁍
            - generic [ref=e156]:
              - generic [ref=e157]: Customers
              - generic [ref=e158]:
                - heading "Fabian Mustermann AG" [level=1] [ref=e159]:
                  - generic [ref=e160]: Fabian Mustermann AG
                - generic [ref=e163]: Lead
          - button "Actions" [ref=e165] [cursor=pointer]:
            - generic [ref=e166]:
              - text: Actions
              - generic [ref=e167]: 󱨉
        - generic [ref=e168]:
          - generic [ref=e169]:
            - generic [ref=e170]:
              - generic [ref=e171]:
                - generic [ref=e173]:
                  - heading "General" [level=3] [ref=e175]
                  - link [ref=e177] [cursor=pointer]:
                    - /url: /customers/1013101310/edit/general
                    - generic [ref=e179]: 󰲶
                - table [ref=e182]:
                  - rowgroup [ref=e183]:
                    - row "Locations Storeroom Innsbruck Vienna North Vienna South" [ref=e184]:
                      - rowheader "Locations" [ref=e185]
                      - cell "Storeroom Innsbruck Vienna North Vienna South" [ref=e186]:
                        - generic [ref=e189]:
                          - generic [ref=e191]: Storeroom Innsbruck
                          - generic [ref=e193]: Vienna North
                          - generic [ref=e195]: Vienna South
                    - row "Customer type Business" [ref=e196]:
                      - rowheader "Customer type" [ref=e197]
                      - cell "Business" [ref=e198]:
                        - generic [ref=e200]: Business
                    - row "Company name Fabian Mustermann AG" [ref=e201]:
                      - rowheader "Company name" [ref=e202]
                      - cell "Fabian Mustermann AG" [ref=e203]:
                        - generic [ref=e205]: Fabian Mustermann AG
                    - row "VAT type -" [ref=e206]:
                      - rowheader "VAT type" [ref=e207]
                      - cell "-" [ref=e208]:
                        - generic [ref=e210]: "-"
                    - row "VAT number AT1013" [ref=e211]:
                      - rowheader "VAT number" [ref=e212]
                      - cell "AT1013" [ref=e213]:
                        - generic [ref=e215]: AT1013
                    - row "Name Fabian" [ref=e216]:
                      - rowheader "Name" [ref=e217]
                      - cell "Fabian" [ref=e218]:
                        - generic [ref=e220]: Fabian
                    - row "Email fabian.mustermann@gmail.com" [ref=e221]:
                      - rowheader "Email" [ref=e222]
                      - cell "fabian.mustermann@gmail.com" [ref=e223]:
                        - generic [ref=e225]: fabian.mustermann@gmail.com
                    - row "Phone number +44 12341013" [ref=e226]:
                      - rowheader "Phone number" [ref=e227]
                      - cell "+44 12341013" [ref=e228]:
                        - generic [ref=e230]: +44 12341013
                    - row "Language DE" [ref=e231]:
                      - rowheader "Language" [ref=e232]
                      - cell "DE" [ref=e233]:
                        - generic [ref=e235]: DE
                    - row "Address Mustermann Street 1013 Las Vegas United Kingdom" [ref=e236]:
                      - rowheader "Address" [ref=e237]
                      - cell "Mustermann Street 1013 Las Vegas United Kingdom" [ref=e238]:
                        - generic [ref=e240]: Mustermann Street 1013 Las Vegas United Kingdom
                    - row "Note -" [ref=e241]:
                      - rowheader "Note" [ref=e242]
                      - cell "-" [ref=e243]:
                        - generic [ref=e245]: "-"
              - generic [ref=e246]:
                - heading "Optional Consents" [level=3] [ref=e250]
                - table [ref=e253]:
                  - rowgroup [ref=e254]:
                    - row "Marketing/Newsletter Not agreed" [ref=e255]:
                      - rowheader "Marketing/Newsletter" [ref=e256]
                      - cell "Not agreed" [ref=e257]:
                        - generic [ref=e260]:
                          - checkbox [ref=e268] [cursor=pointer]
                          - generic [ref=e269]: Not agreed
            - generic [ref=e270]:
              - generic [ref=e271]:
                - generic [ref=e273]:
                  - heading "Details" [level=3] [ref=e275]
                  - link [ref=e277] [cursor=pointer]:
                    - /url: /customers/1013101310/edit/details
                    - generic [ref=e279]: 󰲶
                - table [ref=e282]:
                  - rowgroup [ref=e283]:
                    - row "Customer number 1013-1013-10" [ref=e284]:
                      - rowheader "Customer number" [ref=e285]
                      - cell "1013-1013-10" [ref=e286]:
                        - generic [ref=e288]: 1013-1013-10
                    - row "Created at 8 Apr 2026" [ref=e289]:
                      - rowheader "Created at" [ref=e290]
                      - cell "8 Apr 2026" [ref=e291]:
                        - generic [ref=e293]: 8 Apr 2026
                    - row "Total spent €0.00" [ref=e294]:
                      - rowheader "Total spent" [ref=e295]
                      - cell "€0.00" [ref=e296]:
                        - generic [ref=e298]: €0.00
                    - row "Total past due amount €0.00" [ref=e299]:
                      - rowheader "Total past due amount" [ref=e300]
                      - cell "€0.00" [ref=e301]:
                        - generic [ref=e303]: €0.00
                    - row "Payment methods -" [ref=e304]:
                      - rowheader "Payment methods" [ref=e305]
                      - cell "-" [ref=e306]:
                        - generic [ref=e309]: "-"
                    - row "Accounts receivable number -" [ref=e310]:
                      - rowheader "Accounts receivable number" [ref=e311]
                      - cell "-" [ref=e312]:
                        - generic [ref=e314]: "-"
              - generic [ref=e315]:
                - heading "Customer credit balance" [level=3] [ref=e319]
                - generic [ref=e322]:
                  - generic [ref=e323]:
                    - generic "Vienna South, Vienna North" [ref=e324]
                    - generic [ref=e325]:
                      - generic [ref=e326]: €0.00
                      - button [ref=e328] [cursor=pointer]:
                        - generic [ref=e330]: 󰇘
                  - generic [ref=e331]:
                    - generic "Storeroom Innsbruck" [ref=e332]
                    - generic [ref=e333]:
                      - generic [ref=e334]: €0.00
                      - button [ref=e336] [cursor=pointer]:
                        - generic [ref=e338]: 󰇘
          - generic [ref=e340]:
            - heading "Requests" [level=3] [ref=e344]
            - generic [ref=e349]:
              - generic [ref=e351]:
                - generic [ref=e357]:
                  - button [ref=e358] [cursor=pointer]:
                    - generic [ref=e360]: 󱒇
                  - generic: 󰄲 󰄲 󰄱 󰄲 󰄲 󰄲 󰄲 󰄲 󰄲 󰄲 󰄲
                - table [ref=e362]:
                  - rowgroup [ref=e363]:
                    - row "Location Unit type Requested at Move-in Booking plan Protection plan One-time products Recurring products Request type Task" [ref=e364]:
                      - columnheader "Location" [ref=e365]:
                        - button "Location" [ref=e366] [cursor=pointer]:
                          - generic [ref=e368]: Location
                          - generic [ref=e371]: 󰁝
                      - columnheader "Unit type" [ref=e372]:
                        - button "Unit type" [ref=e373] [cursor=pointer]:
                          - generic [ref=e375]: Unit type
                          - generic [ref=e378]: 󰁝
                      - columnheader "Requested at" [ref=e379]:
                        - button "Requested at" [ref=e380] [cursor=pointer]:
                          - generic [ref=e382]: Requested at
                          - generic [ref=e385]: 󰁝
                      - columnheader "Move-in" [ref=e386]:
                        - button "Move-in" [ref=e387] [cursor=pointer]:
                          - generic [ref=e389]: Move-in
                          - generic [ref=e392]: 󰁝
                      - columnheader "Booking plan" [ref=e393]:
                        - button "Booking plan" [ref=e394] [cursor=pointer]:
                          - generic [ref=e396]: Booking plan
                          - generic [ref=e399]: 󰁝
                      - columnheader "Protection plan" [ref=e400]:
                        - button "Protection plan" [ref=e401] [cursor=pointer]:
                          - generic [ref=e403]: Protection plan
                          - generic [ref=e406]: 󰁝
                      - columnheader "One-time products" [ref=e407]:
                        - generic [ref=e410]: One-time products
                      - columnheader "Recurring products" [ref=e411]:
                        - generic [ref=e414]: Recurring products
                      - columnheader "Request type" [ref=e415]:
                        - button "Request type" [ref=e416] [cursor=pointer]:
                          - generic [ref=e418]: Request type
                          - generic [ref=e421]: 󰁝
                      - columnheader "Task" [ref=e422]:
                        - generic [ref=e425]: Task
                    - row [ref=e426]:
                      - columnheader [ref=e427]
                  - rowgroup [ref=e428]:
                    - row "No data yet" [ref=e429]:
                      - cell "No data yet" [ref=e430]:
                        - generic [ref=e431]: No data yet
              - generic [ref=e434]:
                - generic [ref=e435]:
                  - generic [ref=e436]: "Items per page:"
                  - combobox [ref=e439] [cursor=pointer]:
                    - generic [ref=e441]:
                      - generic [ref=e443]: "10"
                      - combobox "Items per page:": "10"
                    - generic [ref=e445]: 󰍝
                - generic [ref=e446]: 0-0 of 0
                - generic [ref=e447]:
                  - button [disabled]:
                    - generic:
                      - generic: 󰘀
                  - button [disabled]:
                    - generic:
                      - generic: 󰅁
                  - button [disabled]:
                    - generic:
                      - generic: 󰅂
                  - button [disabled]:
                    - generic:
                      - generic: 󰘁
    - contentinfo [ref=e448]:
      - generic [ref=e449]:
        - generic [ref=e450]:
          - text: Kinnovis GmbH
          - generic [ref=e451]: 󰗦
          - text: "2026"
        - generic [ref=e452]: v2026.04.03
  - generic:
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - dialog:
      - generic [ref=e455]:
        - heading "General" [level=3] [ref=e459]
        - generic [ref=e462]:
          - group [ref=e463]:
            - generic [ref=e464]:
              - generic [ref=e466]:
                - combobox [ref=e468]:
                  - generic [ref=e470]:
                    - generic [ref=e472]: Business
                    - combobox "Customer type *" [ref=e473]
                  - button [ref=e475] [cursor=pointer]: 󰍝
                  - generic:
                    - generic: Customer type *
                - alert [ref=e476]
              - generic [ref=e479]:
                - combobox [ref=e481]:
                  - generic [ref=e482]:
                    - generic: Add another location
                    - combobox "Add another location" [ref=e484]
                  - button [ref=e486] [cursor=pointer]: 󰍝
                - alert [ref=e487]
            - generic [ref=e491]:
              - generic [ref=e493]:
                - textbox "Company name *" [ref=e495]: Fabian Mustermann AG
                - generic:
                  - generic: Company name *
              - alert [ref=e496]
            - generic [ref=e499]:
              - generic [ref=e501]:
                - combobox [ref=e503]:
                  - generic [ref=e504]:
                    - generic: VAT type
                    - combobox "VAT type" [ref=e506]
                  - text: 󰅙
                  - button [ref=e508] [cursor=pointer]: 󰍝
                - alert [ref=e509]
              - generic [ref=e512]:
                - generic [ref=e514]:
                  - textbox "VAT number" [ref=e516]: AT1013
                  - generic:
                    - generic: VAT number
                - alert [ref=e517]
            - generic [ref=e519]:
              - generic [ref=e521]:
                - generic [ref=e523]:
                  - textbox "First name" [ref=e525]: Fabian
                  - generic:
                    - generic: First name
                - alert [ref=e526]
              - generic [ref=e529]:
                - generic [ref=e532]:
                  - generic: Last name
                  - textbox "Last name" [ref=e533]
                - alert [ref=e534]
              - generic [ref=e537]:
                - generic [ref=e539]:
                  - textbox "Email address *" [ref=e541]: fabian.mustermann@gmail.com
                  - generic:
                    - generic: Email address *
                - alert [ref=e542]
              - generic [ref=e546]:
                - generic [ref=e550]:
                  - generic [ref=e552]:
                    - button "United Kingdom of Great Britain and Northern Ireland" [ref=e553] [cursor=pointer]:
                      - generic [ref=e554]:
                        - img "United Kingdom of Great Britain and Northern Ireland" [ref=e555]
                        - generic [ref=e556]: 󰍝
                    - generic [ref=e557]: "+44"
                  - textbox "Phone number *" [ref=e559]: "12341013"
                  - generic:
                    - generic: Phone number *
                - alert [ref=e560]
              - generic [ref=e563]:
                - combobox [ref=e565]:
                  - generic [ref=e567]:
                    - generic [ref=e569]: German
                    - combobox "Language *" [ref=e570]
                  - button [ref=e572] [cursor=pointer]: 󰍝
                  - generic:
                    - generic: Language *
                - alert [ref=e573]
              - generic [ref=e576]:
                - generic [ref=e579]:
                  - generic: Note
                  - textbox "Note" [ref=e580]
                - alert [ref=e581]
          - group [ref=e583]:
            - generic [ref=e584]:
              - generic [ref=e586]:
                - generic [ref=e588]:
                  - textbox "Street / House Number / Building *" [ref=e590]: Mustermann Street
                  - generic:
                    - generic: Street / House Number / Building *
                - alert [ref=e591]
              - generic [ref=e594]:
                - generic [ref=e596]:
                  - textbox "Postal code *" [ref=e598]: "1013"
                  - generic:
                    - generic: Postal code *
                - alert [ref=e599]
              - generic [ref=e602]:
                - generic [ref=e604]:
                  - textbox "City *" [ref=e606]: Las Vegas
                  - generic:
                    - generic: City *
                - alert [ref=e607]
              - generic [ref=e610]:
                - combobox [ref=e612]:
                  - generic [ref=e614]:
                    - generic [ref=e616]: United Kingdom of Great Britain and Northern Ireland
                    - combobox "Country *" [ref=e617]
                  - button [ref=e619] [cursor=pointer]: 󰍝
                  - generic:
                    - generic: Country *
                - alert [ref=e620]
        - contentinfo [ref=e623]:
          - generic [ref=e625]:
            - button "Cancel" [ref=e626] [cursor=pointer]:
              - generic [ref=e627]: Cancel
            - button "Save" [ref=e628] [cursor=pointer]:
              - generic [ref=e629]: Save
```

# Test source

```ts
  1  | import { BaseComponent } from '@/shared/base/BaseComponent';
  2  | 
  3  | export class TextField extends BaseComponent {
  4  |   private readonly input = this.host.locator('input[type=text]');
  5  | 
  6  |   fill(value: string): Promise<void> {
> 7  |     return this.input.fill(value);
     |                       ^ Error: locator.fill: Test timeout of 60000ms exceeded.
  8  |   }
  9  | 
  10 |   clear(): Promise<void> {
  11 |     return this.input.clear();
  12 |   }
  13 | }
  14 | 
```