# Semana 9: pruebas unitarias, dobles de prueba, cobertura, TDD y BDD. Se usa
# dentro del contenedor del curso.
#
#   make           corre las demostraciones que necesitan una copia de Kallpa
#                  (in-kallpa/ y el ciclo de TDD); la salida queda en build/logs/
#   make test      revisa los tipos (tsc), corre ESLint, prepara lo anterior y
#                  corre las pruebas (*.test.ts), que comprueban lo que dice el
#                  apunte
#   make cobertura la tabla de cobertura de Kallpa, sin tocar la original
#   make tdd       repite el ciclo de TDD del capítulo en build/tdd
#   make clean     borra build/
#
# Las demostraciones leen la Kallpa del curso (../../kallpa) sin modificarla.
# Los archivos de demos/ fallan a propósito: se corren desde *.test.ts.

KALLPA ?= ../../kallpa
export KALLPA

.PHONY: all test cobertura tdd in-kallpa clean

all: tdd in-kallpa

test: all
	tsc -p .
	eslint .
	node --test "*.test.ts"

cobertura:
	cd $(KALLPA) && node --test --experimental-test-coverage "test/**/*.test.ts"

tdd:
	bash tdd/replay.sh

in-kallpa:
	mkdir -p build/logs
	bash in-kallpa/run.sh > build/logs/in-kallpa.txt 2>&1

clean:
	rm -rf build
