# Logical Test Cases ## LTCs This page describes the logical test cases (LTCs) that are used to verify the correct functionality of the wallet app. Test are written in Gherkin syntax with a Given When Then structure. Each LTC is implemented with at least one manual or automated tests. --- ### LTC1 #### PID issuance **Given** user has completed security setup
**When** user authenticates at auth server
**Then** system displays issued attributes to user for verification
**When** user adds attributes
**And** confirms using their PIN
**Then** system displays message that wallet is created
**And** provides a link to the dashboard
--- ### LTC2 #### Issuance fails **Given** user has completed security setup
**And** user authenticates at auth server
**When** issuance fails
**Then** system displays message that issuance failed
**And** provides a link to try again
--- ### LTC3 #### Authentication at auth server fails **Given** user has completed security setup
**And** user authentication at auth server fails
**Then** system displays message that authentication failed
**And** provides a link to try again
--- ### LTC4 #### Rejects issued attributes **Given** user has completed security setup
**And** user authenticates at auth server
**And** system displays issued attributes to user for verification
**When** user rejects issued attributes
**Then** provides a link to try again
--- ### LTC5 #### Disclosure based Issuance **Given** user has completed PID setup and opened the app
**When** user invokes a universal link from a (Q)EAA issuer
**Then** system requests approval for disclosure
**When** user approves with PIN
**Then** system validates PIN and proceeds
**And** system requests approval for attestations
**When** user approves with PIN
**Then** system issues card and displays it to user
**And** provides a link to the dashboard
--- ### LTC6 #### Invalid universal link **Given** user invokes an invalid universal link
**Then** system informs user link is not recognized
--- ### LTC7 #### Cross-device disclosure based issuance **Given** user is on a device with wallet installed
**When** relying party presents a QR code
**And** user scans it with wallet
**Then** system requests approval for disclosure
**When** user approves with PIN
**Then** system validates PIN and proceeds
**And** system requests approval for attestations
**When** user approves with PIN
**Then** system issues card and displays it to user
**And** provides a link to the dashboard
--- ### LTC8 #### Reject disclosure of attributes **Given** user starts card issuance
**When** system asks for disclosure consent
**And** user selects 'stop'
**Then** system confirms cancellation
--- ### LTC9 #### No cards to be issued **Given** user has no cards to be issued available at EAA issuer
**When** user performs disclosure based issuance to retrieve cards
**Then** system displays error message that no cards are available for issuance
--- ### LTC10 #### Wallet does not contain requested attributes **Given** wallet does not contain attributes to fulfill a disclosure request from an issuer
**When** user invokes a universal link from a (Q)EAA issuer
**Then** System displays an error message with instructions
**When** user selects 'see details'
**Then** system displays a bottom sheet with app information
--- ### LTC11 #### Renew card **Given** user has an EAA card in its wallet
**When** user invokes a universal link from issuer of card
**Then** system requests approval for disclosure
**When** user approves with PIN
**Then** system validates PIN and proceeds
**And** system requests approval card renewal
**When** user approves with PIN
**Then** system renews card
**And** provides a link to the dashboard
**And** merges history of old and new cards
**And** adds a card renewel event to the history
--- ### LTC12 #### View introduction **Given** the app is opened
**And** user has not completed introduction
**When** user navigates through the introduction screens
**Then** system displays set pin screen
--- ### LTC13 #### Skip introduction **Given** the app is opened
**And** user has not completed introduction
**When** user skips the introduction screens
**Then** systems displays the privacy introduction screen
--- ### LTC14 #### View app tour **Given** user has not closed app after obtaining PID
**When** user views the app dashboard
**Then** system displays a non-dismissible banner
**When** user views the menu
**Then** system displays an app tour menu item
**When** user selects app tour
**Then** system displays an app tour overview with a list of video items
**When** user selects a video
**Then** system opens the videoplayer
**And** videoplayer contains correct controls
--- ### LTC15 #### Share data **Given** user has completed PID setup and opened the app
**When** user starts disclosure process at relying party
**Then** system requests user consent
**When** user approves with PIN
**Then** system discloses attributes to relying party
**And** system displays data shared message
--- ### LTC16 #### Cross-device data sharing **Given** user starts disclosure on a non-mobile device
**When** user scans QR code with wallet
**Then** system validates relying party URL
**When** user confirms to proceed
**And** approves disclosure with PIN
**Then** system completes disclosure
**And** displays a success message
--- ### LTC17 #### Decline consent to share data **Given** user is shown consent screen
**When** user selects 'Stop'
**Then** system confirms cancellation
**When** user confirms
**Then** system displays the stopped screen
**And** provides a link to the dashboard
--- ### LTC18 #### RP Login **Given** user has completed PID setup and opened the app
**When** user starts login process at relying party
**Then** system requests consent to disclose BSN
**When** user approves with PIN
**Then** system discloses BSN to relying party
**And** relying pary displays login success message
--- ### LTC19 #### Cross-device login **Given** user starts login on a non-mobile device
**When** user scans QR code with wallet
**Then** system validates relying party URL
**When** user confirms to continue
**And** approves disclosure with PIN
**Then** login is completed
**And** system displays success message
--- ### LTC20 #### Disclosure fails **Given** user has completed security setup
**When** user starts a disclosure flow
**And** disclosure fails
**And** system displays message disclosure failed
**And** provides a link to try again
--- ### LTC21 #### Delete App data **Given** user has completed PID setup and opened the app
**When** user selects 'Remove data' from the settings menu
**Then** system displays a prompt with 'Cancel' and 'Yes, Delete' options
**When** user selects 'Yes, Delete'
**Then** system displays the introduction screen
--- ### LTC22 #### View complete history **Scenario Outline:**
**Given** user has performed activity ``
**When** user selects 'activities' from settings or dashboard
**Then** system displays a list of all usage and management activities, grouped by month and sorted newest first
**And** the list shows the activity with label `