Manual Testing Guide
This guide provides comprehensive test scenarios for the Gyrinx application, covering basic functionality, expected behaviors, and complex edge cases where multiple features intersect.
Table of Contents
Authentication & User Management
Basic Functionality
User Registration
Users can sign up when
ACCOUNT_ALLOW_SIGNUPS=True
Registration requires username, email, password with reCAPTCHA verification
Users are redirected to account home after successful registration and email verification
When signups are disabled, users see a waiting list form where they can express interest
User Login/Logout
Users can log in with username/password
Session persists across browser sessions
Logout clears session and redirects to home
User Profile
Public profile page shows user's public lists (later, campaigns)
Private lists/campaigns are hidden from other users
Profile URL format:
/user/<username>
Test Cases
Signup disabled
Set ACCOUNT_ALLOW_SIGNUPS=False
, visit signup
Waiting list form shown
Duplicate username
Register with existing username
Error message displayed
Profile visibility
Create private list, view as another user
Private list not visible
Gang/List Management
Basic Functionality
List Creation
Users create lists with name, house selection, and optional narrative
Lists can be public or private
Each list has a unique URL and can be themed with custom colors
Lists track total cost based on fighters and equipment
List Management
Edit: Change name, narrative, theme color, public status
Clone: Create a copy with all fighters and equipment
Archive: Soft delete to hide from active lists
Delete: Only available in non-campaign mode
List Building vs Campaign Mode
List building mode: Full editing capabilities, can delete fighters
Campaign mode: Restricted editing, no fighter deletion, credit tracking enabled
Test Cases
Clone with equipment
Create list with equipped fighters, clone it
All equipment preserved with correct costs
Archive then view
Archive a list, try to access URL
Archived message shown, edit disabled
Campaign mode switch
Add list to campaign, check edit options
Delete fighter option hidden
Public list access
Create public list, view logged out
List visible without login
Fighter Management
Basic Functionality
Adding Fighters
Select from available content fighters based on house
Fighter cost automatically calculated from template
Can override cost manually with justification
Fighters can have custom names and narratives
Fighter States
Active: Normal state, counts toward gang rating
Recovery: Injured but healing (campaign mode)
Convalescence: Seriously injured (campaign mode)
Dead: Killed in campaign, shown struck through
Captured: Held by another gang, costs 0 credits
Fighter Management
Edit: Name, narrative, stat overrides, cost override
Clone: Copy within same list or to another list
Archive: Remove from active roster
Kill: Mark as dead (campaign only)
Capture: Mark as captured (campaign only)
Psyker Powers (Wyrd Powers)
Available to psyker-type fighters (e.g., Wyrd, Sanctioned Psyker)
Powers function like skills but from separate power lists
Can gain powers through advancement or starting abilities
Powers organized by discipline (e.g., Biomancy, Telepathy)
Each power has specific game effects
Powers shown separately from skills on fighter card
Some powers are faction-specific
Test Cases
Cost override
Override fighter cost to 500, save
Cost shows as overridden with tooltip
Clone to other list
Clone fighter to different list
Fighter appears in target list
State transitions
Mark fighter recovery → convalescence → dead
States update correctly, cost becomes 0 when dead
Captured fighter
Capture fighter, check original list
Fighter marked captured, 0 cost
Add psyker power
Add Wyrd power to psyker fighter
Power appears separate from skills
Power advancement
Advance psyker, select new power
Power added to fighter's abilities
Equipment & Weapons
Basic Functionality
Equipment Assignment
Weapons and gear assigned separately
Weapons may have multiple profiles (e.g., close combat vs ranged)
Fighters may have default assignments
Equipment can have accessories (scopes, suspensors)
Equipment can have upgrades (Tiers, Cyberteknika)
Costs cascade: base → profile → accessories → upgrades
Equipment Accessories & Modifications
Accessories enhance equipment functionality (e.g., telescopic sight, suspensor)
Each accessory has specific equipment type restrictions
Multiple accessories can stack on single item
Accessories add to base equipment cost
Some accessories modify weapon stats or grant special rules
Cannot remove accessories individually (must remove whole equipment)
Common accessories: Las-projector, Infra-sight, Telescopic sight, Suspensor
Default Equipment
Fighters from content templates come with default equipment pre-assigned
Default equipment shows with a "default" badge and costs 0 credits
Can disable default equipment to remove it from fighter
Can convert default equipment to purchasable (fighter must pay cost)
Converting to purchasable creates a normal equipment assignment
Equipment-Fighter Links (Pets/Exotic Beasts)
Some equipment creates additional fighters when assigned (e.g., Cyber-mastiff creates a fighter)
Linked fighters appear in gang roster with special "linked" indicator
Linked fighters cannot be independently edited or removed
Removing the parent equipment removes the linked fighter
Linked fighters count toward gang rating and cost
Equipment-Equipment Links
Some equipment automatically adds other equipment when assigned
Example: Certain weapons might come with built-in accessories
Linked equipment cannot be removed independently
Removing parent equipment removes all linked equipment
Linked equipment costs are included in parent item cost
Equipment links cascade (A creates B, B creates C)
Equipment Lists
Fighters may have specific equipment lists affecting costs/availability
Venator gangs have special access rules for equipment
House-specific equipment restricted to that house
Generic equipment available to all
Equipment Management
Reassign: Transfer equipment between fighters
Sell: Stash fighters can sell equipment (campaign mode)
Cost override: Manual price adjustment
Default equipment: Can disable or convert to purchasable
Test Cases
Multi-profile weapon
Add plasma gun, select different profiles
Each profile shows correct stats
Accessory stacking
Add weapon, add multiple accessories
All accessories shown, costs sum correctly
Equipment list pricing
Add equipment with fighter-specific price
Custom price from equipment list used
Venator equipment
Create Venator gang, check available equipment
Access to items from all houses
Default equipment conversion
Fighter with default gear, convert to purchasable
Equipment now costs credits, can be sold
Equipment creates fighter
Add Cyber-mastiff to fighter
New mastiff fighter appears linked to equipment
Equipment creates equipment
Add weapon with built-in accessory
Both items appear, linked equipment not removable
Remove linked fighter parent
Delete equipment that created fighter
Linked fighter also removed from gang
Cascade equipment links
Add equipment A that creates B that creates C
All three items present, removing A removes all
Default equipment disable
Disable default weapon on fighter
Weapon removed, fighter cost unchanged
Multiple accessories
Add telescopic sight + suspensor to weapon
Both show, costs stack correctly
Accessory restrictions
Try adding melee accessory to ranged weapon
Accessory not available in list
Fighter Advancement
Basic Functionality
XP Management
Add/spend/reduce XP with transaction logging
Current XP = available to spend
Total XP = lifetime earned
XP only available in campaign mode
Advancement System
Choice: 2D6 roll or manual selection
Types: Stat improvement, skill gain, specialist promotion, other
Stats: M, WS, BS, S, T, W, I, A, Ld, Cl, Wil, Int
Skills: Limited to primary/secondary categories unless promoted
Cost: Each advancement costs XP and increases fighter cost
Stat Improvements
Numeric stats (S, T, W) increase by 1
"+" stats (WS 4+, BS 3+) improve by reducing number
Maximums are left to the player
Test Cases
Insufficient XP
Try advancement with 0 XP
Error: insufficient XP
+ stat improvement
Improve WS from 4+ to 3+
Number decreases (improvement)
Skill categories
Check available skills before/after specialist promotion
More categories available after promotion
Roll integration
Use 2D6 roll option, check campaign action
Dice results recorded in action
Already owned skill
Try to select skill fighter already has
Skill not available in selection
Campaign Management
Basic Functionality
Campaign Creation
Set name, description, start date, budget
Public/private visibility
Pre-campaign → In Progress → Post-campaign lifecycle
Starting Campaign
All participating lists are cloned
Starting budget distributed based on gang cost
Lists enter campaign mode (restricted editing)
Campaign Operations
Add new lists mid-campaign (with cloning)
End campaign (locks all changes)
Reopen campaign (allows continued play)
Campaign actions log all significant events
Campaign Actions
Central logging system for all campaign events
Can be created by any participant or campaign owner
Actions can reference: battles, specific lists, or general campaign
Supports rich text descriptions with formatting
Optional dice rolling integration (D3, D6, 2D6, D66, etc.)
Dice results stored and displayed with action
Actions appear in chronological campaign history
Used for: battle outcomes, territory rolls, injury rolls, advancement rolls
Linked to fighter advancement when using roll option
Can track any campaign event (trades, alliances, narrative events)
Test Cases
Budget distribution
Start campaign with 1000¢ budget, uneven gangs
Each gang gets credits inversely proportional to cost
Mid-campaign addition
Add list after campaign started
List cloned, enters at current campaign state
End then reopen
End campaign, try edits, then reopen
Edits blocked when ended, allowed when reopened
Clone tracking
View campaign clones for a list
All campaign versions shown chronologically
Action with dice
Create action, roll 2D6
Dice results shown (e.g., "5, 3 = 8")
Battle-linked action
Create battle, then action referencing it
Action shows battle context
List-specific action
Create action for specific gang
Action appears in gang's history
Advancement dice link
Use dice roll in fighter advancement
Same roll appears in campaign action
Campaign Assets & Resources
Basic Functionality
Asset Management
Campaign owner defines asset types (e.g., Territories)
Assets assigned to specific gangs
Assets can be transferred between gangs
Assets shown in gang's campaign view
Resource Management
Campaign owner defines resource types (e.g., Meat, Ammo)
Resources tracked per gang with quantities
Can add/subtract resources with validation
Cannot go below 0 resources
Test Cases
Asset transfer
Transfer territory between gangs
Asset ownership updates correctly
Resource depletion
Try to subtract more resources than available
Error: would go negative
Multiple resources
Add multiple resource types to gang
All shown with correct quantities
Archived gang assets
Archive gang with assets
Assets still visible but gang marked archived
Battle Management
Basic Functionality
Battle Creation
Date, mission type, participating gangs
Can have single winner, multiple winners, or draw
Rich text notes for battle report
Links to campaign for context
Battle Integration
Campaign actions can reference battles
Fighter injuries/deaths typically happen in battles
Resource/asset changes often tied to battle outcomes
Test Cases
Draw scenario
Create battle with no winners
"Draw" shown as outcome
Multi-winner
Select multiple gangs as winners
All winners displayed
Battle ordering
Create battles out of chronological order
Sorted by date in campaign view
Note formatting
Add formatted text with images
Rich content preserved
Captured Fighters
Basic Functionality
Capture System
Fighters can be captured by enemy gangs
Captured fighters cost 0 for original gang
Cannot participate in battles while captured
Equipment stays with fighter
Captured Fighter Options
Sell to Guilders: Permanent removal, gang gets credits
Return to Owner: Fighter goes back to original gang
Hold: Keep captured (no benefit but denies enemy)
Campaign Integration
Capture creates campaign action
Sale/return creates campaign action
Can link to battle where capture occurred
Test Cases
Capture with equipment
Capture equipped fighter
Equipment shown but unusable
Sell to guilders
Sell captured fighter
Fighter permanently unavailable
Return with ransom
Return fighter to owner
Fighter active again for original gang
Multiple captures
Capture, return, capture again
Full history in campaign actions
Cost calculation
Check gang cost with captured fighter
Captured fighter = 0 credits
Last updated