# Test info

- Name: Feature case for request-listing >> REQ_043 - Share request: Sharing without a message and verify MFA on
- Location: /root/code/portal-automation-test/tests/request/function.spec.ts:1398:9

# Error details

```
Error: Timed out 10000ms waiting for expect(locator).toHaveURL(expected)

Locator: locator(':root')
Expected pattern: /2fa-verification/
Received string:  "https://qa.loprx.com/verify-passcode?email=ducbui313%40testmail.loprx.com"
Call log:
  - expect.toHaveURL with timeout 10000ms
  - waiting for locator(':root')
    14 × locator resolved to <html lang="en">…</html>
       - unexpected value "https://qa.loprx.com/verify-passcode?email=ducbui313%40testmail.loprx.com"

    at /root/code/portal-automation-test/tests/request/function.spec.ts:1429:43
    at /root/code/portal-automation-test/tests/request/function.spec.ts:1408:9
```

# Page snapshot

```yaml
- link "MailpitMailpit":
  - /url: /
  - img "Mailpit"
  - text: Mailpit
- button " Mark unread"
- button " Delete"
- button " Download"
- link "":
  - /url: /view/GbLQmXH4tvrJhxsrmsXyEF
- link "":
  - /url: /view/HtZfXQEkivWTw634wEtidP
- button " Return to inbox 1,547"
- 'link "Portal QA a few seconds ago To: ducbui313@testmail.loprx.com 222404 your passcode for signing in to Portal QA"':
  - /url: /view/GbLQmXH4tvrJhxsrmsXyEF
  - strong: Portal QA
  - text: "a few seconds ago To: ducbui313@testmail.loprx.com 222404 your passcode for signing in to Portal QA"
- 'link "Minh Phong (via Portal QA) a few seconds ago To: ducbui313@testmail.loprx.com Letter of Protection #630061 for Jason Sagtham Shared by Minh Phong"':
  - /url: /view/2RS7DTN77Utwp5MXJHr3yd
  - strong: Minh Phong (via Portal QA)
  - text: "a few seconds ago To: ducbui313@testmail.loprx.com Letter of Protection #630061 for Jason Sagtham Shared by Minh Phong"
- 'link "Minh Phong (via Portal QA) 6 minutes ago To: portal_auto_pharmacy@testmail.loprx.com A Letter of Protection #275078 Shared with you (Patient: &*()_E0S Test27)"':
  - /url: /view/HtZfXQEkivWTw634wEtidP
  - strong: Minh Phong (via Portal QA)
  - text: "6 minutes ago To: portal_auto_pharmacy@testmail.loprx.com A Letter of Protection #275078 Shared with you (Patient: &*()_E0S Test27)"
- 'link "Summary (via Portal Assistant) 11 minutes ago To: portal_auto_lawyer@testmail.loprx.com \"Inbox from B, 2519822480\" - Tri01 Duc left a message in \"Check D...\" room"':
  - /url: /view/eAj6djHsKS45r7f8mDFJj7
  - strong: Summary (via Portal Assistant)
  - text: "11 minutes ago To: portal_auto_lawyer@testmail.loprx.com \"Inbox from B, 2519822480\" - Tri01 Duc left a message in \"Check D...\" room"
- 'link "Summary (via Portal Assistant) 13 minutes ago To: portal_auto_lawyer@testmail.loprx.com \"Reply from B, 3404614335\" - Tri01 Duc made a comment"':
  - /url: /view/Sg5yL5ZhnTPa4ThQMiwz26
  - strong: Summary (via Portal Assistant)
  - text: "13 minutes ago To: portal_auto_lawyer@testmail.loprx.com \"Reply from B, 3404614335\" - Tri01 Duc made a comment"
- 'link "Minh Phong (via Portal QA) 42 minutes ago To: portal_auto_pharmacy@testmail.loprx.com Medical Bill #980637 - &*()_o2h Test27"':
  - /url: /view/gmncDsBDgu3no8YgK6kd5q
  - strong: Minh Phong (via Portal QA)
  - text: "42 minutes ago To: portal_auto_pharmacy@testmail.loprx.com Medical Bill #980637 - &*()_o2h Test27"
- 'link "Portal QA 3 hours ago To: portal_auto_lawyer@testmail.loprx.com 972118 your passcode for signing in to Portal QA"':
  - /url: /view/T2LYBA7ZDUjCNj77meE37S
  - strong: Portal QA
  - text: "3 hours ago To: portal_auto_lawyer@testmail.loprx.com 972118 your passcode for signing in to Portal QA"
- 'link "Portal QA 3 hours ago To: portal_auto_lawyer@testmail.loprx.com Password Reset for the loprx.com"':
  - /url: /view/L7Bh74XqcK2euNhiumnYnk
  - strong: Portal QA
  - text: "3 hours ago To: portal_auto_lawyer@testmail.loprx.com Password Reset for the loprx.com"
- 'link "Portal QA 3 hours ago To: portal_auto_lawyer@testmail.loprx.com 361997 is your recovery code for the loprx.com"':
  - /url: /view/dSwSwsnqKJaV6TJ9QMVAjM
  - strong: Portal QA
  - text: "3 hours ago To: portal_auto_lawyer@testmail.loprx.com 361997 is your recovery code for the loprx.com"
- 'link "Cron Daemon 8 hours ago To: root@testmail.loprx.com Cron <root@portalautomationtesting> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )"':
  - /url: /view/knA2TofxsD59amjFFSxHPM
  - strong: Cron Daemon
  - text: "8 hours ago To: root@testmail.loprx.com Cron <root@portalautomationtesting> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )"
- 'link "Portal QA 12 hours ago To: portal_auto_pharmacy@testmail.loprx.com 896406 your passcode for signing in to Portal QA"':
  - /url: /view/gLqMoSwcoaGRHv25y3y64i
  - strong: Portal QA
  - text: "12 hours ago To: portal_auto_pharmacy@testmail.loprx.com 896406 your passcode for signing in to Portal QA"
- 'link "Minh Phong (via Portal QA) 12 hours ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #281983 for Test Request Shared by Minh Phong"':
  - /url: /view/RmM9A9pAwDey5ie34eoL7a
  - strong: Minh Phong (via Portal QA)
  - text: "12 hours ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #281983 for Test Request Shared by Minh Phong"
- 'link "Summary (via Portal Assistant) 12 hours ago To: portal_auto_pharmacy@testmail.loprx.com \"Please check this comment 4140880419\" - Minh Phong added a comment"':
  - /url: /view/kRibT63vwmQdqoBkaFRs2q
  - strong: Summary (via Portal Assistant)
  - text: "12 hours ago To: portal_auto_pharmacy@testmail.loprx.com \"Please check this comment 4140880419\" - Minh Phong added a comment"
- 'link "Summary (via Portal Assistant) 12 hours ago To: portal_auto_pharmacy@testmail.loprx.com \"Please check this discusssion 3854835132\" - Minh Phong posted a message in \"Newest ...\" room"':
  - /url: /view/nbhLthwCTX25b3zp5Ezwx9
  - strong: Summary (via Portal Assistant)
  - text: "12 hours ago To: portal_auto_pharmacy@testmail.loprx.com \"Please check this discusssion 3854835132\" - Minh Phong posted a message in \"Newest ...\" room"
- 'link "Minh Phong (via Portal QA) 12 hours ago To: portal_auto_pharmacy@testmail.loprx.com [+1] Letter of Protection #543267 Regarding John Doe 65423 1"':
  - /url: /view/SVuKQEyhTp9UQXkurmYWGp
  - strong: Minh Phong (via Portal QA)
  - text: "12 hours ago To: portal_auto_pharmacy@testmail.loprx.com [+1] Letter of Protection #543267 Regarding John Doe 65423"
  - link "1":
    - /url: /search?q=tag%3A1
- 'link "Minh Phong (via Portal QA) 12 hours ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #918138 Regarding John Doe 34274"':
  - /url: /view/6BPr4sTopAsYXb7qSojpym
  - strong: Minh Phong (via Portal QA)
  - text: "12 hours ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #918138 Regarding John Doe 34274"
- 'link "Portal QA 12 hours ago To: ducbui313@testmail.loprx.com 937717 your passcode for signing in to Portal QA"':
  - /url: /view/7bcLSiNCDnozSGodfmeGsb
  - strong: Portal QA
  - text: "12 hours ago To: ducbui313@testmail.loprx.com 937717 your passcode for signing in to Portal QA"
- 'link "Minh Phong (via Portal QA) 12 hours ago To: ducbui313@testmail.loprx.com Letter of Protection #630061 for Jason Sagtham Shared by Minh Phong"':
  - /url: /view/RoX3RsWjj7UZTvP5YW2aEi
  - strong: Minh Phong (via Portal QA)
  - text: "12 hours ago To: ducbui313@testmail.loprx.com Letter of Protection #630061 for Jason Sagtham Shared by Minh Phong"
- 'link "Minh Phong (via Portal QA) 12 hours ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #275078 for &*()_E0S Test27 Shared by Minh Phong"':
  - /url: /view/etMraLsn2GLAwGcuPsemLr
  - strong: Minh Phong (via Portal QA)
  - text: "12 hours ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #275078 for &*()_E0S Test27 Shared by Minh Phong"
- 'link "Minh Phong (via Portal QA) 13 hours ago To: portal_auto_pharmacy@testmail.loprx.com Medical Bill #980637 Regarding &*()_o2h Test27"':
  - /url: /view/ctr8BBsiiJxRtuxWcgTJEC
  - strong: Minh Phong (via Portal QA)
  - text: "13 hours ago To: portal_auto_pharmacy@testmail.loprx.com Medical Bill #980637 Regarding &*()_o2h Test27"
- 'link "Portal QA 15 hours ago To: portal_auto_lawyer@testmail.loprx.com 764706 your passcode for signing in to Portal QA"':
  - /url: /view/SsAQVarFgQeoVLFtuhkqQg
  - strong: Portal QA
  - text: "15 hours ago To: portal_auto_lawyer@testmail.loprx.com 764706 your passcode for signing in to Portal QA"
- 'link "Portal QA 15 hours ago To: portal_auto_lawyer@testmail.loprx.com Password Reset for the loprx.com"':
  - /url: /view/jQvGmCE7ZfVGi7Katj5QSG
  - strong: Portal QA
  - text: "15 hours ago To: portal_auto_lawyer@testmail.loprx.com Password Reset for the loprx.com"
- 'link "Portal QA 15 hours ago To: portal_auto_lawyer@testmail.loprx.com 184214 is your recovery code for the loprx.com"':
  - /url: /view/aYkNdTyED6ZgSXxVyDyBTB
  - strong: Portal QA
  - text: "15 hours ago To: portal_auto_lawyer@testmail.loprx.com 184214 is your recovery code for the loprx.com"
- 'link "Cron Daemon a day ago To: root@testmail.loprx.com Cron <root@portalautomationtesting> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )"':
  - /url: /view/9sH6z3NHAYcQtr8Az849py
  - strong: Cron Daemon
  - text: "a day ago To: root@testmail.loprx.com Cron <root@portalautomationtesting> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )"
- 'link "Portal QA a day ago To: portal_auto_pharmacy@testmail.loprx.com 350103 your passcode for signing in to Portal QA"':
  - /url: /view/fTTQczmUp8AEyNffRAhMAU
  - strong: Portal QA
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com 350103 your passcode for signing in to Portal QA"
- 'link "Minh Phong (via Portal QA) a day ago To: portal_auto_pharmacy@testmail.loprx.com Minh Phong Shared Letter of Protection #281983 for Test Request"':
  - /url: /view/U5hwRMrZsxGf2hQx3UMDfP
  - strong: Minh Phong (via Portal QA)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com Minh Phong Shared Letter of Protection #281983 for Test Request"
- 'link "Summary (via Portal Assistant) a day ago To: portal_auto_pharmacy@testmail.loprx.com \"Please check this comment 8259675325\" - Minh Phong added a comment"':
  - /url: /view/5QVvV5CzEq5H3SemuuG23K
  - strong: Summary (via Portal Assistant)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com \"Please check this comment 8259675325\" - Minh Phong added a comment"
- 'link "Summary (via Portal Assistant) a day ago To: portal_auto_pharmacy@testmail.loprx.com \"Please check this discusssion 7172553595\" - Minh Phong posted a message in \"Newest ...\" room"':
  - /url: /view/C69kupfDZmsgyY86sR8xHh
  - strong: Summary (via Portal Assistant)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com \"Please check this discusssion 7172553595\" - Minh Phong posted a message in \"Newest ...\" room"
- 'link "Minh Phong (via Portal QA) a day ago To: portal_auto_pharmacy@testmail.loprx.com [+1] Letter of Protection #543267 - John Doe 65423 1"':
  - /url: /view/fxpEHMtG3LB4DUu4PSNNQ4
  - strong: Minh Phong (via Portal QA)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com [+1] Letter of Protection #543267 - John Doe 65423"
  - link "1":
    - /url: /search?q=tag%3A1
- 'link "Portal QA a day ago To: portal_auto_pharmacy@testmail.loprx.com 438679 your passcode for signing in to Portal QA"':
  - /url: /view/aZPniyD2Kj4J7eJuUofUCn
  - strong: Portal QA
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com 438679 your passcode for signing in to Portal QA"
- 'link "Minh Phong (via Portal QA) a day ago To: portal_auto_pharmacy@testmail.loprx.com \"This is message for test notification in...\" (from Minh Phong): Letter of Protection #543267 for John Doe 65423"':
  - /url: /view/fcn7RsDsjQQpXWSBqhreSY
  - strong: Minh Phong (via Portal QA)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com \"This is message for test notification in...\" (from Minh Phong): Letter of Protection #543267 for John Doe 65423"
- 'link "Summary (via Portal Assistant) a day ago To: portal_auto_pharmacy@testmail.loprx.com \"This is message for test notification in mail\" - Minh Phong shared a message in \"Room 1\" room"':
  - /url: /view/a2BJMK3wsCGojMpUeyyzcj
  - strong: Summary (via Portal Assistant)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com \"This is message for test notification in mail\" - Minh Phong shared a message in \"Room 1\" room"
- 'link "Portal QA a day ago To: portal_auto_pharmacy@testmail.loprx.com 139952 your passcode for signing in to Portal QA"':
  - /url: /view/nEtTtJLnucLyWYQAAAMG99
  - strong: Portal QA
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com 139952 your passcode for signing in to Portal QA"
- 'link "Minh Phong (via Portal QA) a day ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #918138 - Patient: John Doe 34274"':
  - /url: /view/3wSihHBC6ix3twczXZ4htb
  - strong: Minh Phong (via Portal QA)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #918138 - Patient: John Doe 34274"
- 'link "Portal QA a day ago To: ducbui313@testmail.loprx.com 690832 your passcode for signing in to Portal QA"':
  - /url: /view/FTTa32ekPkReSFNhaxpgzv
  - strong: Portal QA
  - text: "a day ago To: ducbui313@testmail.loprx.com 690832 your passcode for signing in to Portal QA"
- 'link "Minh Phong (via Portal QA) a day ago To: ducbui313@testmail.loprx.com A Letter of Protection #630061 Shared with you (Client: Jason Sagtham)"':
  - /url: /view/BgUMTcxJXwYhkf67GGFVrr
  - strong: Minh Phong (via Portal QA)
  - text: "a day ago To: ducbui313@testmail.loprx.com A Letter of Protection #630061 Shared with you (Client: Jason Sagtham)"
- 'link "Minh Phong (via Portal QA) a day ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #275078 for &*()_E0S Test27 Shared by Minh Phong"':
  - /url: /view/UytY5ra2yNbMGMJX8DDQkm
  - strong: Minh Phong (via Portal QA)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com Letter of Protection #275078 for &*()_E0S Test27 Shared by Minh Phong"
- 'link "Summary (via Portal Assistant) a day ago To: portal_auto_lawyer@testmail.loprx.com \"Inbox from B, 1700488163\" - Tri01 Duc placed a message in \"Check D...\" room"':
  - /url: /view/e8se7zjUqMGg8ehZLwd4SU
  - strong: Summary (via Portal Assistant)
  - text: "a day ago To: portal_auto_lawyer@testmail.loprx.com \"Inbox from B, 1700488163\" - Tri01 Duc placed a message in \"Check D...\" room"
- 'link "Summary (via Portal Assistant) a day ago To: portal_auto_lawyer@testmail.loprx.com \"Reply from B, 2347923670\" - Tri01 Duc added a comment"':
  - /url: /view/5tgKnXyr2pcqsECM8Y7fg6
  - strong: Summary (via Portal Assistant)
  - text: "a day ago To: portal_auto_lawyer@testmail.loprx.com \"Reply from B, 2347923670\" - Tri01 Duc added a comment"
- 'link "Minh Phong (via Portal QA) a day ago To: portal_auto_pharmacy@testmail.loprx.com Information on Medical Bill #980637 for &*()_o2h Test27"':
  - /url: /view/PvZMgdBqNSS437afetybCp
  - strong: Minh Phong (via Portal QA)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com Information on Medical Bill #980637 for &*()_o2h Test27"
- 'link "Portal QA a day ago To: portal_auto_lawyer@testmail.loprx.com 925248 your passcode for signing in to Portal QA"':
  - /url: /view/ax8Mk6S3EoDRpdooMKESiq
  - strong: Portal QA
  - text: "a day ago To: portal_auto_lawyer@testmail.loprx.com 925248 your passcode for signing in to Portal QA"
- 'link "Portal QA a day ago To: portal_auto_lawyer@testmail.loprx.com Password Reset for the loprx.com"':
  - /url: /view/aXEdj2LjyzkC3vpKTtgSKg
  - strong: Portal QA
  - text: "a day ago To: portal_auto_lawyer@testmail.loprx.com Password Reset for the loprx.com"
- 'link "Portal QA a day ago To: portal_auto_lawyer@testmail.loprx.com 419251 is your recovery code for the loprx.com"':
  - /url: /view/hzyaMNLjdyVfGoTphSgKYA
  - strong: Portal QA
  - text: "a day ago To: portal_auto_lawyer@testmail.loprx.com 419251 is your recovery code for the loprx.com"
- 'link "Link Case First (via Portal QA) a day ago To: triducgog0301+2@testmail.loprx.com FYI: Medical Bill #880017 for New Client Link Case 48692352 2"':
  - /url: /view/hzos4TzK9bcNo5XM8aoEoT
  - strong: Link Case First (via Portal QA)
  - text: "a day ago To: triducgog0301+2@testmail.loprx.com FYI: Medical Bill #880017 for New Client Link Case 48692352"
  - link "2":
    - /url: /search?q=tag%3A2
- 'link "Link Case First (via Portal QA) a day ago To: triducgog0301+2@testmail.loprx.com Medical Bill #570426 Regarding New Client Link Case 19929261 2"':
  - /url: /view/Uk7V7ZXF8hVjkAqAeHDrHf
  - strong: Link Case First (via Portal QA)
  - text: "a day ago To: triducgog0301+2@testmail.loprx.com Medical Bill #570426 Regarding New Client Link Case 19929261"
  - link "2":
    - /url: /search?q=tag%3A2
- 'link "Link Case First (via Portal QA) a day ago To: triducgog0301+2@testmail.loprx.com A Medical Bill #404722 Shared with you (Patient: New Client Link Case 66734109) 2"':
  - /url: /view/DtGXEJMhSY7sEQiyWB3JoZ
  - strong: Link Case First (via Portal QA)
  - text: "a day ago To: triducgog0301+2@testmail.loprx.com A Medical Bill #404722 Shared with you (Patient: New Client Link Case 66734109)"
  - link "2":
    - /url: /search?q=tag%3A2
- 'link "Link Case First (via Portal QA) a day ago To: triducgog0301+2@testmail.loprx.com Link Case First Shared Medical Bill #150241 for Alc 001 2"':
  - /url: /view/Lv859AhLmB732AwwHtFRjb
  - strong: Link Case First (via Portal QA)
  - text: "a day ago To: triducgog0301+2@testmail.loprx.com Link Case First Shared Medical Bill #150241 for Alc 001"
  - link "2":
    - /url: /search?q=tag%3A2
- 'link "Portal QA a day ago To: portal_auto_pharmacy@testmail.loprx.com 310486 your passcode for signing in to Portal QA"':
  - /url: /view/hjYfLtTWTYqYZCbKMCZTzn
  - strong: Portal QA
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com 310486 your passcode for signing in to Portal QA"
- 'link "Minh Phong (via Portal QA) a day ago To: portal_auto_pharmacy@testmail.loprx.com Medical Bill #980637 - &*()_o2h Test27"':
  - /url: /view/G5i2kW43QtVerVaYFYyQQL
  - strong: Minh Phong (via Portal QA)
  - text: "a day ago To: portal_auto_pharmacy@testmail.loprx.com Medical Bill #980637 - &*()_o2h Test27"
- 'link "Portal QA a day ago To: portal_auto_lawyer@testmail.loprx.com 437900 your passcode for signing in to Portal QA"':
  - /url: /view/UxjJLSBrkpkvpKhAiyjsfu
  - strong: Portal QA
  - text: "a day ago To: portal_auto_lawyer@testmail.loprx.com 437900 your passcode for signing in to Portal QA"
- 'link "Portal QA a day ago To: portal_auto_lawyer@testmail.loprx.com Password Reset for the loprx.com"':
  - /url: /view/SEKkadcdhPaXaKSFEa6A7P
  - strong: Portal QA
  - text: "a day ago To: portal_auto_lawyer@testmail.loprx.com Password Reset for the loprx.com"
- button " About"
- button ""
- table:
  - rowgroup:
    - row "From Minh Phong (via Portal QA) <support@loprx.com>":
      - cell "From"
      - cell "Minh Phong (via Portal QA) <support@loprx.com>":
        - text: Minh Phong (via Portal QA) <
        - link "support@loprx.com":
          - /url: /search?q=support%40loprx.com
        - text: ">"
    - row "To <ducbui313@testmail.loprx.com>":
      - cell "To"
      - cell "<ducbui313@testmail.loprx.com>":
        - text: <
        - link "ducbui313@testmail.loprx.com":
          - /url: /search?q=ducbui313%40testmail.loprx.com
        - text: ">"
    - row "Bcc <test@localhost>":
      - cell "Bcc"
      - cell "<test@localhost>":
        - text: <
        - link "test@localhost":
          - /url: /search?q=test%40localhost
        - text: ">"
    - row "Reply-To <minhphong.simple@gmail.com>":
      - cell "Reply-To"
      - cell "<minhphong.simple@gmail.com>":
        - text: <
        - link "minhphong.simple@gmail.com":
          - /url: /search?q=minhphong.simple%40gmail.com
        - text: ">"
    - row "Return-Path <bounce+4a2406.e9ccd3-ducbui313=testmail.loprx.com@no-reply.loprx.com>":
      - cell "Return-Path"
      - cell "<bounce+4a2406.e9ccd3-ducbui313=testmail.loprx.com@no-reply.loprx.com>":
        - text: <
        - link "bounce+4a2406.e9ccd3-ducbui313=testmail.loprx.com@no-reply.loprx.com":
          - /url: /search?q=bounce%2B4a2406.e9ccd3-ducbui313%3Dtestmail.loprx.com%40no-reply.loprx.com
        - text: ">"
    - 'row "Subject Letter of Protection #630061 for Jason Sagtham Shared by Minh Phong"':
      - cell "Subject"
      - 'cell "Letter of Protection #630061 for Jason Sagtham Shared by Minh Phong"':
        - strong: "Letter of Protection #630061 for Jason Sagtham Shared by Minh Phong"
    - row "Date Sat, 31 Jan 2026, 2:58 pm (34 kB)":
      - cell "Date"
      - cell "Sat, 31 Jan 2026, 2:58 pm (34 kB)"
    - row "Tags":
      - cell "Tags"
      - cell:
        - combobox "Type a value"
- tablist:
  - tab "HTML" [selected]
  - tab "HTML Source"
  - tab "Text"
  - tab "Headers"
  - tab "Raw"
  - tab "HTML Check 87%"
  - tab "Link Check"
  - button ""
  - button ""
  - button "" [disabled]
- tabpanel "HTML":
  - iframe
```

