test: enhance deep link testing with real JWT examples

Changes:
- Add real JWT example for invite testing
- Add detailed JWT payload documentation
- Update test-deeplinks.sh with valid claim IDs
- Add test case for single contact invite
- Improve test descriptions and organization

This improves test coverage by using real-world JWT examples
and valid claim identifiers.
This commit is contained in:
Matthew Raymer
2025-03-01 12:28:48 +00:00
parent 6b3542fd09
commit a9fd33fff6
9 changed files with 574 additions and 213 deletions

View File

@@ -285,7 +285,7 @@
<ul v-else class="text-sm border-t border-slate-300">
<li
v-for="offer in offersToThis"
:key="offer.id"
:key="offer.jwtId"
class="py-1.5 border-b border-slate-300"
>
<div class="flex justify-between gap-4">
@@ -365,7 +365,7 @@
<ul v-else class="text-sm border-t border-slate-300">
<li
v-for="give in givesToThis"
:key="give.id"
:key="give.jwtId"
class="py-1.5 border-b border-slate-300"
>
<div class="flex justify-between gap-4">
@@ -461,7 +461,7 @@
<ul v-else class="text-sm border-t border-slate-300">
<li
v-for="give in givesProvidedByThis"
:key="give.id"
:key="give.jwtId"
class="py-1.5 border-b border-slate-300"
>
<div class="flex justify-between gap-4">
@@ -571,30 +571,31 @@ import HiddenDidDialog from "../components/HiddenDidDialog.vue";
/**
* Project View Component
* @author Matthew Raymer
*
* This component displays detailed project information and manages interactions including:
*
* This component displays and manages detailed project information. It handles:
* - Project loading and display from URL-encoded project handles
* - Project metadata (name, description, dates, location)
* - Issuer information and verification
* - Project contributions and fulfillments
* - Offers and gifts tracking
* - Contact interactions
*
*
* Data Flow:
* 1. Component loads with project ID from route
* 2. Fetches project data, contacts, and account settings
* 3. Loads related data (offers, gifts, fulfillments)
* 4. Updates UI with paginated results
*
*
* Security Features:
* - DID visibility controls
* - JWT validation for imports
* - Permission checks for actions
*
*
* State Management:
* - Maintains separate loading states for different data types
* - Handles pagination limits
* - Tracks confirmation states
*
*
* @see GiftedDialog for gift creation
* @see OfferDialog for offer creation
* @see HiddenDidDialog for DID privacy explanations
@@ -698,13 +699,13 @@ export default class ProjectViewView extends Vue {
/**
* Component lifecycle hook that initializes the project view
*
*
* Workflow:
* 1. Loads account settings and contacts
* 2. Retrieves all account DIDs
* 3. Extracts project ID from URL
* 4. Initializes project data loading
*
*
* @throws Logs errors but continues loading
* @emits Notification on profile loading errors
*/
@@ -743,12 +744,12 @@ export default class ProjectViewView extends Vue {
/**
* Loads project data and related information
*
*
* Workflow:
* 1. Fetches project details from API
* 2. Updates component state with project data
* 3. Initializes related data loading (gifts, offers, fulfillments)
*
*
* @param projectId Project handle ID
* @param userDid Active user's DID
* @throws Logs errors and notifies user
@@ -842,10 +843,10 @@ export default class ProjectViewView extends Vue {
/**
* Loads gifts made to this project
*
*
* Handles pagination and updates component state with results.
* Uses beforeId for pagination based on last loaded gift.
*
*
* @throws Logs errors and notifies user
* @emits Notification on loading errors
*/
@@ -898,10 +899,10 @@ export default class ProjectViewView extends Vue {
/**
* Loads gifts provided by this project
*
*
* Similar to loadGives but for outgoing gifts.
* Maintains separate pagination state.
*
*
* @throws Logs errors and notifies user
* @emits Notification on loading errors
*/
@@ -957,10 +958,10 @@ export default class ProjectViewView extends Vue {
/**
* Loads offers made to this project
*
*
* Handles pagination and filtering of valid offers.
* Updates component state with results.
*
*
* @throws Logs errors and notifies user
* @emits Notification on loading errors
*/
@@ -1013,9 +1014,9 @@ export default class ProjectViewView extends Vue {
/**
* Loads projects that fulfill this project
*
*
* Manages pagination state and updates component with results.
*
*
* @throws Logs errors and notifies user
* @emits Notification on loading errors
*/
@@ -1069,9 +1070,9 @@ export default class ProjectViewView extends Vue {
/**
* Loads project that this project fulfills
*
*
* Updates fulfilledByThis state with result.
*
*
* @throws Logs errors and notifies user
* @emits Notification on loading errors
*/