4.6 KiB
NextWks — Manual Test Instructions
Credentials & URLs
Copy these as needed:
Authelia Login: https://auth.lohmar.co.uk
Username: admin
Password: ueM8tLARi5v3orIzvd56w6u6!
Workspace: https://wks.lohmar.co.uk
Admin API Token: grep secret_token /opt/nextwks/config.yaml
All services are deployed and running via systemd on 172.16.8.22:
authelia— port 9091nextwks— port 8080
Test Suite 1 — OIDC Login Flow (Browser)
T1.1 — Workspace Redirect
Open: https://wks.lohmar.co.uk/
Expected: Redirected to https://auth.lohmar.co.uk/ login page.
T1.2 — Login
Enter credentials:
- Username:
admin - Password:
ueM8tLARi5v3orIzvd56w6u6!
Expected: After login, redirected back to workspace launcher page. Shows "Welcome" heading and app grid with 6 tiles.
T1.3 — Session Persistence
Close the browser tab, reopen https://wks.lohmar.co.uk/.
Expected: Should go directly to launcher (session cookie still valid).
T1.4 — Logout (if implemented)
Visit https://wks.lohmar.co.uk/auth/logout
Expected: Redirected to Authelia login page.
Test Suite 2 — Admin UI (Browser)
The admin panel requires a bearer token in the Authorization header. Get the token:
ssh root@172.16.8.22 "grep secret_token /opt/nextwks/config.yaml | head -1"
T2.1 — Admin Dashboard
With the token set as a header, visit: https://wks.lohmar.co.uk/admin
Expected: Dark-themed admin dashboard with user count stat card and sidebar.
T2.2 — User Management
Navigate to https://wks.lohmar.co.uk/admin/users
Expected: User table loads, shows existing users with status badges. "+ Add User" and "Delete" buttons work via HTMX.
Test Suite 3 — Admin API (Terminal)
Run from the server or any machine that can reach 172.16.8.22:8080.
TOKEN=$(ssh root@172.16.8.22 "grep secret_token /opt/nextwks/config.yaml | head -1 | sed 's/.*: *\"//;s/\"//'")
API="http://172.16.8.22:8080/admin/api"
T3.1 — Health Check
curl -H "Authorization: Bearer $TOKEN" $API/health
Expected: {"status":"ok","user_count":...}
T3.2 — List Users
curl -H "Authorization: Bearer $TOKEN" $API/users | python3 -m json.tool
Expected: JSON array of users with role, groups, etc.
T3.3 — Create User
curl -X POST $API/users \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"users":[{"username":"testuser","display_name":"Test","email":"test@test.com","role":"user"}]}'
Expected: Generated password displayed. User appears in Authelia YAML within seconds.
T3.4 — Delete User
curl -X DELETE -H "Authorization: Bearer $TOKEN" $API/users/testuser
Expected: {"status":"deleted","username":"testuser"}
T3.5 — No Token
curl $API/health
Expected: {"error":"unauthorized"} (HTTP 401)
Test Suite 4 — Authelia Sync Verification
T4.1 — Check YAML
ssh root@172.16.8.22 "cat /opt/authelia/users_database.yml"
Expected: Contains all NextWks users with argon2id password hashes.
T4.2 — Create & Check
Create a user via API (T3.3), then immediately:
ssh root@172.16.8.22 "grep testuser /opt/authelia/users_database.yml"
Expected: User appears in YAML within seconds.
Test Suite 5 — PWA & Launcher
T5.1 — Manifest
curl -s https://wks.lohmar.co.uk/static/manifest.json | python3 -m json.tool
Expected: "name":"Next Workspace", "display":"standalone"
T5.2 — Service Worker
curl -s -o /dev/null -w "%{http_code}" https://wks.lohmar.co.uk/static/sw.js
Expected: 200
T5.3 — Install Button
On the launcher page, click the download icon in the header bar (might need PWA trigger or click Install to Desktop at bottom).
Expected: Either native install prompt or modal with platform-specific instructions (iOS Safari, Android Chrome, Desktop).
Test Suite 6 — Error Cases
T6.1 — Invalid Token
curl -H "Authorization: Bearer bad-token" $API/health
Expected: {"error":"unauthorized"}
T6.2 — Empty Users Array
curl -X POST $API/users -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{"users":[]}'
Expected: {"error":"no users provided"}
T6.3 — 404
curl -I https://wks.lohmar.co.uk/nonexistent
Expected: HTTP 404
Results
| Suite | Tests | ✓ | Notes |
|---|---|---|---|
| 1. OIDC Login | 4 | ||
| 2. Admin UI | 2 | ||
| 3. Admin API | 5 | ||
| 4. Authelia Sync | 2 | ||
| 5. PWA & Launcher | 3 | ||
| 6. Error Cases | 3 | ||
| Total | 19 |