feat: Implement development pipeline and boost test coverage

- Add Makefile with `check`, `run` (blocking), and `force-stop` targets
- Integrate fitmop.sh logic into Makefile
- Achieve 100% backend test coverage
- Improve frontend test coverage to >85% (Views/Components >90%)
- Enforce `make check` in GEMINI.md
- Add comprehensive tests for App.vue and WorkoutVisualEditor.vue
This commit is contained in:
Moritz Graf
2026-01-01 22:16:00 +01:00
parent f3260d7dff
commit 2240a32a53
29 changed files with 2283 additions and 265 deletions
+8 -20
View File
@@ -10,14 +10,7 @@ import {
LinearScale
} from 'chart.js'
import { Bar } from 'vue-chartjs'
import {
Activity,
Loader2,
CheckCircle,
AlertTriangle,
Send,
Bot
} from 'lucide-vue-next'
import { Activity, Loader2, CheckCircle, AlertTriangle, Send, Bot } from 'lucide-vue-next'
ChartJS.register(CategoryScale, LinearScale, BarElement, Title, Tooltip, Legend)
@@ -105,6 +98,11 @@ const sendMessage = async () => {
}
}
const handleChipClick = (msg) => {
chatInput.value = msg
sendMessage()
}
watch(timeHorizon, () => {
fetchData()
})
@@ -166,20 +164,10 @@ onMounted(() => {
<div v-if="chatHistory.length === 0" class="empty-state">
<p>Ask me anything about your training data!</p>
<div class="chips">
<button
@click="
chatInput = 'Summarize my last 4 weeks of training';
sendMessage();
"
>
<button @click="handleChipClick('Summarize my last 4 weeks of training')">
Summarize last month
</button>
<button
@click="
chatInput = 'Why is my volume increasing?';
sendMessage();
"
>
<button @click="handleChipClick('Why is my volume increasing?')">
Analyze volume trend
</button>
</div>