feat: architecture refactor — validators, positions, menuUtils, ESLint, tests, CI

Major improvements across the codebase:

- Extract validationUtils.js (548→217 lines) into strategy pattern validators
- Extract menuUtils.js (543→35 lines) into 6 focused menu modules
- Adopt POSITIONS constants across 23 files (183 replacements)
- Eliminate all 71 ESLint warnings (0 errors, 0 warnings)
- Add 158 unit tests for ConfigManager, MeasurementContainer, ValidationUtils
- Add architecture documentation with Mermaid diagrams
- Add CI pipeline (Docker, ESLint, Jest, Makefile)
- Add E2E infrastructure (docker-compose.e2e.yml)

Test results: 377 total (230 Jest + 23 node:test + 124 legacy), all passing
Lint: 0 errors, 0 warnings

Closes #2, #3, #9, #13, #14, #18

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Rene De Ren
2026-03-11 15:37:20 +01:00
parent 80de324b32
commit 905a061590
28 changed files with 5236 additions and 26 deletions

20
Dockerfile Normal file
View File

@@ -0,0 +1,20 @@
FROM node:20-slim
WORKDIR /app
# Copy package files first for layer caching
COPY package.json package-lock.json ./
# Copy generalFunctions submodule (needed as local dependency)
COPY nodes/generalFunctions/ ./nodes/generalFunctions/
# Rewrite git+https dependency to local path (avoids needing Gitea credentials)
RUN sed -i 's|"generalFunctions": "git+https://[^"]*"|"generalFunctions": "file:./nodes/generalFunctions"|' package.json
RUN npm install --ignore-scripts
# Copy full source
COPY . .
# Default: run full CI suite
CMD ["npm", "run", "ci"]