# 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 `