Classes 10–12 (L): Optional: automated tests, and Docker
Part of the task-app setup for Classes 10–12. Work through the parts in order, doing every step yourself; Start here has the worksheet, the screenshot log, how to ask Claude when you’re stuck, and the list of all parts.
Time: tests: about 5–10 minutes; Docker: about 20–40 minutes, mostly downloading.
As of Oct 22, 2026 · Official docs: Jest · Docker · Supabase local development
The project includes integration tests: programs that sign up test users, create tasks and check the subscription logic against your real Supabase project. To run them, create .env.test.local (in the task-app folder) with the six lines from the worksheet’s Commands sheet. Then, in VS Code’s terminal, type cd ~/projects/full-stack-demo-app/task-app and press Enter (harmless if you’re already there; this just makes sure you’re in the app’s folder), then type npm test and press Enter. (npm test runs the test script in package.json, which runs the tests with a testing tool named Jest.) The tests need your Supabase secret key, which bypasses all security rules: put it only in .env.test.local. See Step 15: Automated Testing and Troubleshooting.
Where Docker fits
You don’t need Docker for this project, but you’ll hear about it.
Docker packages a program together with everything it needs (the right versions of its language, libraries and settings) into a container that runs the same way on any computer. A container image is the packaged program; a container is a running copy of it (Hosting and Deployment introduces the idea).
In this project, everything that runs on a server runs on someone else’s computers: Supabase hosts the database and Edge Functions, and Vercel hosts the website. That is why you don’t need Docker.
Professional teams often also run a complete copy of Supabase on their own laptops, to experiment without touching the real project. The Supabase CLI does this with npx supabase start, which downloads Supabase’s container images and runs them in Docker: a local database, local logins, local storage, and a local dashboard at http://localhost:54323. To try it:
Install Docker Desktop for Mac from docker.com and start it.
Install Docker Desktop for Windows from docker.com and start it. It may ask you to turn on WSL 2, a Windows feature it needs.
Install Docker Engine with your system’s package manager (see docs.docker.com), or Docker Desktop for Linux.
Then, in VS Code’s terminal, type cd ~/projects/full-stack-demo-app/task-app and press Enter (just to make sure), then npx supabase start (start starts the local copy of Supabase; npx supabase stop stops it). Docker needs a fairly recent computer and several GB of disk space, which is why it isn’t required in this course. Docker Desktop is free for personal and educational use.