From 02344eb3f57f1e4513d1e443f078ae3ec5d04e97 Mon Sep 17 00:00:00 2001 From: david raistrick <1108844+keen99@users.noreply.github.com> Date: Mon, 6 Jul 2026 23:49:47 -0400 Subject: [PATCH] Bump Docker base images to node 22; mock firestore comment cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both Dockerfiles (root firebase-mode + docker/ caddy) bumped node:18-alpine to node:22-alpine. better-sqlite3 v12 (from PR #6) requires node 20+; node 18 builds fail with node-gyp/python errors. openssl-legacy-provider flag kept for react-scripts 5 compat. .dockerignore: removed .env* exclusion so .env.local COPY works in firebase image build. mock firestore applyConstraints comment: offset handled by adapter (firebase.js slices), mock never sees it — clarified dead-code reasoning. --- .dockerignore | 1 - Dockerfile | 4 ++-- TODO.md | 3 +++ docker/Dockerfile | 4 ++-- src/__mocks__/firebase/firestore.js | 6 +++--- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.dockerignore b/.dockerignore index aba797c..4f7bee5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,6 +6,5 @@ data *.log npm-debug.log* .DS_Store -.env* coverage .nyc_output diff --git a/Dockerfile b/Dockerfile index 415e43a..35d0d9d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Dockerfile # Stage 1: Build the React application -FROM node:18-alpine AS build +FROM node:22-alpine AS build LABEL stage="build-local-testing" @@ -48,4 +48,4 @@ COPY nginx-docker.conf /etc/nginx/conf.d/default.conf EXPOSE 80 # Start Nginx when the container launches -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file +CMD ["nginx", "-g", "daemon off;"] diff --git a/TODO.md b/TODO.md index 08c4517..529c687 100644 --- a/TODO.md +++ b/TODO.md @@ -10,6 +10,9 @@ Backlog of bugs + long-term items. Milestones live in REWORK_PLAN.md. not sure good way to do this +### npm install warnings cleanup pass +lots of updates + ### TEST GAP: current branch changes need focused coverage diff --git a/docker/Dockerfile b/docker/Dockerfile index 14d0f5b..53b4971 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,7 @@ # docker/Dockerfile --- single container: caddy (front) + node (back). # Build context = repo root. # ---- build stage: frontend + install backend deps ---- -FROM node:18-alpine AS build +FROM node:22-alpine AS build WORKDIR /app COPY package*.json ./ @@ -30,7 +30,7 @@ RUN cd server && npm rebuild better-sqlite3 # ---- runtime stage: caddy + node ---- -FROM node:18-alpine +FROM node:22-alpine RUN apk add --no-cache caddy WORKDIR /app diff --git a/src/__mocks__/firebase/firestore.js b/src/__mocks__/firebase/firestore.js index 9ba0654..e4ceb8a 100644 --- a/src/__mocks__/firebase/firestore.js +++ b/src/__mocks__/firebase/firestore.js @@ -105,9 +105,9 @@ export function onSnapshot(refOrQuery, onSuccess, onError) { return unsub; } -// Apply Firestore-style query constraints (orderBy desc/asc, limit) to mock docs. -// Mirrors real SDK semantics enough for contract tests. Only orderBy + limit -// supported (App's LOG_QUERY uses exactly these). +// Apply Firestore-style query constraints (orderBy desc/asc, limit, where) +// to mock docs. Mirrors real SDK semantics for contract tests. Offset handled +// by adapter (firebase.js slices) — mock never sees it. function applyConstraints(docs, constraints) { let out = [...docs]; for (const c of constraints) {