# 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/invoice/invoice-issue-credit-note.spec.ts >> issues a partial credit note for an open invoice with multiple items by unselecting items
- Location: src/manager/tests/e2e/invoice/invoice-issue-credit-note.spec.ts:29:7

# Error details

```
Error: locator.setChecked: Clicking the checkbox did not change its state
Call log:
  - waiting for locator('.v-dialog:has([data-test-id="invoice-issue-credit-note-dialog"]):has(.v-overlay__content:not(.dialog-bottom-transition-enter-active))').locator('fieldset:has(legend:has-text("Items to credit"))').getByTestId('credit-note-line-item').filter({ hasText: 'Elegant Product MYYqDs' }).getByTestId('column-description').locator('input[type=checkbox]:not(.disabled)')
    - locator resolved to <input checked rawlabel="" value="true" type="checkbox" id="checkbox-v-92" aria-disabled="false" aria-label="Elegant Product MYYqDs"/>
  - attempting click action
    - waiting for element to be visible, enabled and stable
    - element is visible, enabled and stable
    - scrolling into view if needed
    - done scrolling
    - performing click action
    - click action done
    - waiting for scheduled navigations to finish
    - navigations have finished

```

# Page snapshot

```yaml
- generic [ref=f1e1]:
  - generic [ref=f1e6]:
    - navigation [ref=f1e7]:
      - generic [ref=f1e9]:
        - link [ref=f1e10] [cursor=pointer]:
          - /url: /
        - generic [ref=f1e11]:
          - generic [ref=f1e12]: KINNOVIS
          - generic [ref=f1e13]: Manager
        - button [ref=f1e15] [cursor=pointer]
      - list [ref=f1e19]:
        - generic [ref=f1e21]: Dashboard
        - link "Tasks" [ref=f1e23] [cursor=pointer]:
          - /url: /tasks
        - link "Facility maps" [ref=f1e30] [cursor=pointer]:
          - /url: /facility-map
          - generic [ref=f1e31]: 󰧾
        - link "Analytics" [ref=f1e35] [cursor=pointer]:
          - /url: /dashboard
          - generic [ref=f1e36]: 󱖶
        - generic [ref=f1e40]: Sales
        - link "Bookings" [ref=f1e42] [cursor=pointer]:
          - /url: /bookings
          - generic [ref=f1e43]: 󰇡
        - link "Customers" [ref=f1e47] [cursor=pointer]:
          - /url: /customers
          - generic [ref=f1e48]: 󰀏
        - link "Invoices" [ref=f1e52] [cursor=pointer]:
          - /url: /invoices
          - generic [ref=f1e53]: 󰷉
        - link "Credit notes" [ref=f1e57] [cursor=pointer]:
          - /url: /credit-notes
        - link "Units" [ref=f1e64] [cursor=pointer]:
          - /url: /units
          - generic [ref=f1e65]: 󰍀
        - generic [ref=f1e69]: Site management
        - link "Locations" [ref=f1e71] [cursor=pointer]:
          - /url: /locations
          - generic [ref=f1e72]: 󰟙
        - link "Unit types" [ref=f1e76] [cursor=pointer]:
          - /url: /unit-types
          - generic [ref=f1e77]: 󰆧
        - link "Protection Plans" [ref=f1e81] [cursor=pointer]:
          - /url: /insurances
          - generic [ref=f1e82]: 󰳌
        - link "Deposits" [ref=f1e86] [cursor=pointer]:
          - /url: /deposits
          - generic [ref=f1e87]: 󱙆
        - link "Products" [ref=f1e91] [cursor=pointer]:
          - /url: /products
          - generic [ref=f1e92]: 󰄑
        - link "Discounts" [ref=f1e96] [cursor=pointer]:
          - /url: /discounts
          - generic [ref=f1e97]: 󰓼
        - generic [ref=f1e101]:
          - option "Emails" [ref=f1e102] [cursor=pointer]:
            - generic [ref=f1e103]: 󰻨
            - generic [ref=f1e107]: 󰅀
          - text: 󱡰 󰁥
        - link "Document templates" [ref=f1e111] [cursor=pointer]:
          - /url: /document-templates
          - generic [ref=f1e112]: 󰷉
        - generic [ref=f1e116]: Admin
        - link "Integrations" [ref=f1e118] [cursor=pointer]:
          - /url: /connected-apps
          - generic [ref=f1e119]: 󱘖
        - link "User & Roles" [ref=f1e123] [cursor=pointer]:
          - /url: /users
          - generic [ref=f1e124]: 󰭘
        - generic [ref=f1e128]:
          - option "Booking Portal" [ref=f1e129] [cursor=pointer]:
            - generic [ref=f1e130]: 󱃁
            - generic [ref=f1e134]: 󰅀
          - text: 󰖟 󰟙
        - generic [ref=f1e138]:
          - option "JaneAI" [ref=f1e139] [cursor=pointer]:
            - generic [ref=f1e140]: 󱙺
            - generic [ref=f1e144]: 󰅀
          - text: 󱜹
        - generic [ref=f1e148]: Feedback
        - link "Voting Portal" [ref=f1e150] [cursor=pointer]:
          - /url: /voting-portal
          - generic [ref=f1e151]: 󰔔
      - generic [ref=f1e157]:
        - button "AS Andreas Stadler andreas.stadler@storeroom.at" [ref=f1e160] [cursor=pointer]:
          - generic [ref=f1e161]: AS
          - generic [ref=f1e164]:
            - generic [ref=f1e165]: Andreas Stadler
            - generic "andreas.stadler@storeroom.at" [ref=f1e166]
          - generic [ref=f1e167]: 󰇙
          - generic: 󰗊 󰅀 󰷖 󰍃
        - button [ref=f1e168] [cursor=pointer]:
          - generic [ref=f1e169]: 󰋽
    - main [ref=f1e171]:
      - generic [ref=f1e173]:
        - generic [ref=f1e175]:
          - generic [ref=f1e176]:
            - link "Invoices" [ref=f1e177] [cursor=pointer]:
              - /url: /invoices
            - generic [ref=f1e179]: 󰅂
            - generic [ref=f1e180]: INV-2103883
            - generic [ref=f1e181]: Open
          - button [ref=f1e187] [cursor=pointer]:
            - generic [ref=f1e188]:
              - text: Actions
              - generic [ref=f1e189]: 󱨉
            - generic: 󰇚 󱴆 󱳱 󱤒 󰆛 󰗡 󱈎
        - generic [ref=f1e191]:
          - generic [ref=f1e193]:
            - heading "General" [level=3] [ref=f1e197]
            - table [ref=f1e200]:
              - rowgroup [ref=f1e201]:
                - row [ref=f1e202]:
                  - rowheader "Location" [ref=f1e203]
                  - cell "Vienna South" [ref=f1e204]
                - row [ref=f1e207]:
                  - rowheader "Issue date" [ref=f1e208]
                  - cell "18 Aug 2026" [ref=f1e209]
                - row [ref=f1e212]:
                  - rowheader "Due date" [ref=f1e213]
                  - cell "20 Aug 2026" [ref=f1e214]
                - row [ref=f1e217]:
                  - rowheader "Total" [ref=f1e218]
                  - cell "€840.00" [ref=f1e219]
                - row [ref=f1e222]:
                  - rowheader "Amount due" [ref=f1e223]
                  - cell "€840.00" [ref=f1e224]
                - row [ref=f1e227]:
                  - rowheader "Period" [ref=f1e228]
                  - cell "-" [ref=f1e229]
                - row [ref=f1e232]:
                  - rowheader "Payment option" [ref=f1e233]
                  - cell "Manual" [ref=f1e234]
                - row [ref=f1e237]:
                  - rowheader "Payment link" [ref=f1e238]
                  - cell "https://invoice.stripe.com/i/acct_1MeJfDB0vsavZFES/test_YWNjdF8xTWVKZkRCMHZzYXZaRkVTLF9WNW1QUnBkOWROVUdHRzJsVEY5cEllVUszbWRWZ3ZvLDE3NzU1MzU1Nw0200lpZqzMxC?s=ap" [ref=f1e239]:
                    - generic [ref=f1e240]:
                      - generic [ref=f1e241]: https://invoice.stripe.com/i/acct_1MeJfDB0vsavZFES/test_YWNjdF8xTWVKZkRCMHZzYXZaRkVTLF9WNW1QUnBkOWROVUdHRzJsVEY5cEllVUszbWRWZ3ZvLDE3NzU1MzU1Nw0200lpZqzMxC?s=ap
                      - button [ref=f1e245] [cursor=pointer]:
                        - generic [ref=f1e246]: 󰏌
          - generic [ref=f1e249]:
            - heading "Customer details" [level=3] [ref=f1e253]
            - table [ref=f1e256]:
              - rowgroup [ref=f1e257]:
                - row [ref=f1e258]:
                  - rowheader "Name" [ref=f1e259]
                  - cell [ref=f1e260]:
                    - link "Leona Sporer" [ref=f1e263] [cursor=pointer]:
                      - /url: /customers/1590050088
                - row [ref=f1e266]:
                  - rowheader "Customer type" [ref=f1e267]
                  - cell "Private" [ref=f1e268]
                - row [ref=f1e271]:
                  - rowheader "Email" [ref=f1e272]
                  - cell [ref=f1e273]:
                    - link "claudie_kassulke54@hotmail.com" [ref=f1e276] [cursor=pointer]:
                      - /url: mailto:claudie_kassulke54@hotmail.com
                - row [ref=f1e277]:
                  - rowheader "Phone number" [ref=f1e278]
                  - cell "+43 2514 044369" [ref=f1e279]
                - row [ref=f1e282]:
                  - rowheader "Billing address" [ref=f1e283]
                  - cell "Haley Mall 33537-9201 North Kiel Austria" [ref=f1e284]
          - generic [ref=f1e288]:
            - heading "Payments" [level=3] [ref=f1e292]
            - generic [ref=f1e296]:
              - table [ref=f1e300]:
                - rowgroup [ref=f1e301]:
                  - row [ref=f1e302]:
                    - columnheader [ref=f1e303]:
                      - button "Total" [ref=f1e304] [cursor=pointer]:
                        - generic [ref=f1e307]: 󰁝
                    - columnheader [ref=f1e310]:
                      - button "Status" [ref=f1e311] [cursor=pointer]:
                        - generic [ref=f1e314]: 󰁝
                    - columnheader [ref=f1e317]:
                      - button "Invoice no." [ref=f1e318] [cursor=pointer]:
                        - generic [ref=f1e321]: 󰁝
                    - columnheader [ref=f1e324]:
                      - button "Date" [ref=f1e325] [cursor=pointer]:
                        - generic [ref=f1e328]: 󰁝
                    - columnheader [ref=f1e331]:
                      - button "Payment method" [ref=f1e332] [cursor=pointer]:
                        - generic [ref=f1e335]: 󰁝
                  - row [ref=f1e338]:
                    - columnheader [ref=f1e339]
                - rowgroup [ref=f1e340]:
                  - row [ref=f1e341]:
                    - cell "€840.00" [ref=f1e342]
                    - cell "Not paid yet" [ref=f1e344]
                    - cell "INV-2103883" [ref=f1e349]
                    - cell "18 Aug 2026" [ref=f1e351]
                    - cell [ref=f1e353]
              - generic [ref=f1e356]:
                - generic [ref=f1e357]:
                  - generic [ref=f1e358]: "Items per page:"
                  - combobox [ref=f1e361]:
                    - generic [ref=f1e363] [cursor=pointer]:
                      - generic [ref=f1e364]: "10"
                      - combobox "Items per page:": "10"
                    - generic [ref=f1e366]: 󰍝
                - generic [ref=f1e368]: 1-1 of 1
                - generic [ref=f1e369]:
                  - button [disabled]:
                    - generic: 󰘀
                  - button [disabled]:
                    - generic: 󰅁
                  - button [disabled]:
                    - generic: 󰅂
                  - button [disabled]:
                    - generic: 󰘁
          - generic [ref=f1e372]:
            - heading "Late Fees" [level=3] [ref=f1e377]
            - generic [ref=f1e381]:
              - table [ref=f1e385]:
                - rowgroup [ref=f1e386]:
                  - row [ref=f1e387]:
                    - columnheader "Invoice no." [ref=f1e388]
                    - columnheader "Invoice note" [ref=f1e392]
                    - columnheader "Created by" [ref=f1e396]
                    - columnheader "Total" [ref=f1e400]
                    - columnheader "Status" [ref=f1e404]
                    - columnheader "Issue date" [ref=f1e408]
                    - columnheader "Due date" [ref=f1e412]
                  - row [ref=f1e416]:
                    - columnheader [ref=f1e417]
                - rowgroup [ref=f1e418]:
                  - row [ref=f1e419]:
                    - cell "No data yet" [ref=f1e420]
              - generic [ref=f1e424]:
                - generic [ref=f1e425]:
                  - generic [ref=f1e426]: "Items per page:"
                  - combobox [ref=f1e429]:
                    - generic [ref=f1e431] [cursor=pointer]:
                      - generic [ref=f1e432]: "10"
                      - combobox "Items per page:": "10"
                    - generic [ref=f1e434]: 󰍝
                - generic [ref=f1e436]: 0-0 of 0
                - generic [ref=f1e437]:
                  - button [disabled]:
                    - generic: 󰘀
                  - button [disabled]:
                    - generic: 󰅁
                  - button [disabled]:
                    - generic: 󰅂
                  - button [disabled]:
                    - generic: 󰘁
  - generic:
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - tooltip
    - dialog:
      - generic [ref=f1e440]:
        - generic [ref=f1e441]:
          - generic [ref=f1e443]:
            - generic [ref=f1e444]:
              - button [ref=f1e445] [cursor=pointer]:
                - generic [ref=f1e446]: 󰅖
              - heading "Issue Credit Note" [level=2] [ref=f1e449]
            - button "Save" [ref=f1e451] [cursor=pointer]
          - separator [ref=f1e453]
        - generic [ref=f1e455]:
          - group [ref=f1e456]:
            - heading "Invoice INV-2103883 Open" [level=3] [ref=f1e458]:
              - generic [ref=f1e460]:
                - text: Invoice INV-2103883
                - generic [ref=f1e461]: Open
            - generic [ref=f1e465]:
              - generic [ref=f1e467]:
                - textbox "Reason *" [ref=f1e469]: Example reason!
                - generic: Reason *
              - alert [ref=f1e470]
          - group [ref=f1e472]:
            - heading "Items to credit" [level=3] [ref=f1e474]
            - generic [ref=f1e477]:
              - generic [ref=f1e478]:
                - table [ref=f1e480]:
                  - rowgroup [ref=f1e481]:
                    - row [ref=f1e482]:
                      - columnheader "Description" [ref=f1e483]
                      - columnheader "Credit QTY" [ref=f1e484]
                      - columnheader "Price" [ref=f1e485]
                      - columnheader "VAT" [ref=f1e486]
                      - columnheader "Net credit amount" [ref=f1e487]
                  - rowgroup [ref=f1e488]:
                    - row [ref=f1e489]:
                      - cell "Electronic Product 4myHO1 Electronic Product 4myHO1" [ref=f1e490]:
                        - generic [ref=f1e493]:
                          - generic [ref=f1e495]:
                            - generic [ref=f1e496]: 󰄲
                            - checkbox "Electronic Product 4myHO1" [checked] [ref=f1e497] [cursor=pointer]
                          - generic [ref=f1e498] [cursor=pointer]: Electronic Product 4myHO1
                      - cell [ref=f1e499]:
                        - generic [ref=f1e500]:
                          - combobox [ref=f1e502]:
                            - generic [ref=f1e504]:
                              - generic [ref=f1e505]: "1"
                              - combobox [ref=f1e507]
                            - button [ref=f1e509] [cursor=pointer]: 󰍝
                          - alert [ref=f1e510]
                      - cell "€100.00" [ref=f1e512]
                      - cell "20%" [ref=f1e513]
                      - cell "100 €" [ref=f1e514]:
                        - generic [ref=f1e515]:
                          - generic [ref=f1e518]:
                            - spinbutton [ref=f1e519]: "100"
                            - generic [ref=f1e520]: €
                          - alert [ref=f1e522]
                    - row [ref=f1e524]:
                      - cell "Elegant Product MYYqDs Elegant Product MYYqDs" [ref=f1e525]:
                        - generic [ref=f1e528]:
                          - generic [ref=f1e530]:
                            - generic [ref=f1e531]: 󰄲
                            - checkbox "Elegant Product MYYqDs" [checked] [active] [ref=f1e532] [cursor=pointer]
                          - generic [ref=f1e533] [cursor=pointer]: Elegant Product MYYqDs
                      - cell [ref=f1e534]:
                        - generic [ref=f1e535]:
                          - combobox [ref=f1e537]:
                            - generic [ref=f1e539]:
                              - generic [ref=f1e540]: "3"
                              - combobox [ref=f1e542]
                            - button [ref=f1e544] [cursor=pointer]: 󰍝
                          - alert [ref=f1e545]
                      - cell "€200.00" [ref=f1e547]
                      - cell "20%" [ref=f1e548]
                      - cell "600 €" [ref=f1e549]:
                        - generic [ref=f1e550]:
                          - generic [ref=f1e553]:
                            - spinbutton [ref=f1e554]: "600"
                            - generic [ref=f1e555]: €
                          - alert [ref=f1e557]
                - alert [ref=f1e559]
              - generic [ref=f1e563]:
                - generic [ref=f1e564]:
                  - generic [ref=f1e565]: Total excl.VAT
                  - generic [ref=f1e566]: €700.00
                - generic [ref=f1e567]:
                  - generic [ref=f1e568]: VAT
                  - generic [ref=f1e569]: €140.00
                - generic [ref=f1e570]:
                  - generic [ref=f1e571]: Total incl.VAT
                  - generic [ref=f1e572]: €840.00
          - generic [ref=f1e574]:
            - generic [ref=f1e575]: 󰋽
            - generic [ref=f1e577]: The customer will receive an email with the credit note + an adjusted invoice attached. The invoice will be adjusted with the credited amount. The payment link will be updated for the correct amount as well.
    - tooltip
```

# Test source

```ts
  1  | import { BaseComponent } from '@/shared/base/BaseComponent';
  2  | 
  3  | export class Checkbox extends BaseComponent {
  4  |   private readonly input = this.host.locator('input[type=checkbox]:not(.disabled)');
  5  | 
  6  |   set(state: boolean): Promise<void> {
> 7  |     return this.input.setChecked(state);
     |                       ^ Error: locator.setChecked: Clicking the checkbox did not change its state
  8  |   }
  9  | }
  10 | 
```