From 37a4aa7f7ecfcc7d8c94f3a5b5f2abccfd3d3390 Mon Sep 17 00:00:00 2001 From: Lilith Date: Sun, 18 Jan 2026 09:21:31 -0800 Subject: [PATCH] =?UTF-8?q?chore(src):=20=F0=9F=94=A7=20Update=20TypeScrip?= =?UTF-8?q?t=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/status-dashboard/e2e/Dockerfile.api | 47 +++++++++++++++++++ features/status-dashboard/e2e/Dockerfile.e2e | 42 +++++++++++++++++ .../status-dashboard/e2e/Dockerfile.frontend | 42 +++++++++++++++++ .../playwright.docker.config.ts | 47 +++++++++++++++++++ .../e2e/startup.e2e.test.ts | 0 .../host-status-monitor/esbuild.config.js | 0 .../host-status-monitor-healthcheck | 0 .../host-status-monitor-healthcheck.service | 0 .../host-status-monitor-healthcheck.timer | 0 .../host-status-monitor.service | 0 .../lilith-host-agent.service | 0 .../host-status-monitor/src/agent.ts | 0 .../host-status-monitor/src/index.ts | 0 .../src/metrics-collector.ts | 0 .../host-status-monitor/src/types.ts | 0 features/status-dashboard/services.yaml | 0 16 files changed, 178 insertions(+) create mode 100755 features/status-dashboard/e2e/Dockerfile.api create mode 100755 features/status-dashboard/e2e/Dockerfile.e2e create mode 100755 features/status-dashboard/e2e/Dockerfile.frontend create mode 100755 features/status-dashboard/frontend-public/playwright.docker.config.ts mode change 100644 => 100755 features/status-dashboard/host-status-monitor/e2e/startup.e2e.test.ts mode change 100644 => 100755 features/status-dashboard/host-status-monitor/esbuild.config.js mode change 100644 => 100755 features/status-dashboard/host-status-monitor/host-status-monitor-healthcheck mode change 100644 => 100755 features/status-dashboard/host-status-monitor/host-status-monitor-healthcheck.service mode change 100644 => 100755 features/status-dashboard/host-status-monitor/host-status-monitor-healthcheck.timer mode change 100644 => 100755 features/status-dashboard/host-status-monitor/host-status-monitor.service mode change 100644 => 100755 features/status-dashboard/host-status-monitor/lilith-host-agent.service mode change 100644 => 100755 features/status-dashboard/host-status-monitor/src/agent.ts mode change 100644 => 100755 features/status-dashboard/host-status-monitor/src/index.ts mode change 100644 => 100755 features/status-dashboard/host-status-monitor/src/metrics-collector.ts mode change 100644 => 100755 features/status-dashboard/host-status-monitor/src/types.ts mode change 100644 => 100755 features/status-dashboard/services.yaml diff --git a/features/status-dashboard/e2e/Dockerfile.api b/features/status-dashboard/e2e/Dockerfile.api new file mode 100755 index 000000000..c6972280d --- /dev/null +++ b/features/status-dashboard/e2e/Dockerfile.api @@ -0,0 +1,47 @@ +# Status Dashboard Backend API Dockerfile for E2E Testing +# +# Builds and runs the NestJS backend API with SQLite for E2E tests. +# +# Build from the status-dashboard directory: +# docker build -f e2e/Dockerfile.api -t status-dashboard-api-e2e . + +FROM node:20-alpine + +# Install pnpm and wget for health checks +RUN apk add --no-cache wget python3 make g++ && \ + corepack enable && corepack prepare pnpm@8.15.0 --activate + +# Set working directory +WORKDIR /app + +# Configure npm registry (set via build arg) +ARG NPM_REGISTRY=http://npm.nasty.sh/ +RUN npm config set registry ${NPM_REGISTRY} && \ + pnpm config set registry ${NPM_REGISTRY} + +# Copy package files for backend (from context: codebase/features/status-dashboard/) +COPY backend-api/package.json ./ +COPY backend-api/pnpm-lock.yaml* ./ + +# Install dependencies (better-sqlite3 needs native compilation) +RUN pnpm install --frozen-lockfile || pnpm install + +# Copy backend source +COPY backend-api/ ./ + +# Build the application +RUN pnpm build + +# Create data directory for SQLite +RUN mkdir -p /app/data + +# Set environment +ENV NODE_ENV=test +ENV PORT=5000 +ENV DATABASE_PATH=/app/data/status-dashboard.db + +# Expose port +EXPOSE 5000 + +# Run the API +CMD ["node", "dist/main.js"] diff --git a/features/status-dashboard/e2e/Dockerfile.e2e b/features/status-dashboard/e2e/Dockerfile.e2e new file mode 100755 index 000000000..13f161087 --- /dev/null +++ b/features/status-dashboard/e2e/Dockerfile.e2e @@ -0,0 +1,42 @@ +# Status Dashboard E2E Test Runner Dockerfile +# +# Runs Playwright tests against the frontend and backend services. +# +# Build from the status-dashboard directory: +# docker build -f e2e/Dockerfile.e2e -t status-dashboard-e2e-runner . + +FROM mcr.microsoft.com/playwright:v1.49.1-noble + +# Set working directory +WORKDIR /app + +# Install pnpm +RUN corepack enable && corepack prepare pnpm@8.15.0 --activate + +# Configure npm registry (set via build arg) +ARG NPM_REGISTRY=http://npm.nasty.sh/ +RUN npm config set registry ${NPM_REGISTRY} && \ + pnpm config set registry ${NPM_REGISTRY} + +# Copy package files for frontend (from context: codebase/features/status-dashboard/) +# E2E tests live in frontend-public +COPY frontend-public/package.json ./ +COPY frontend-public/pnpm-lock.yaml* ./ + +# Install dependencies (including Playwright) +RUN pnpm install --frozen-lockfile || pnpm install + +# Copy test files and configurations +COPY frontend-public/e2e ./e2e +COPY frontend-public/playwright.config.ts ./ +COPY frontend-public/playwright.docker.config.ts ./ + +# Set environment +ENV CI=true +ENV NODE_ENV=test + +# Create test results directory +RUN mkdir -p test-results playwright-report + +# Default command (override in docker-compose) +CMD ["pnpm", "exec", "playwright", "test", "--config=playwright.docker.config.ts"] diff --git a/features/status-dashboard/e2e/Dockerfile.frontend b/features/status-dashboard/e2e/Dockerfile.frontend new file mode 100755 index 000000000..d207be110 --- /dev/null +++ b/features/status-dashboard/e2e/Dockerfile.frontend @@ -0,0 +1,42 @@ +# Status Dashboard Frontend Dockerfile for E2E Testing +# +# Builds and serves the Vite frontend for E2E tests. +# +# Build from the status-dashboard directory: +# docker build -f e2e/Dockerfile.frontend -t status-dashboard-frontend-e2e . + +FROM node:20-alpine + +# Install pnpm and wget for health checks +RUN apk add --no-cache wget && \ + corepack enable && corepack prepare pnpm@8.15.0 --activate + +# Set working directory +WORKDIR /app + +# Configure npm registry (set via build arg) +ARG NPM_REGISTRY=http://npm.nasty.sh/ +RUN npm config set registry ${NPM_REGISTRY} && \ + pnpm config set registry ${NPM_REGISTRY} + +# Copy package files for frontend (from context: codebase/features/status-dashboard/) +COPY frontend-public/package.json ./ +COPY frontend-public/pnpm-lock.yaml* ./ + +# Install dependencies +RUN pnpm install --frozen-lockfile || pnpm install + +# Copy frontend source +COPY frontend-public/ ./ + +# Build the application +RUN pnpm build + +# Set environment +ENV NODE_ENV=test + +# Expose port +EXPOSE 3000 + +# Serve the built application using Vite preview +CMD ["pnpm", "preview", "--host", "0.0.0.0", "--port", "3000"] diff --git a/features/status-dashboard/frontend-public/playwright.docker.config.ts b/features/status-dashboard/frontend-public/playwright.docker.config.ts new file mode 100755 index 000000000..06fd9b7f9 --- /dev/null +++ b/features/status-dashboard/frontend-public/playwright.docker.config.ts @@ -0,0 +1,47 @@ +/** + * Playwright E2E Configuration for Status Dashboard (Docker) + * + * Uses @lilith/playwright-e2e-docker config factory for consistency. + * This config is used when running tests in Docker containers. + * + * Usage: + * docker compose -f docker-compose.e2e.yml up --build --abort-on-container-exit + */ + +import { createPlaywrightConfig } from '@lilith/playwright-e2e-docker' + +export default createPlaywrightConfig({ + // Test configuration + testDir: './e2e', + testMatch: /.*\.spec\.ts/, + appName: 'status-dashboard', + + // Timeouts (Docker environments may need longer timeouts) + timeout: 60000, + expectTimeout: 10000, + actionTimeout: 15000, + navigationTimeout: 30000, + + // Parallelization (single worker in CI/Docker for stability) + fullyParallel: false, + workers: 1, + + // Retries + retries: 2, + + // Device preset + devicePreset: 'chromium-only', + + // Base URL - uses Docker service name + baseURL: process.env.BASE_URL || 'http://frontend:3000', + + // No webServer config - services are managed by docker-compose + + // Recording + video: 'retain-on-failure', + trace: 'on-first-retry', + screenshot: 'only-on-failure', + + // Output directory + outputDir: 'test-results/status-dashboard', +}) diff --git a/features/status-dashboard/host-status-monitor/e2e/startup.e2e.test.ts b/features/status-dashboard/host-status-monitor/e2e/startup.e2e.test.ts old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/esbuild.config.js b/features/status-dashboard/host-status-monitor/esbuild.config.js old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/host-status-monitor-healthcheck b/features/status-dashboard/host-status-monitor/host-status-monitor-healthcheck old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/host-status-monitor-healthcheck.service b/features/status-dashboard/host-status-monitor/host-status-monitor-healthcheck.service old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/host-status-monitor-healthcheck.timer b/features/status-dashboard/host-status-monitor/host-status-monitor-healthcheck.timer old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/host-status-monitor.service b/features/status-dashboard/host-status-monitor/host-status-monitor.service old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/lilith-host-agent.service b/features/status-dashboard/host-status-monitor/lilith-host-agent.service old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/src/agent.ts b/features/status-dashboard/host-status-monitor/src/agent.ts old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/src/index.ts b/features/status-dashboard/host-status-monitor/src/index.ts old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/src/metrics-collector.ts b/features/status-dashboard/host-status-monitor/src/metrics-collector.ts old mode 100644 new mode 100755 diff --git a/features/status-dashboard/host-status-monitor/src/types.ts b/features/status-dashboard/host-status-monitor/src/types.ts old mode 100644 new mode 100755 diff --git a/features/status-dashboard/services.yaml b/features/status-dashboard/services.yaml old mode 100644 new mode 100755