760b4a7c6c
#321 — `minstrel admin reset-password [-user admin] [-password X]`: loads config, updates BOTH password_hash (bcrypt) and subsonic_password (plaintext, for Subsonic t+s) so neither auth path is left stale; generates+prints a strong password when -password is omitted. Recovers a locked-out operator without DB surgery. Subcommand dispatch added to main.go (os.Args switch before flag-parse; server path untouched) plus a `minstrel migrate` subcommand exposing db.Migrate standalone. #339 — integration tests no longer truncate the dev DB: - deploy/initdb creates minstrel_test on a fresh compose volume; `make test-integration` ensures it idempotently and points MINSTREL_TEST_DATABASE_URL at minstrel_test. - docker-compose.yml + README updated. CI integration job (test-go.yml): the prior workflow only ran `go test -short -race` with no DB, so the entire integration suite silently t.Skip'd — "CI green" never covered API/db/scanner. New `integration` job runs the full `go test -race` against an ephemeral Postgres service, using the act_runner shared-daemon pattern: no published ports, discover the service container by job-name filter via the docker socket, reach it by bridge IP, hard exactly-one assertion + dev-compose-name reject (a wrong target would truncate real data), TCP-wait, `minstrel migrate`, then test. Fast `test` job kept as the quick gate. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 lines
790 B
Makefile
27 lines
790 B
Makefile
.PHONY: generate test test-short test-integration lint build
|
|
|
|
SQLC_VERSION := 1.31.1
|
|
|
|
generate:
|
|
docker run --rm -v "$(CURDIR):/src" -w /src sqlc/sqlc:$(SQLC_VERSION) generate
|
|
|
|
test:
|
|
go test -race ./...
|
|
|
|
test-short:
|
|
go test -short -race ./...
|
|
|
|
# Full suite incl. integration tests, against the dedicated minstrel_test
|
|
# DB so a run never truncates the dev `minstrel` DB (Fable #339). Ensures
|
|
# the test DB exists (idempotent — createdb errors if present, ignored).
|
|
test-integration:
|
|
docker compose up -d postgres
|
|
-docker compose exec -T postgres createdb -U minstrel minstrel_test
|
|
MINSTREL_TEST_DATABASE_URL=postgres://minstrel:minstrel@localhost:5432/minstrel_test?sslmode=disable go test -race ./...
|
|
|
|
lint:
|
|
golangci-lint run ./...
|
|
|
|
build:
|
|
go build -o bin/minstrel ./cmd/minstrel
|