Files
timeline-svg/Makefile
tegwick 2090e372bd add: comprehensive TDD test infrastructure
- Add Vitest + jsdom testing framework
- Create unit tests for engine.js and generator.js
- Add integration tests for end-to-end workflows
- Include test utilities and setup helpers
- Document testing approach in TESTING.md
- Document all dependencies in DEPENDS.md
- Add Makefile with test targets and dev workflow

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 23:36:22 +01:00

139 lines
4.3 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.PHONY: help install test test-watch test-coverage test-ui clean serve lint format deps-check deps-update
# Default target
help:
@echo "Timeline SVG Generator - Make Targets"
@echo "====================================="
@echo ""
@echo "Development:"
@echo " install Install development dependencies"
@echo " serve Start local development server"
@echo " clean Clean node_modules and coverage"
@echo ""
@echo "Testing:"
@echo " test Run all tests once"
@echo " test-watch Run tests in watch mode (TDD)"
@echo " test-coverage Run tests with coverage report"
@echo " test-ui Open browser-based test UI"
@echo ""
@echo "Quality:"
@echo " lint Run code linting (if configured)"
@echo " format Format code (if configured)"
@echo ""
@echo "Dependencies:"
@echo " deps-check Check for outdated dependencies"
@echo " deps-update Update dependencies"
@echo " deps-audit Security audit of dependencies"
@echo ""
# Development setup
install:
@echo "Installing development dependencies..."
npm install
@echo "✅ Dependencies installed"
# Testing targets
test:
@echo "Running tests..."
@if [ ! -d "node_modules" ]; then \
echo "❌ Dependencies not installed. Run 'make install' first."; \
exit 1; \
fi
npm test
test-watch:
@echo "Starting test watch mode (press 'q' to quit)..."
@if [ ! -d "node_modules" ]; then \
echo "❌ Dependencies not installed. Run 'make install' first."; \
exit 1; \
fi
npm run test:watch
test-coverage:
@echo "Running tests with coverage..."
@if [ ! -d "node_modules" ]; then \
echo "❌ Dependencies not installed. Run 'make install' first."; \
exit 1; \
fi
npm run test:coverage
@echo "📊 Coverage report generated in coverage/ directory"
test-ui:
@echo "Opening test UI in browser..."
@if [ ! -d "node_modules" ]; then \
echo "❌ Dependencies not installed. Run 'make install' first."; \
exit 1; \
fi
npm run test:ui
# Development server (simple HTTP server for testing)
serve:
@if command -v python3 >/dev/null 2>&1; then \
echo "Starting development server on http://localhost:8000..."; \
echo "📂 Serving files from current directory"; \
echo "Press Ctrl+C to stop"; \
python3 -m http.server 8000; \
elif command -v python >/dev/null 2>&1; then \
echo "Starting development server on http://localhost:8000..."; \
echo "📂 Serving files from current directory"; \
echo "Press Ctrl+C to stop"; \
python -m SimpleHTTPServer 8000; \
elif command -v npx >/dev/null 2>&1; then \
echo "Starting development server with npx..."; \
npx serve -l 8000; \
else \
echo "❌ No suitable HTTP server found"; \
echo "Install Python or Node.js to use 'make serve'"; \
exit 1; \
fi
# Code quality (placeholder targets for future use)
lint:
@if [ -f "package.json" ] && npm list eslint >/dev/null 2>&1; then \
echo "Running ESLint..."; \
npx eslint *.js; \
else \
echo " ESLint not configured. Skipping lint check."; \
echo " To add linting: npm install --save-dev eslint"; \
fi
format:
@if [ -f "package.json" ] && npm list prettier >/dev/null 2>&1; then \
echo "Formatting code with Prettier..."; \
npx prettier --write "*.js" "test/*.js"; \
else \
echo " Prettier not configured. Skipping code formatting."; \
echo " To add formatting: npm install --save-dev prettier"; \
fi
# Dependency management
deps-check:
@echo "Checking for outdated dependencies..."
npm outdated
deps-update:
@echo "Updating dependencies..."
npm update
@echo "✅ Dependencies updated"
deps-audit:
@echo "Running security audit..."
npm audit
@echo "🔒 Security audit complete"
# Cleanup
clean:
@echo "Cleaning up..."
@if [ -d "node_modules" ]; then rm -rf node_modules && echo "🗑️ Removed node_modules/"; fi
@if [ -d "coverage" ]; then rm -rf coverage && echo "🗑️ Removed coverage/"; fi
@if [ -d ".vitest" ]; then rm -rf .vitest && echo "🗑️ Removed .vitest/"; fi
@echo "✅ Cleanup complete"
# Quick setup for new developers
setup: clean install test
@echo ""
@echo "🎉 Setup complete! You can now:"
@echo " • Run 'make test' to run tests"
@echo " • Run 'make test-watch' for TDD"
@echo " • Run 'make serve' to start development server"
@echo " • Open index.html in browser to use the app"