- Add complete Project Hub & Workspace Interface implementation - New data models: Project, ModuleKit, Workspace - 3 fixture projects (cybermind.fr, cybermood.eu, secubox-c3) - 4 module kits (Security, Network, Automation, Media) - Workspace routes with project switching and kit installation - 4 workspace tabs: Overview, Module Kits, Devices, Composer - New navigation item: Workspace (7th section) - Remove all glowing effects from UI - Remove Command Center widget glow and backdrop blur - Remove device status indicator glow - Remove toggle button glow effects - Extend DataStore with 13 new methods for workspace management - Add 270+ lines of workspace-specific CSS with responsive layouts - Create workspace templates and result partials 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
25 lines
731 B
Python
25 lines
731 B
Python
from fastapi.testclient import TestClient
|
|
|
|
from app.main import app
|
|
|
|
|
|
def test_modules_endpoint_lists_fixtures():
|
|
client = TestClient(app)
|
|
response = client.get("/api/modules")
|
|
assert response.status_code == 200
|
|
payload = response.json()
|
|
assert "modules" in payload
|
|
assert any(m["id"] == "secubox-core" for m in payload["modules"])
|
|
|
|
|
|
def test_api_run_preset_accepts_context():
|
|
client = TestClient(app)
|
|
response = client.post(
|
|
"/api/presets/core-snapshot/run",
|
|
json={"context": {"mode": "deep-dive"}},
|
|
)
|
|
assert response.status_code == 200
|
|
payload = response.json()
|
|
assert payload["preset"]["id"] == "core-snapshot"
|
|
assert payload["context"]["mode"] == "deep-dive"
|