diff --git a/Makefile b/Makefile index a787b43..36d7487 100644 --- a/Makefile +++ b/Makefile @@ -13,13 +13,27 @@ help: ## Show this help | awk 'BEGIN{FS=":.*?## "}{printf " \033[36m%-14s\033[0m %s\n", $$1, $$2}' .PHONY: setup -setup: ## Fetch package dependencies +setup: ## Fetch dependencies and generate code (run this after a fresh clone) flutter pub get + $(MAKE) generate + +.PHONY: generate +generate: ## Regenerate freezed/json_serializable/riverpod sources + dart run build_runner build --delete-conflicting-outputs .PHONY: test test: ## Run the widget and unit tests + @test -f lib/core/auth/user_preferences.freezed.dart \ + || { echo "FAIL — generated sources missing; run: make setup"; exit 1; } flutter test +# Why the guard above: *.freezed.dart and lib/**/*.g.dart are gitignored, so a +# fresh clone has none of them and most of the suite fails to compile rather +# than to assert. On 2026-08-09 that read as "26 passed, 17 failed" — which +# looks like broken tests and is actually a missing build step. After +# generating, the same suite is 452 passed. A test run that cannot compile +# should say so in those words. + .PHONY: lint lint: ## Static analysis (analysis_options.yaml at the repo root) flutter analyze