EUDI Wallet Test Report
Home > Tag > Ios
Application version
Version 2026.07.39-Demo
Report generated 04-08-2026 12:42:35

Tag: Ios

77 tests |

Overview

Test Outcomes

Test Performance

Functional Coverage Overview

Features

Key Statistics

Number of Scenarios 59
Total Number of Test Cases 77
Number of Manual Test Cases 55
Tests Started Jul 29, 2026 19:43:51
Tests Finished Aug 04, 2026 09:28:41
Total Duration 5d 13h 44m 50s
Fastest Test 16s
Slowest Test 7m 44s
Average Execution Time 1m 41s
Total Execution Time 2h 10m 5s

Functional Coverage Details

Features

Feature Scenarios StepsText Test Cases % Pass Result Coverage
Ios > access certificate update to align with latest specifications ETSI 238 > validate access certificate issuance flow 326 > RP Access Certificate verification failure in issuance flow 1 Given an issuance flow has been initiated by a Relying Party When the Wallet processes the RP Access Certificate And the certificate verification fails Then the Wallet terminates the issuance interaction And the Wallet displays a notification informs the Wallet user that the issuance has been blocked indicating that the RP could not be verified And the Wallet displays a clear notification to the Wallet user that no information about the Wallet user has been shared 1 0%
Ios > access certificate update to align with latest specifications ETSI 238 > validate access certificate presentation flow 324 > RP Access Certificate verification failure in presentation flow 1 Given a presentation flow has been initiated by a Relying Party When the Wallet processes the RP Access Certificate And the certificate verification fails Then the Wallet terminates the presentation interaction And the Wallet displays a clear notification to the Wallet user that no information about the Wallet user has been shared 1 100%
Ios > regression tests > automated regression Tests > MDL MSO mdoc > Issuance and presentation - mDL 2 1: Successful credential issuance and presentation with selective disclosure - Python Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Python, issuance_method=from list, issue_scenario=same device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Python And the issuance method is from list And the issuance is performed on a same device for the mDL (MSO Mdoc) and from list When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 2: Successful credential issuance and presentation with selective disclosure - Python Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Python, issuance_method=from list, issue_scenario=same device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Python And the issuance method is from list And the issuance is performed on a same device for the mDL (MSO Mdoc) and from list When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 3: Successful credential issuance and presentation with selective disclosure - Python Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Python, issuance_method=credential offer, issue_scenario=same device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Python And the issuance method is credential offer And the issuance is performed on a same device for the mDL (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 4: Successful credential issuance and presentation with selective disclosure - Python Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Python, issuance_method=credential offer, issue_scenario=same device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Python And the issuance method is credential offer And the issuance is performed on a same device for the mDL (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 5: Successful credential issuance and presentation with selective disclosure - Python Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Python, issuance_method=credential offer, issue_scenario=cross device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Python And the issuance method is credential offer And the issuance is performed on a cross device for the mDL (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 6: Successful credential issuance and presentation with selective disclosure - Python Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Python, issuance_method=credential offer, issue_scenario=cross device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Python And the issuance method is credential offer And the issuance is performed on a cross device for the mDL (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 1: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Kotlin, issuance_method=credential offer, issue_scenario=same device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Kotlin And the issuance method is credential offer And the issuance is performed on a same device for the mDL (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 2: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Kotlin, issuance_method=credential offer, issue_scenario=same device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Kotlin And the issuance method is credential offer And the issuance is performed on a same device for the mDL (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 3: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Kotlin, issuance_method=credential offer, issue_scenario=cross device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Kotlin And the issuance method is credential offer And the issuance is performed on a cross device for the mDL (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 4: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - mDL ({credential=mDL (MSO Mdoc), issuer=Kotlin, issuance_method=credential offer, issue_scenario=cross device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a mDL (MSO Mdoc) issuance using the Kotlin And the issuance method is credential offer And the issuance is performed on a cross device for the mDL (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the mDL (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 10 100%
Ios > regression tests > automated regression Tests > PID MSO mdoc > Issuance and presentation - PID (MSO Mdoc) 2 1: Successful credential issuance and presentation with selective disclosure - Python Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Python, issuance_method=from list, issue_scenario=same device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Python And the issuance method is from list And the issuance is performed on a same device for the PID (MSO Mdoc) and from list When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 2: Successful credential issuance and presentation with selective disclosure - Python Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Python, issuance_method=from list, issue_scenario=same device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Python And the issuance method is from list And the issuance is performed on a same device for the PID (MSO Mdoc) and from list When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 3: Successful credential issuance and presentation with selective disclosure - Python Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Python, issuance_method=credential offer, issue_scenario=same device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Python And the issuance method is credential offer And the issuance is performed on a same device for the PID (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 4: Successful credential issuance and presentation with selective disclosure - Python Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Python, issuance_method=credential offer, issue_scenario=same device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Python And the issuance method is credential offer And the issuance is performed on a same device for the PID (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 5: Successful credential issuance and presentation with selective disclosure - Python Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Python, issuance_method=credential offer, issue_scenario=cross device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Python And the issuance method is credential offer And the issuance is performed on a cross device for the PID (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 6: Successful credential issuance and presentation with selective disclosure - Python Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Python, issuance_method=credential offer, issue_scenario=cross device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Python And the issuance method is credential offer And the issuance is performed on a cross device for the PID (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 1: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Kotlin, issuance_method=from list, issue_scenario=same device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Kotlin And the issuance method is from list And the issuance is performed on a same device for the PID (MSO Mdoc) and from list When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 2: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Kotlin, issuance_method=from list, issue_scenario=same device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Kotlin And the issuance method is from list And the issuance is performed on a same device for the PID (MSO Mdoc) and from list When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 3: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Kotlin, issuance_method=credential offer, issue_scenario=same device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Kotlin And the issuance method is credential offer And the issuance is performed on a same device for the PID (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 4: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Kotlin, issuance_method=credential offer, issue_scenario=same device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Kotlin And the issuance method is credential offer And the issuance is performed on a same device for the PID (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 5: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Kotlin, issuance_method=credential offer, issue_scenario=cross device, verifier=Web verifier, presentation_scenario=same device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Kotlin And the issuance method is credential offer And the issuance is performed on a cross device for the PID (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a same device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with same device for specific attributes 6: Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - PID (MSO Mdoc) ({credential=PID (MSO Mdoc), issuer=Kotlin, issuance_method=credential offer, issue_scenario=cross device, verifier=Web verifier, presentation_scenario=cross device, selective_disclosure=specific attributes}) Given the user initiates a PID (MSO Mdoc) issuance using the Kotlin And the issuance method is credential offer And the issuance is performed on a cross device for the PID (MSO Mdoc) and credential offer When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the Web verifier And the user shares specific attributes And the presentation is performed on a cross device for the PID (MSO Mdoc) Then the verifier verifies the credential successfully with cross device for specific attributes 12 100%
Ios > reuse policy metadata 257 > method a once only one time use behavior 367 > One-time-use attestation issuance under Method A (once_only) 7 Given the issuer has issued a new batch of one time use credentials to my wallet When I open my wallet Then I see the credential displayed like any other credential Given I hold a one time use credential with four of four uses remaining When I present the credential to a verifier Then the presentation completes successfully with no unusual prompts or steps Given the issuer has issued a new batch of four one time use credential instances When I view the credential in my wallet Then I see a counter showing four of four remaining Given I hold a one time use credential with four of four uses remaining When I successfully present the credential to a verifier Then I see the counter update to three of four remaining Given I hold a one time use credential with one of four uses remaining When I view the credential in my wallet Then I see an orange warning indicator with an accompanying icon Given I hold a one time use credential with one of four uses remaining and the warning indicator is displayed When I view the credential in my wallet Then I am not asked to take any action Given the wallet has silently reissued a fresh batch of credentials to replace the depleted batch When I next open my wallet Then I see the counter showing four of four remaining 7 100%
Ios > reuse policy metadata 257 > method b limited time reusing a single limited time attestation 369 > Reusable attestation with silent renewal under Method B (limited_time) 4 Given the issuer has issued a credential under Method B When I open my wallet Then I see a single credential instance displayed like any other credential And the credential has a batch size of one Given I hold a valid credential issued under Method B When I present the credential to a verifier multiple times Then each presentation completes successfully without decreasing the counter of the instances Given I hold a valid credential issued under Method B When I view the credential in my wallet Then I do not see any timer, countdown, or expiration warning Given I hold a credential whose remaining lifetime has fallen below the reissue trigger lifetime left threshold When the wallet checks the credential's remaining lifetime Then the wallet silently reissues a fresh credential instance without notifying me 4 100%
Ios > reuse policy metadata 257 > method c rotating batch random rotation and full cycle reset of batch attestations 371 > Randomized balanced rotation with silent renewal under Method C (rotating-batch) 4 Given the issuer has issued a batch of N credential instances under Method C When I view the credential in my wallet Then I see the counter showing N of N Given I hold a credential backed by a batch of N instances under Method C When I present the credential repeatedly Then the counter continues to display N of N and never decreases Given the batch's remaining lifetime has fallen below the reissue trigger lifetime left threshold provided by the issuer When the wallet checks the batch's remaining lifetime Then the wallet silently reissues a fresh batch of N instances without notifying me Given the wallet has silently reissued a fresh batch to replace the near expiry batch When I next open my wallet Then I see the counter showing N of N 4 100%
Ios > reuse policy metadata 257 > wallet reads reuse policy metadata and applies the correct reuse method 366 > Wallet Interprets Credential Reuse Policy Metadata 5 Given the issuer metadata includes a credential reuse policy with at least one supported option When I proceed through credential issuance Then I see a normal issuance flow with no additional steps related to reuse behavior Given the issuer metadata includes a credential reuse policy with multiple supported options When I proceed through credential issuance Then I am not prompted to select a reuse method Given the issuer metadata includes a credential reuse policy with a single option that the wallet supports When the wallet processes the issuer metadata Then the wallet silently applies that reuse method to the issued credential Given the issuer metadata includes a credential reuse policy listing multiple options in order of preference When the wallet processes the issuer metadata Then the wallet silently selects and applies the first option it fully supports Given the issuer metadata does not include a credential reuse policy When the wallet processes the issuer metadata Then the wallet does not show an error and it falls back to its own default reuse policy 5 80%
Ios > support for presentation requests (oid4vp DCQL full support) 153 > wallet presents alternative credential combinations from a DCQL query 350 > Wallet Presents Alternative Credential Combinations from a DCQL Query 9 Given the user opens the RP request When the Wallet loads the request Then it displays all valid credential combinations that satisfy the request Given the Wallet contains stored credentials When the Wallet evaluates possible combinations Then it displays only valid combinations based on the stored credentials Given more than one valid credential combination exists When the Wallet displays the combinations Then the user must select exactly one before continuing Given the Wallet displays available combinations When the user views the options Then each option clearly indicates which credentials will be shared Given only one valid credential combination exists When the Wallet displays it Then the user can proceed without making a selection Given the Wallet does not contain the required credentials When the Wallet evaluates the request Then it displays an error message explaining the request cannot be fulfilled Given the user has selected a valid combination When the user proceeds Then the Wallet shows exactly which information will be shared with the RP Given the user proceeds with a valid combination When the Wallet prepares the data Then it does not show or share any information not requested by the RP Given the user is in the sharing flow When the user cancels Then the Wallet returns to the previous screen without sharing any information 9 100%
Ios > ui improvements following user testing results 251 > improve add document flow UI eudi doc testing application 317 > Improve Add Document Flow UI 2 Given the user is at the Add Document screen When user attempts to issue an attestation Then The instances count is not displayed during issuance Given the user navigates to the Add Document screen When the user selects from List option Then a QR button should be visible in the upper right corner 2 100%
Ios > ui improvements following user testing results 251 > improve authentication flow UI eudi doc testing application 320 > Improve Authentication Flow UI 2 Given the user is on the Home page and selects Authenticate When the user selects either in person or online Then the title Authenticate my identity is displayed Given the user is on the Home page and selects Authenticate When the user selects online Then the informative text Scan a QR code provided from an interacting party to authenticate your identity is displayed 2 100%
Ios > ui improvements following user testing results 251 > improve document flow UI eudi doc testing application 316 > User document management experience 8 Given the user launches the app on iOS When the Document List screen is displayed Then the + button should be visible And the + button color should be blue Given the user is on the Document List screen Then the search field should display the label Search Given the user opens a document details screen When the user navigates at the bottom of the screen Then the remaining instances section is displayed at the bottom of the screen Given the user is on the Document Details screen Then the Eye button should be placed next to Document Details text Given the user is on the Document Details screen When the user observes the top of the screen Then the Issuer details card is displayed on top Given the user opens the Filter screen on iOS When the filters are displayed Then filters should be grouped by category Given the user is on the Filter screen on iOS When the filters are displayed Then all filter options should use switches instead of checkboxes Given the user opens the Filter screen on iOS Then a check button should be visible in the upper right corner And the Apply button should not be visible 8 100%
Ios > ui improvements following user testing results 251 > improve history flow UI eudi doc testing application 319 > Improve History Flow UI 4 Given the user navigates through the application Then all instances of Transactions should be renamed to History And the corresponding icon should be updated Given the user is on the History screen Then the search field should display the label Search Given the user opens the Filter screen on iOS When the filters are displayed Then filters should be grouped by category Given the user is on the Filter screen on iOS When the filters are displayed Then all filter options should use switches instead of checkboxes 4 100%
Ios > ui improvements following user testing results 251 > improve my wallet flow UI eudi doc testing application 318 > Improve My Wallet Flow UI 2 Given the user navigates to the Settings Option button When the user navigates to the Change PIN screen Then the screen title is displayed as Change PIN Given the user is on the Change PIN screen When the user taps the Back button Then An informational prompt appears with the text: Cancel PIN change? 2 100%
Ios > ui improvements following user testing results 251 > improve onboarding flow UI eudi doc testing application 315 > User onboarding experience 6 Given the user opens the app either for the first time, or for next time When the user navigates through onboarding screens Then the updated logo is displayed on all screens Given the user opens the app for the first time When the user navigates to the Welcome to your wallet screen Then the following text is displayed: Secure your wallet with a PIN code and connect to your National System below the Welcome to your Wallet Given the user opens the app for the first time When the user navigates to the Welcome to your wallet screen Then the Label Type a PIN is displayed above the PIN input fields Given the user types a PIN for a first time When confirm PIN screen is displayed Then this text is displayed Secure your wallet with a PIN code and connect to your National System And Label Confirm PIN is displayed above the input fields Given the user opens the app again after issuing a PID When user navigates to the Home tab Then the greeting is updated to Welcome, [Name] Given the user opens the app When user navigates to the Home tab Then the hyperlink Learn more is a button 6 100%

Test Failure Overview

Tags

US IOFUEDTA TC 05   1 US MBTRSLTA TC 02   1 US MAOOTUB TC 02   1 US MCBRAFCROBA   4 Q2 2026   55 US MBTRSLTA   4 US WPACCFAQ TC 05   1 US IDFUEDTA TC 07   1 US IAFUEDTA TC 02   1 US VACPF   1 Ios   77 US IMWFUEDTA TC 01   1 US IOFUEDTA TC 06   1 US MAOOTUB TC 03   1 US MBTRSLTA TC 03   1 US WPACCFAQ TC 06   1 US IDFUEDTA TC 06   1 US IAFUEDTA TC 01   1 US VACPF TC 01   1 US IADFUEDTA TC 01   1 US WRRPMAATCRM TC 01   1 US IADFUEDTA   2 PID Mso Mdoc   12 US IOFUEDTA TC 03   1 Manual   55 US IDFUEDTA TC 01   1 US WPACCFAQ TC 03   1 US MCBRAFCROBA TC 01   1 US VACIF TC 01   1 US ETESA   22 US IADFUEDTA TC 02   1 US IHFUEDTA TC 01   1 US MBTRSLTA TC 01   1 US IOFUEDTA TC 04   1 US MAOOTUB TC 01   1 US WPACCFAQ TC 04   1 Automated   22 US IDFUEDTA TC 08   1 US WPACCFAQ   9 US MAOOTUB TC 06   1 US WPACCFAQ TC 01   1 US MAOOTUB   7 US IOFUEDTA TC 01   1 US IOFUEDTA   6 US WPACCFAQ TC 09   1 US MCBRAFCROBA TC 03   1 US IDFUEDTA TC 03   1 US IHFUEDTA   4 US WRRPMAATCRM TC 04   1 US IHFUEDTA TC 03   1 US IOFUEDTA TC 02   1 Execution Q2 2026   22 US IDFUEDTA   8 US WPACCFAQ TC 02   1 US MAOOTUB TC 07   1 US MCBRAFCROBA TC 02   1 Mdl   10 US IDFUEDTA TC 02   1 US IMWFUEDTA   2 US WRRPMAATCRM TC 05   1 US IHFUEDTA TC 02   1 US MAOOTUB TC 04   1 US MBTRSLTA TC 04   1 US IMWFUEDTA TC 02   1 US WPACCFAQ TC 07   1 US WRRPMAATCRM   5 US IDFUEDTA TC 05   1 US WRRPMAATCRM TC 02   1 US VACIF   1 US MAOOTUB TC 05   1 US IAFUEDTA   2 US WPACCFAQ TC 08   1 US MCBRAFCROBA TC 04   1 US IDFUEDTA TC 04   1 US WRRPMAATCRM TC 03   1 US IHFUEDTA TC 04   1

Key Statistics

Number of Scenarios 59 Total Duration 5d 13h 44m 50s
Total Number of Test Cases 77 Fastest Test 16s
Number of Manual Test Cases 55 Slowest Test 7m 44s
Tests Started Jul 29, 2026 19:43:51 Average Execution Time 1m 41s
Tests Finished Aug 04, 2026 09:28:41 Total Execution Time 2h 10m 5s

Automated Scenarios

## Scenario Context Steps StepsText Started Total Duration Result
Issuance and presentation - mDL Successful credential issuance and presentation with selective disclosure - Python Issuer - mDL
6 passing test cases
9 Given the user initiates a <credential> issuance using the <issuer> And the issuance method is <issuance_method> And the issuance is performed on a <issue_scenario> for the <credential> and <issuance_method> When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the <verifier> And the user shares <selective_disclosure> And the presentation is performed on a <presentation_scenario> for the <credential> Then the verifier verifies the credential successfully with <presentation_scenario> for <selective_disclosure> 19:44:17 33m 15s SUCCESS
Issuance and presentation - mDL Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - mDL
4 passing test cases
9 Given the user initiates a <credential> issuance using the <issuer> And the issuance method is <issuance_method> And the issuance is performed on a <issue_scenario> for the <credential> and <issuance_method> When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the <verifier> And the user shares <selective_disclosure> And the presentation is performed on a <presentation_scenario> for the <credential> Then the verifier verifies the credential successfully with <presentation_scenario> for <selective_disclosure> 20:17:33 20m 24s SUCCESS
Issuance and presentation - PID (MSO Mdoc) Successful credential issuance and presentation with selective disclosure - Python Issuer - PID (MSO Mdoc)
6 passing test cases
9 Given the user initiates a <credential> issuance using the <issuer> And the issuance method is <issuance_method> And the issuance is performed on a <issue_scenario> for the <credential> and <issuance_method> When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the <verifier> And the user shares <selective_disclosure> And the presentation is performed on a <presentation_scenario> for the <credential> Then the verifier verifies the credential successfully with <presentation_scenario> for <selective_disclosure> 19:43:51 33m 49s SUCCESS
Issuance and presentation - PID (MSO Mdoc) Successful credential issuance and presentation with selective disclosure - Kotlin Issuer - PID (MSO Mdoc)
6 passing test cases
9 Given the user initiates a <credential> issuance using the <issuer> And the issuance method is <issuance_method> And the issuance is performed on a <issue_scenario> for the <credential> and <issuance_method> When the issuance flow is completed Then the credential is stored in the Wallet When the user presents the credential to the <verifier> And the user shares <selective_disclosure> And the presentation is performed on a <presentation_scenario> for the <credential> Then the verifier verifies the credential successfully with <presentation_scenario> for <selective_disclosure> 20:17:41 26m 19s SUCCESS

Manual Tests

## Scenario Context Steps StepsText Result
RP Access Certificate verification failure in issuance flow Block issuance when RP access certificate verification fails 6 Given an issuance flow has been initiated by a Relying Party When the Wallet processes the RP Access Certificate And the certificate verification fails Then the Wallet terminates the issuance interaction And the Wallet displays a notification informs the Wallet user that the issuance has been blocked indicating that the RP could not be verified And the Wallet displays a clear notification to the Wallet user that no information about the Wallet user has been shared FAILURE
RP Access Certificate verification failure in presentation flow Block presentation when RP access certificate verification fails 5 Given a presentation flow has been initiated by a Relying Party When the Wallet processes the RP Access Certificate And the certificate verification fails Then the Wallet terminates the presentation interaction And the Wallet displays a clear notification to the Wallet user that no information about the Wallet user has been shared SUCCESS
One-time-use attestation issuance under Method A (once_only) User sees a normal credential after issuance 3 Given the issuer has issued a new batch of one time use credentials to my wallet When I open my wallet Then I see the credential displayed like any other credential SUCCESS
One-time-use attestation issuance under Method A (once_only) User can present the credential without noticing special behavior 3 Given I hold a one time use credential with four of four uses remaining When I present the credential to a verifier Then the presentation completes successfully with no unusual prompts or steps SUCCESS
One-time-use attestation issuance under Method A (once_only) Counter is shown after issuance 3 Given the issuer has issued a new batch of four one time use credential instances When I view the credential in my wallet Then I see a counter showing four of four remaining SUCCESS
One-time-use attestation issuance under Method A (once_only) Counter decreases after a successful presentation 3 Given I hold a one time use credential with four of four uses remaining When I successfully present the credential to a verifier Then I see the counter update to three of four remaining SUCCESS
One-time-use attestation issuance under Method A (once_only) Warning indicator appears when only one use is left 3 Given I hold a one time use credential with one of four uses remaining When I view the credential in my wallet Then I see an orange warning indicator with an accompanying icon SUCCESS
One-time-use attestation issuance under Method A (once_only) User is not prompted to act when the warning appears 3 Given I hold a one time use credential with one of four uses remaining and the warning indicator is displayed When I view the credential in my wallet Then I am not asked to take any action SUCCESS
One-time-use attestation issuance under Method A (once_only) Counter resets to full after re-issuance completes 3 Given the wallet has silently reissued a fresh batch of credentials to replace the depleted batch When I next open my wallet Then I see the counter showing four of four remaining SUCCESS
Reusable attestation with silent renewal under Method B (limited_time) User sees a normal credential after issuance 4 Given the issuer has issued a credential under Method B When I open my wallet Then I see a single credential instance displayed like any other credential And the credential has a batch size of one SUCCESS
Reusable attestation with silent renewal under Method B (limited_time) User can present the credential repeatedly without noticing time-based behavior 3 Given I hold a valid credential issued under Method B When I present the credential to a verifier multiple times Then each presentation completes successfully without decreasing the counter of the instances SUCCESS
Reusable attestation with silent renewal under Method B (limited_time) No timers or countdowns are shown to the user 3 Given I hold a valid credential issued under Method B When I view the credential in my wallet Then I do not see any timer, countdown, or expiration warning SUCCESS
Reusable attestation with silent renewal under Method B (limited_time) Wallet silently refreshes the credential when it nears expiry 3 Given I hold a credential whose remaining lifetime has fallen below the reissue trigger lifetime left threshold When the wallet checks the credential's remaining lifetime Then the wallet silently reissues a fresh credential instance without notifying me SUCCESS
Randomized balanced rotation with silent renewal under Method C (rotating-batch) Credential always displays full availability 3 Given the issuer has issued a batch of N credential instances under Method C When I view the credential in my wallet Then I see the counter showing N of N SUCCESS
Randomized balanced rotation with silent renewal under Method C (rotating-batch) Counter never shows deletion or decreasing values 3 Given I hold a credential backed by a batch of N instances under Method C When I present the credential repeatedly Then the counter continues to display N of N and never decreases SUCCESS
Randomized balanced rotation with silent renewal under Method C (rotating-batch) Wallet silently refreshes the batch when its lifetime is close to ending 3 Given the batch's remaining lifetime has fallen below the reissue trigger lifetime left threshold provided by the issuer When the wallet checks the batch's remaining lifetime Then the wallet silently reissues a fresh batch of N instances without notifying me SUCCESS
Randomized balanced rotation with silent renewal under Method C (rotating-batch) Credential shows full availability after silent renewal 3 Given the wallet has silently reissued a fresh batch to replace the near expiry batch When I next open my wallet Then I see the counter showing N of N SUCCESS
Wallet Interprets Credential Reuse Policy Metadata User sees a normal credential-issuance flow 3 Given the issuer metadata includes a credential reuse policy with at least one supported option When I proceed through credential issuance Then I see a normal issuance flow with no additional steps related to reuse behavior SUCCESS
Wallet Interprets Credential Reuse Policy Metadata User is not asked to choose a reuse behavior 3 Given the issuer metadata includes a credential reuse policy with multiple supported options When I proceed through credential issuance Then I am not prompted to select a reuse method SUCCESS
Wallet Interprets Credential Reuse Policy Metadata Wallet automatically applies the issuer's preferred behavior 3 Given the issuer metadata includes a credential reuse policy with a single option that the wallet supports When the wallet processes the issuer metadata Then the wallet silently applies that reuse method to the issued credential SUCCESS
Wallet Interprets Credential Reuse Policy Metadata Wallet silently selects the first fully supported policy when multiple options exist 3 Given the issuer metadata includes a credential reuse policy listing multiple options in order of preference When the wallet processes the issuer metadata Then the wallet silently selects and applies the first option it fully supports FAILURE
Wallet Interprets Credential Reuse Policy Metadata Wallet falls back to its own default reuse policy in case of no rule 3 Given the issuer metadata does not include a credential reuse policy When the wallet processes the issuer metadata Then the wallet does not show an error and it falls back to its own default reuse policy SUCCESS
Wallet Presents Alternative Credential Combinations from a DCQL Query Display all valid combinations 3 Given the user opens the RP request When the Wallet loads the request Then it displays all valid credential combinations that satisfy the request SUCCESS
Wallet Presents Alternative Credential Combinations from a DCQL Query Display only valid combinations 3 Given the Wallet contains stored credentials When the Wallet evaluates possible combinations Then it displays only valid combinations based on the stored credentials SUCCESS
Wallet Presents Alternative Credential Combinations from a DCQL Query User must select one combination when multiple exist 3 Given more than one valid credential combination exists When the Wallet displays the combinations Then the user must select exactly one before continuing SUCCESS
Wallet Presents Alternative Credential Combinations from a DCQL Query Each option shows which credentials will be shared 3 Given the Wallet displays available combinations When the user views the options Then each option clearly indicates which credentials will be shared SUCCESS
Wallet Presents Alternative Credential Combinations from a DCQL Query Only one valid combination exists 3 Given only one valid credential combination exists When the Wallet displays it Then the user can proceed without making a selection SUCCESS
Wallet Presents Alternative Credential Combinations from a DCQL Query No valid combinations available 3 Given the Wallet does not contain the required credentials When the Wallet evaluates the request Then it displays an error message explaining the request cannot be fulfilled SUCCESS
Wallet Presents Alternative Credential Combinations from a DCQL Query Show information that will be shared 3 Given the user has selected a valid combination When the user proceeds Then the Wallet shows exactly which information will be shared with the RP SUCCESS
Wallet Presents Alternative Credential Combinations from a DCQL Query Do not show or share unrequested information 3 Given the user proceeds with a valid combination When the Wallet prepares the data Then it does not show or share any information not requested by the RP SUCCESS
Wallet Presents Alternative Credential Combinations from a DCQL Query Canceling the flow 3 Given the user is in the sharing flow When the user cancels Then the Wallet returns to the previous screen without sharing any information SUCCESS
Improve Add Document Flow UI Instances count is not displayed during issuance 3 Given the user is at the Add Document screen When user attempts to issue an attestation Then The instances count is not displayed during issuance SUCCESS
Improve Add Document Flow UI Verify QR button presence 3 Given the user navigates to the Add Document screen When the user selects from List option Then a QR button should be visible in the upper right corner SUCCESS
Improve Authentication Flow UI Verify navigation to Authentication Intro screen 3 Given the user is on the Home page and selects Authenticate When the user selects either in person or online Then the title Authenticate my identity is displayed SUCCESS
Improve Authentication Flow UI Verify informative text 3 Given the user is on the Home page and selects Authenticate When the user selects online Then the informative text Scan a QR code provided from an interacting party to authenticate your identity is displayed SUCCESS
User document management experience Verify + button color in iOS 4 Given the user launches the app on iOS When the Document List screen is displayed Then the + button should be visible And the + button color should be blue SUCCESS
User document management experience Verify search field label 2 Given the user is on the Document List screen Then the search field should display the label Search SUCCESS
User document management experience Remaining instances section 3 Given the user opens a document details screen When the user navigates at the bottom of the screen Then the remaining instances section is displayed at the bottom of the screen SUCCESS
User document management experience Verify Eye button placement and text 2 Given the user is on the Document Details screen Then the Eye button should be placed next to Document Details text SUCCESS
User document management experience The Issuer details card is displayed on top 3 Given the user is on the Document Details screen When the user observes the top of the screen Then the Issuer details card is displayed on top SUCCESS
User document management experience Verify filters grouping 3 Given the user opens the Filter screen on iOS When the filters are displayed Then filters should be grouped by category SUCCESS
User document management experience Verify filter controls use switches 3 Given the user is on the Filter screen on iOS When the filters are displayed Then all filter options should use switches instead of checkboxes SUCCESS
User document management experience Verify check button in header 3 Given the user opens the Filter screen on iOS Then a check button should be visible in the upper right corner And the Apply button should not be visible SUCCESS
Improve History Flow UI Verify Transactions label is updated 3 Given the user navigates through the application Then all instances of Transactions should be renamed to History And the corresponding icon should be updated SUCCESS
Improve History Flow UI Verify search field label 2 Given the user is on the History screen Then the search field should display the label Search SUCCESS
Improve History Flow UI Verify filters grouping on iOS 3 Given the user opens the Filter screen on iOS When the filters are displayed Then filters should be grouped by category SUCCESS
Improve History Flow UI Verify filter controls use switches on iOS 3 Given the user is on the Filter screen on iOS When the filters are displayed Then all filter options should use switches instead of checkboxes SUCCESS
Improve My Wallet Flow UI Verify Change PIN screen title 3 Given the user navigates to the Settings Option button When the user navigates to the Change PIN screen Then the screen title is displayed as Change PIN SUCCESS
Improve My Wallet Flow UI Verify prompt appears when tapping Back 3 Given the user is on the Change PIN screen When the user taps the Back button Then An informational prompt appears with the text: Cancel PIN change? SUCCESS
User onboarding experience Logo consistency across onboarding 3 Given the user opens the app either for the first time, or for next time When the user navigates through onboarding screens Then the updated logo is displayed on all screens SUCCESS
User onboarding experience Type PIN screen informational text 3 Given the user opens the app for the first time When the user navigates to the Welcome to your wallet screen Then the following text is displayed: Secure your wallet with a PIN code and connect to your National System below the Welcome to your Wallet SUCCESS
User onboarding experience Type PIN screen label 3 Given the user opens the app for the first time When the user navigates to the Welcome to your wallet screen Then the Label Type a PIN is displayed above the PIN input fields SUCCESS
User onboarding experience Confirm PIN screen informational text 4 Given the user types a PIN for a first time When confirm PIN screen is displayed Then this text is displayed Secure your wallet with a PIN code and connect to your National System And Label Confirm PIN is displayed above the input fields SUCCESS
User onboarding experience Home tab greeting updated 3 Given the user opens the app again after issuing a PID When user navigates to the Home tab Then the greeting is updated to Welcome, [Name] SUCCESS
User onboarding experience Home tab greeting update 3 Given the user opens the app When user navigates to the Home tab Then the hyperlink Learn more is a button SUCCESS

Tags

US IOFUEDTA TC 05   1 US MBTRSLTA TC 02   1 US MAOOTUB TC 02   1 US MCBRAFCROBA   4 Q2 2026   55 US MBTRSLTA   4 US WPACCFAQ TC 05   1 US IDFUEDTA TC 07   1 US IAFUEDTA TC 02   1 US VACPF   1 Ios   77 US IMWFUEDTA TC 01   1 US IOFUEDTA TC 06   1 US MAOOTUB TC 03   1 US MBTRSLTA TC 03   1 US WPACCFAQ TC 06   1 US IDFUEDTA TC 06   1 US IAFUEDTA TC 01   1 US VACPF TC 01   1 US IADFUEDTA TC 01   1 US WRRPMAATCRM TC 01   1 US IADFUEDTA   2 PID Mso Mdoc   12 US IOFUEDTA TC 03   1 Manual   55 US IDFUEDTA TC 01   1 US WPACCFAQ TC 03   1 US MCBRAFCROBA TC 01   1 US VACIF TC 01   1 US ETESA   22 US IADFUEDTA TC 02   1 US IHFUEDTA TC 01   1 US MBTRSLTA TC 01   1 US IOFUEDTA TC 04   1 US MAOOTUB TC 01   1 US WPACCFAQ TC 04   1 Automated   22 US IDFUEDTA TC 08   1 US WPACCFAQ   9 US MAOOTUB TC 06   1 US WPACCFAQ TC 01   1 US MAOOTUB   7 US IOFUEDTA TC 01   1 US IOFUEDTA   6 US WPACCFAQ TC 09   1 US MCBRAFCROBA TC 03   1 US IDFUEDTA TC 03   1 US IHFUEDTA   4 US WRRPMAATCRM TC 04   1 US IHFUEDTA TC 03   1 US IOFUEDTA TC 02   1 Execution Q2 2026   22 US IDFUEDTA   8 US WPACCFAQ TC 02   1 US MAOOTUB TC 07   1 US MCBRAFCROBA TC 02   1 Mdl   10 US IDFUEDTA TC 02   1 US IMWFUEDTA   2 US WRRPMAATCRM TC 05   1 US IHFUEDTA TC 02   1 US MAOOTUB TC 04   1 US MBTRSLTA TC 04   1 US IMWFUEDTA TC 02   1 US WPACCFAQ TC 07   1 US WRRPMAATCRM   5 US IDFUEDTA TC 05   1 US WRRPMAATCRM TC 02   1 US VACIF   1 US MAOOTUB TC 05   1 US IAFUEDTA   2 US WPACCFAQ TC 08   1 US MCBRAFCROBA TC 04   1 US IDFUEDTA TC 04   1 US WRRPMAATCRM TC 03   1 US IHFUEDTA TC 04   1
Serenity BDD version 4.2.22