# Test source

```ts
  1329 |             while (listRequest > 7) {
  1330 |                 try {
  1331 |                     await checkCart.requestLoc.detail.cartRequest.deleteFirstCart.click();
  1332 |                     await checkCart.waitForSecond(3);
  1333 |                 } catch (error) {
  1334 |                     console.log("Error get list request", error);
  1335 |                     break;
  1336 |                 }
  1337 |                 listRequest = (await checkCart.requestLoc.detail.cartRequest.listRequestsInFastCreate.all()).length;
  1338 |             }
  1339 |
  1340 |             expect(listRequest).toBe(7);
  1341 |
  1342 |             await checkCart.dashboardLoc.cart.buttonCart.hover();
  1343 |             await expect(checkCart.dashboardLoc.cart.totalRequestsInCart("5")).toBeVisible()
  1344 |         })
  1345 |     })
  1346 |
  1347 |     test("REQ_041 - Verify when adding a request by hovering over the Case ID from two different business", {
  1348 |         tag: ["@REQ_041", "@request", "@function"]
  1349 |     }, async ({ conf, checkCart }) => {
  1350 |         await test.step("Add two requests from first request", async () => {
  1351 |             await checkCart.search(conf.data.case_first);
  1352 |             expect(async () => {
  1353 |                 const rowCount = await checkCart.getTableRowCount();
  1354 |                 expect(rowCount).toBe(1);
  1355 |
  1356 |             }).toPass();
  1357 |             await checkCart.waitForSecond(1);
  1358 |
  1359 |             await checkCart.dashboardLoc.table.itemInRow(conf.data.case_from_request_first).hover({ force: true });
  1360 |             //Create by business (Dat Lawyer)
  1361 |             await checkCart.requestLoc.detail.cartRequest.optionCartHoverCaseID("Letter of Protection").click();
  1362 |
  1363 |             //Create by business The Vu Law Firm
  1364 |             await checkCart.requestLoc.detail.cartRequest.optionBusinessInCart("The Vu Law Firm").click();
  1365 |             await checkCart.requestLoc.detail.cartRequest.optionCartHoverCaseID("Medical Bill").click();
  1366 |
  1367 |             await expect(checkCart.requestLoc.detail.cartRequest.quickSubmitButton("2")).toBeVisible();
  1368 |         })
  1369 |
  1370 |         await test.step("Add two requests from second request", async () => {
  1371 |             await checkCart.search(conf.data.case_second);
  1372 |             expect(async () => {
  1373 |                 const rowCount = await checkCart.getTableRowCount();
  1374 |                 expect(rowCount).toBe(1);
  1375 |             }).toPass();
  1376 |             await requestPage.waitForSecond(1);
  1377 |
  1378 |             await checkCart.dashboardLoc.table.itemInRow(conf.data.case_from_request_second).hover();
  1379 |
  1380 |             //Create by business A Taylor Law Firm
  1381 |             await checkCart.requestLoc.detail.cartRequest.optionCartHoverCaseID("Affidavit").click();
  1382 |
  1383 |             //Create by business (Portal-Auto-Lawyer)
  1384 |             await checkCart.requestLoc.detail.cartRequest.optionBusinessInCart("(Portal-Auto-Lawyer)").click();
  1385 |             await checkCart.requestLoc.detail.cartRequest.optionCartHoverCaseID("Others").click();
  1386 |
  1387 |             await checkCart.requestLoc.headingRequestPage.click();
  1388 |             await expect(checkCart.requestLoc.detail.cartRequest.quickSubmitButton("4")).toBeVisible();
  1389 |         })
  1390 |
  1391 |         await test.step("Verify list requests in cart", async () => {
  1392 |             await checkCart.requestLoc.detail.cartRequest.quickSubmitButton("4").click();
  1393 |             await expect(checkCart.requestLoc.detail.cartRequest.tdInTable("A Taylor Law Firm")).toBeVisible();
  1394 |             await verifyScreenshot('list-request-overview.png', checkCart.requestLoc.create.overviewCreateFast, [], 0.02);
  1395 |         })
  1396 |     });
  1397 |
  1398 |     test("REQ_043 - Share request: Sharing without a message and verify MFA on", {
  1399 |         tag: ["@REQ_043", "@request", "@function"]
  1400 |     }, async ({ conf, request, browser }) => {
  1401 |         test.setTimeout(200_000);
  1402 |         await test.step("Open request detail and share without message", async () => {
  1403 |             await requestPage.getDetailCase(conf.data.case);
  1404 |             await requestPage.shareRequestToEmail(requestPage, conf.data.user_share);
  1405 |             await requestPage.page.close();
  1406 |         });
  1407 |
  1408 |         await test.step('Verify email received and click open request', async () => {
  1409 |             const newContext = await browser.newContext();
  1410 |             const newPage = await newContext.newPage();
  1411 |
  1412 |             const mail = new Mail(newPage, request);
  1413 |             await mail.open();
  1414 |             await mail.waitForSecond(conf.data.wait_for_email_second);
  1415 |
  1416 |             // Find and verify the share email
  1417 |             await mail.mailLoc.titleMail("#630061").first().click();
  1418 |             const mailFrame = mail.mailLoc.mailFrame;
  1419 |             const tbodyHtml = mailFrame.locator("//table[@class='es-header-body']/tbody");
  1420 |             const mask = mailFrame.locator("//table[@class='es-header-body']/tbody/descendant::p").first();
  1421 |             await verifyScreenshot('share-request-without-message.png', tbodyHtml, [mask], 0.02);
  1422 |             await mail.waitForSecond(2);
  1423 |
  1424 |             const buttonOpenRequest = mailFrame.locator('//a[contains(text(),"Open")]');
  1425 |             const newTabPage = await requestPage.openLinkAndCompletePasscode(requestPage, request, buttonOpenRequest);
  1426 |             await newTabPage.waitForSecond(3);
  1427 |
  1428 |             // Verify MFA page
> 1429 |             await expect(newTabPage.page).toHaveURL(/2fa-verification/);
       |                                           ^ Error: Timed out 10000ms waiting for expect(locator).toHaveURL(expected)
  1430 |             const code = authenticator.generate(conf.data.MFA);
  1431 |             // Split code into 6 digits
  1432 |             const digits = code.split('');
  1433 |             for (let i = 0; i < 6; i++) {
  1434 |                 await newTabPage.page.locator(`//input[@id="digit-${i + 1}"]`).press(digits[i], {
  1435 |                     delay: 200,
  1436 |                 });
  1437 |             }
  1438 |             await newTabPage.page.locator("//button[@type='submit' and normalize-space()='Confirm']").click();
  1439 |             await newTabPage.waitAllRequestCompeleted();
  1440 |             expect(newTabPage.page.url()).toContain(`requests/${conf.data.case}`);
  1441 |         });
  1442 |     });
  1443 |
  1444 |     test("REQ_043A - Share request: Sharing without a message and verify blackup link", {
  1445 |         tag: ["@REQ_043A", "@request", "@function"]
  1446 |     }, async ({ conf, request, browser }) => {
  1447 |         await test.step("Open request detail and share without message", async () => {
  1448 |             await requestPage.getDetailCase(conf.data.case);
  1449 |             await requestPage.shareRequestToEmail(requestPage, conf.data.user_share);
  1450 |             await requestPage.page.close();
  1451 |         });
  1452 |
  1453 |         await test.step('Verify email received and click open request', async () => {
  1454 |             const newContext = await browser.newContext();
  1455 |             const newPage = await newContext.newPage();
  1456 |
  1457 |             const mail = new Mail(newPage, request);
  1458 |             await mail.open();
  1459 |             await mail.waitForSecond(conf.data.wait_for_email_second);
  1460 |
  1461 |             // Find and verify the share email
  1462 |             await mail.mailLoc.titleMail("#918138").first().click();
  1463 |             const mailFrame = mail.mailLoc.mailFrame;
  1464 |             const tbodyHtml = mailFrame.locator("//table[@class='es-header-body']/tbody");
  1465 |             const mask = mailFrame.locator("//table[@class='es-header-body']/tbody/descendant::p").first();
  1466 |             await verifyScreenshot('share-request-without-message.png', tbodyHtml, [mask], 0.02);
  1467 |             await mail.waitForSecond(2);
  1468 |
  1469 |             const linkBackupGotoRequest = mailFrame.locator('//a[contains(.,"qa.loprx")]').last();
  1470 |             const newTabPage = await requestPage.openLinkAndCompletePasscode(requestPage, request, linkBackupGotoRequest);
  1471 |
  1472 |             await mail.page.reload();
  1473 |             await mail.mailLoc.titleMail("your passcode").first().click();
  1474 |             await expect(mailFrame.locator('//p[contains(text(),"5 minutes")]')).toBeVisible();
  1475 |
  1476 |             await newTabPage.waitForSecond(3);
  1477 |             expect(newTabPage.page.url()).toContain(`requests/${conf.data.case}`);
  1478 |         });
  1479 |     });
  1480 |
  1481 |     test("REQ_044 - Share request: Sharing with a message", {
  1482 |         tag: ["@REQ_044", "@request", "@function"]
  1483 |     }, async ({ conf, request, browser }) => {
  1484 |         test.setTimeout(200_000);
  1485 |         await test.step("Open request detail and share with message", async () => {
  1486 |             await requestPage.getDetailCase(conf.data.case);
  1487 |             await requestPage.shareRequestToEmail(requestPage, conf.data.user_share, conf.data.message_sent);
  1488 |             await requestPage.page.close();
  1489 |         });
  1490 |
  1491 |         await test.step('Verify email received and click open request', async () => {
  1492 |             const newContext = await browser.newContext();
  1493 |             const newPage = await newContext.newPage();
  1494 |
  1495 |             const mail = new Mail(newPage, request);
  1496 |             await mail.open();
  1497 |             await mail.waitForSecond(conf.data.wait_for_email_second);
  1498 |
  1499 |             // Find and verify the share email
  1500 |             await mail.mailLoc.titleMail("John Doe 65423").first().click();
  1501 |             const mailFrame = mail.mailLoc.mailFrame;
  1502 |             const tbodyHtml = mailFrame.locator("//table[@class='es-header-body']/tbody");
  1503 |             const mask = mailFrame.locator("//table[@class='es-header-body']/tbody/descendant::p").first();
  1504 |             await verifyScreenshot('share-request-with-message.png', tbodyHtml, [mask], 0.02)
  1505 |
  1506 |             const buttonShareRequest = mailFrame.locator('//a/span[contains(text(),"Share")]');
  1507 |             const newTabPage = await requestPage.openLinkAndCompletePasscode(requestPage, request, buttonShareRequest);
  1508 |             await newTabPage.waitForSecond(3);
  1509 |             expect(newTabPage.page.url()).toContain(`requests/${conf.data.case}`);
  1510 |             await expect(newTabPage.dashboardLoc.modal.headerModal("Share with others")).toBeVisible();
  1511 |         });
  1512 |     });
  1513 |
  1514 |     test("REQ_045 - Share request: Sharing multiple requests with a single user", {
  1515 |         tag: ["@REQ_045", "@request", "@function"]
  1516 |     }, async ({ conf, request, browser }) => {
  1517 |         test.setTimeout(200_000);
  1518 |         await test.step("Verify sharing multiple requests for single user", async () => {
  1519 |             const SHARE_COUNT = 3;
  1520 |             await requestPage.bulkShareFirstNRequests(requestPage, SHARE_COUNT, conf.data.user_share);
  1521 |             await requestPage.page.close()
  1522 |         });
  1523 |
  1524 |         await test.step('Verify email received', async () => {
  1525 |             const newContext = await browser.newContext();
  1526 |             const newPage = await newContext.newPage();
  1527 |
  1528 |             const mail = new Mail(newPage, request);
  1529 |             await mail.open();
```