Enhance development workflow with Docker integration

- Updated CONTRIBUTING.md to clarify the use of Makefile targets for running tasks inside Docker, eliminating the need for local Go or Node installations.
- Introduced docker-compose.tools.yml for backend and frontend tools, allowing for streamlined testing, linting, and formatting.
- Created Dockerfile.tools to set up a Go environment with necessary tools for testing and linting.
- Modified Makefile to include separate targets for backend and frontend tests, improving clarity and usability.
- Updated documentation in development.md and testing.md to reflect the new Docker-based workflow for running tests and development tasks.
This commit is contained in:
2026-03-04 11:39:27 +03:00
parent adfdfd01c4
commit a3a4c0e896
8 changed files with 120 additions and 84 deletions

View File

@@ -8,7 +8,7 @@ alwaysApply: true
- **Monorepo:** Go backend + Nuxt 3 frontend. Backend: `cmd/hnh-map/`, `internal/app/`. Frontend source: `frontend-nuxt/`; production static output: `frontend/` (build artifact from `frontend-nuxt/`, do not edit).
- **Changing API:** Update `internal/app/` (e.g. `api.go`, `map.go`) and [docs/api.md](docs/api.md); frontend uses composables in `frontend-nuxt/composables/` (e.g. `useMapApi.ts`).
- **Changing config:** Update [.env.example](.env.example) and [docs/configuration.md](docs/configuration.md).
- **Local run / build:** [docs/development.md](docs/development.md), [CONTRIBUTING.md](CONTRIBUTING.md). Dev ports: frontend 3000, backend 3080; prod: 8080.
- **Local run / build:** [docs/development.md](docs/development.md), [CONTRIBUTING.md](CONTRIBUTING.md). Dev ports: frontend 3000, backend 3080; prod: 8080. Build, test, lint, and format run via Docker (Makefile + docker-compose.tools.yml).
- **Docs:** [docs/](docs/) (architecture, API, configuration, development, deployment). Some docs are in Russian.
- **Coding:** Write tests first before implementing any functionality.
- **Running tests:** When the user asks to run tests or to verify changes, use the run-tests skill: [.cursor/skills/run-tests/SKILL.md](.cursor/skills/run-tests/SKILL.md).

View File

@@ -12,42 +12,20 @@ description: Runs backend (Go) and frontend (Vitest) tests for the hnh-map monor
## What to run
This repo has two test suites. Run the one(s) that match the changed code, or both if unsure.
Tests run **in Docker** via the Makefile; no local Go or Node is required.
### Backend (Go)
From the repo root, use:
From repo root:
- **Both backend and frontend:** `make test` (runs backend then frontend tests in Docker).
- **Backend only:** `make test-backend`
- **Frontend only:** `make test-frontend`
```bash
make test
```
Or:
```bash
go test ./...
```
Uses temp dirs and in-memory DBs; no external services needed.
### Frontend (Vitest)
From repo root:
```bash
npm --prefix frontend-nuxt run test
```
Or from `frontend-nuxt/`:
```bash
npm test
```
These use `docker-compose.tools.yml`; the first run may build the backend-tools image.
## Scope
- **Backend-only changes** (e.g. `internal/`, `cmd/`): run `make test`.
- **Frontend-only changes** (e.g. `frontend-nuxt/`): run `npm --prefix frontend-nuxt run test`.
- **Both or unclear**: run backend then frontend.
- **Backend-only changes** (e.g. `internal/`, `cmd/`): run `make test-backend`.
- **Frontend-only changes** (e.g. `frontend-nuxt/`): run `make test-frontend`.
- **Both or unclear**: run `make test`.
Report pass/fail and any failing test names or errors.