feat(daemon): implement page CRUD routes (Task 8)

- Add routes/pages.ts with pageRoutes handler for POST/GET/DELETE /pages
- Handle POST /pages (create), GET /pages (list), GET /pages/:id, DELETE /pages/:id
- Use safeStringify for all JSON output, proper error codes for 400/404/409/500
- Update server.ts to accept optional BrowserManager and register pageRoutes
- Add 13 unit tests with mock BrowserManager covering all endpoints
This commit is contained in:
2026-08-12 20:55:36 +08:00
parent a8fb781a7c
commit ac503a5ca3
3 changed files with 369 additions and 2 deletions
+7 -2
View File
@@ -1,9 +1,14 @@
import http from 'node:http';
import { healthRoute } from './routes/health.js';
import { pageRoutes } from './routes/pages.js';
import type { BrowserManager } from './browser-manager.js';
const routes = [healthRoute];
export function startServer(port: number, browserManager?: BrowserManager): Promise<http.Server> {
const routes = [healthRoute];
if (browserManager) {
routes.push(pageRoutes(browserManager));
}
export function startServer(port: number): Promise<http.Server> {
return new Promise((resolve) => {
const server = http.createServer((req, res) => {
for (const route of routes) {