mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 07:57:19 -05:00
Implements complete Phase 2 scaffold across 6 core modules: ## New Modules ### 1. Backend API Enhancements - Add system router with /version, /config/public, /os/state endpoints - Register system router in main.py - Add comprehensive tests for system endpoints ### 2. Core OS Runtime (core_os/) - Implement UserSession, Window, OSState models - Add state management functions (open_window, close_window, etc.) - Create Backend API adapter for communication - Include full test suite for models and state ### 3. Operator Engine (operator_engine/) - Build job registry with example jobs - Implement simple scheduler with lifecycle management - Optional HTTP server on port 8001 - Complete tests for jobs and scheduler ### 4. Web Client Enhancements - Add CoreOSClient JavaScript class - Integrate system API endpoints - Event-driven architecture for state updates - Zero dependencies, vanilla JavaScript ### 5. Prism Console (prism-console/) - Modern dark-themed admin UI - Multi-tab navigation (Overview, Jobs, Agents, Logs, System) - Real-time metrics dashboard - Backend API integration with auto-refresh ### 6. Documentation (codex-docs/) - Complete MkDocs-based documentation - Architecture guides and component docs - Infrastructure setup guides - API reference documentation ## CI/CD - Add core-os-tests.yml workflow - Add operator-tests.yml workflow - Add docs-build.yml workflow ## Documentation - Create BLACKROAD_OS_REPO_MAP.md cross-reference - Add README for each module - Comprehensive integration documentation ## Summary - 37 new files created - ~3,500 lines of new code - 5 test suites with 15+ tests - 3 new CI workflows - 10+ documentation pages All modules are minimal working skeletons ready for integration. Designed to be extracted into separate repos if needed. Phase 2 scaffold complete and ready for review.
68 lines
1.8 KiB
Python
68 lines
1.8 KiB
Python
"""Tests for core OS models"""
|
|
import pytest
|
|
from core_os.models import UserSession, Window, OSState, WindowState
|
|
|
|
|
|
def test_user_session_creation():
|
|
"""Test creating a user session"""
|
|
session = UserSession(display_name="Test User")
|
|
|
|
assert session.display_name == "Test User"
|
|
assert session.id is not None
|
|
assert session.created_at is not None
|
|
|
|
|
|
def test_user_session_to_dict():
|
|
"""Test user session serialization"""
|
|
session = UserSession(display_name="Test User", user_id="user123")
|
|
data = session.to_dict()
|
|
|
|
assert data["display_name"] == "Test User"
|
|
assert data["user_id"] == "user123"
|
|
assert "created_at" in data
|
|
|
|
|
|
def test_window_creation():
|
|
"""Test creating a window"""
|
|
window = Window(app_id="notepad", title="Notepad")
|
|
|
|
assert window.app_id == "notepad"
|
|
assert window.title == "Notepad"
|
|
assert window.state == WindowState.NORMAL
|
|
assert window.id is not None
|
|
|
|
|
|
def test_window_to_dict():
|
|
"""Test window serialization"""
|
|
window = Window(app_id="calculator", title="Calculator")
|
|
data = window.to_dict()
|
|
|
|
assert data["app_id"] == "calculator"
|
|
assert data["title"] == "Calculator"
|
|
assert data["state"] == "normal"
|
|
assert "position" in data
|
|
assert "size" in data
|
|
|
|
|
|
def test_os_state_creation():
|
|
"""Test creating OS state"""
|
|
state = OSState()
|
|
|
|
assert state.session is not None
|
|
assert isinstance(state.windows, list)
|
|
assert state.theme == "classic"
|
|
|
|
|
|
def test_os_state_to_dict():
|
|
"""Test OS state serialization"""
|
|
state = OSState()
|
|
window = Window(app_id="test", title="Test Window")
|
|
state.windows.append(window)
|
|
|
|
data = state.to_dict()
|
|
|
|
assert "session" in data
|
|
assert "windows" in data
|
|
assert len(data["windows"]) == 1
|
|
assert data["theme"] == "classic"
|