decdb74ade
Bump export_presets.cfg version to 2.3.5. Update CHANGELOG_DRAFT.md. Refactor lobby.gd into LobbyChat, LobbyMainMenu, LobbyRoomList, LobbyRoom. Move Nakama config to environment variables in nakama_manager.gd. Derive auth_manager.gd encryption key from OS.get_unique_id().sha256_text(). Remove Steam email auth fallback. Require auth ticket. Make GachaManager.pull() async in gacha_panel.gd. Remove dummy wallet seeding. Add store_type to IAP payload. Validate IAP receipts server-side in economy.lua. Register gacha module in main.lua. Clean backend_service.gd stubs. Fix featured_banners type safety in gacha_manager.gd. Guards non-array responses. Move tiles_armagedon_a1.res to assets/models/meshes/. Fix import fallback_path.
225 lines
6.5 KiB
Markdown
225 lines
6.5 KiB
Markdown
# TektonDash Unit Tests
|
|
|
|
This directory contains GUT (Godot Unit Testing) framework tests for the TektonDash project.
|
|
|
|
## Test Files (38 Total)
|
|
|
|
### Done Tasks (13 Files - 133 Tests)
|
|
|
|
### test_admin_panel.gd
|
|
**Task:** [042] Admin Panel - JSON Type Safety & User History View
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_shop_validation.gd
|
|
**Task:** [040] Shop & Receipt Validations
|
|
**Tests:** 14 | **Status:** ✅ Complete
|
|
|
|
### test_auth_security.gd
|
|
**Task:** [034] Auth & Secrets Lockdown
|
|
**Tests:** 14 | **Status:** ✅ Complete
|
|
|
|
### test_debug_cleanup.gd
|
|
**Task:** [017] Dead Path, Debug Gate & Telemetry Cleanup
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_sync_desync.gd
|
|
**Task:** [035] Sync Desync Thresholds
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_deployment_pipeline.gd
|
|
**Task:** [012] Implement Multi-Platform Deployment Pipeline
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_guest_identity.gd
|
|
**Task:** [037] Guest & Identity Persistence
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_mode_config.gd
|
|
**Task:** [036] Mode Config Completeness
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_backend_facade.gd
|
|
**Task:** [038] Backend Facade & Flow Decoupling
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_versioning_integrity.gd
|
|
**Task:** [045] Versioning & Patch Integrity
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_steam_depot.gd
|
|
**Task:** [046] Steam Depot & Store Packaging
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_tutorial_isolation.gd
|
|
**Task:** [044] Tutorial Isolation Contract
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### test_client_backend_facade.gd
|
|
**Task:** [039] Client Backend Facade
|
|
**Tests:** 10 | **Status:** ✅ Complete
|
|
|
|
### To Do Tasks (25 Files - 250 Tests)
|
|
|
|
### test_code_documentation.gd
|
|
**Task:** [015] Add Code Documentation
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_iap_receipt_validation.gd
|
|
**Task:** [007] Implement Server-Side IAP Receipt Validation
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_nakama_key_security.gd
|
|
**Task:** [004] Remove Hardcoded Nakama Server Key
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_currency_security.gd
|
|
**Task:** [006] Remove Client-Side Currency Manipulation
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_backend_service_complete.gd
|
|
**Task:** [041] Complete backend_service.gd Implementation
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_lobby_refactor.gd
|
|
**Task:** [020] Refactor lobby.gd (Large Class)
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_backend_facade_pattern.gd
|
|
**Task:** [002] Implement Unified Backend Facade Pattern
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_analytics_monitoring.gd
|
|
**Task:** [013] Implement Analytics & Monitoring System
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_error_handling.gd
|
|
**Task:** [001] Implement Comprehensive Error Handling
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_player_refactor.gd
|
|
**Task:** [021] Refactor player.gd (Large Class)
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_rate_limiting_anticheat.gd
|
|
**Task:** [008] Implement Rate Limiting & Anti-Cheat
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_localization_i18n.gd
|
|
**Task:** [011] Implement Localization/i18n System
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_automated_testing_ci.gd
|
|
**Task:** [028] Implement Automated Testing in CI
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_regional_servers.gd
|
|
**Task:** [009] Implement Regional Server Infrastructure
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_identity_manager.gd
|
|
**Task:** [003] Implement Unified Identity Manager
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_github_actions_workflow.gd
|
|
**Task:** [024] Set up GitHub Actions CI/CD Workflow
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_economy_facade.gd
|
|
**Task:** [018] Server-Authoritative Economy Facade
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_encryption_key_management.gd
|
|
**Task:** [005] Replace Hardcoded Encryption Key
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_session_management.gd
|
|
**Task:** [010] Implement Proactive Session Management
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_testing_infrastructure.gd
|
|
**Task:** [014] Implement Automated Testing Infrastructure
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_debug_code_removal.gd
|
|
**Task:** [016] Remove Debug Code from Production
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_task_019.gd
|
|
**Task:** [019] Additional Task Implementation
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_task_022.gd
|
|
**Task:** [022] Additional Task Implementation
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_task_023.gd
|
|
**Task:** [023] Additional Task Implementation
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
### test_task_025.gd
|
|
**Task:** [025] Additional Task Implementation
|
|
**Tests:** 10 | **Status:** 📋 To Do
|
|
|
|
## Running Tests
|
|
|
|
### In Godot Editor
|
|
1. Open the project in Godot
|
|
2. Go to **Tools → GUT → Run Tests**
|
|
3. Tests will run and display results in the GUT GUI
|
|
|
|
### From Command Line
|
|
```bash
|
|
# Run all tests
|
|
godot --headless -s addons/gut/gut_cmdln.gd
|
|
|
|
# Run specific test file
|
|
godot --headless -s addons/gut/gut_cmdln.gd -d res://tests/test_admin_panel.gd
|
|
|
|
# Export results to JUnit XML
|
|
godot --headless -s addons/gut/gut_cmdln.gd -o test-results.xml
|
|
```
|
|
|
|
## Test Statistics
|
|
|
|
- **Total Test Files:** 38 (13 Done + 25 To Do)
|
|
- **Total Tests:** 383 (133 Done + 250 To Do)
|
|
- **Done Coverage Areas:**
|
|
- Admin Panel, Shop/IAP, Authentication & Security
|
|
- Debug Cleanup, Sync/Desync, Deployment Pipeline
|
|
- Guest Identity, Mode Config, Backend Facades
|
|
- Versioning, Steam Depot, Tutorial Isolation
|
|
- **To Do Coverage Areas:**
|
|
- Code Documentation, IAP Receipt Validation, Security Hardening
|
|
- Backend Service, Refactoring, Error Handling
|
|
- Analytics, Localization, Rate Limiting & Anti-Cheat
|
|
- Session Management, Testing Infrastructure, CI/CD
|
|
- Regional Servers, Identity Management, Economy Facade
|
|
|
|
## Configuration
|
|
|
|
Tests are configured in `gutconfig.json` at the project root:
|
|
- Test directory: `res://tests`
|
|
- Log level: 1 (tests + failures)
|
|
- Double strategy: FULL (for mocking)
|
|
|
|
## Adding New Tests
|
|
|
|
1. Create a new file: `tests/test_feature_name.gd`
|
|
2. Extend `GutTest`
|
|
3. Add test methods starting with `test_`
|
|
4. Run tests to verify
|
|
|
|
Example:
|
|
```gdscript
|
|
extends GutTest
|
|
|
|
func test_something():
|
|
assert_eq(1, 1, "Should pass")
|
|
```
|
|
|
|
## Resources
|
|
|
|
- **GUT Documentation:** https://gut.readthedocs.io
|
|
- **GUT GitHub:** https://github.com/bitwes/Gut
|
|
- **Setup Guide:** See `GUT_SETUP_SKILLS.md` in project root
|