UI
This commit is contained in:
@@ -41,6 +41,11 @@ def legacy_config():
|
||||
"name": "Squat",
|
||||
"key": "squat",
|
||||
"cue": "tief",
|
||||
"equipment": "Körpergewicht",
|
||||
"description": "alter Beschreibungstext",
|
||||
"sets": 3,
|
||||
"reps": "8-12",
|
||||
"duration_seconds": 30,
|
||||
"result_schema": {"mode": "reps"},
|
||||
}
|
||||
],
|
||||
@@ -54,8 +59,8 @@ def legacy_config():
|
||||
def test_migration_flattens_legacy_plan_to_days_and_exercises():
|
||||
migrated = migrate_training_config(legacy_config(), plan_id="test")
|
||||
|
||||
assert migrated["schema_version"] == 4
|
||||
assert migrated["contract_version"] == 3
|
||||
assert migrated["schema_version"] == 5
|
||||
assert migrated["contract_version"] == 4
|
||||
assert migrated["plan_id"] == "test"
|
||||
assert "colors" not in migrated
|
||||
assert "training_format" not in migrated
|
||||
@@ -64,7 +69,10 @@ def test_migration_flattens_legacy_plan_to_days_and_exercises():
|
||||
assert "exercise_catalog" not in migrated
|
||||
|
||||
assert migrated["meta"] == {"title": "Alter Plan", "subtitle": "wird reduziert"}
|
||||
assert migrated["exercises"] == [{"id": "exercise-squat", "name": "Squat", "cue": "tief"}]
|
||||
assert migrated["exercises"][0]["id"] == "exercise-squat"
|
||||
assert migrated["exercises"][0]["name"] == "Squat"
|
||||
assert [item["name"] for item in migrated["exercises"][0]["progressions"]] == ["leicht", "schwer"]
|
||||
assert migrated["exercises"][0]["current_progression_id"] == migrated["exercises"][0]["progressions"][0]["id"]
|
||||
|
||||
day = migrated["days"][0]
|
||||
assert day["name"] == "Beine"
|
||||
@@ -72,12 +80,13 @@ def test_migration_flattens_legacy_plan_to_days_and_exercises():
|
||||
assert day["cooldown"]["items"] == ["Atmen", "Locker gehen"]
|
||||
assert "stretch" not in day
|
||||
assert "rotations" not in day
|
||||
assert "focus" not in day
|
||||
assert "notes" not in day
|
||||
|
||||
item = day["exercises"][0]
|
||||
assert item == {
|
||||
"id": "old-placement",
|
||||
"exercise_id": "exercise-squat",
|
||||
"notes": "Block A",
|
||||
}
|
||||
|
||||
|
||||
@@ -87,10 +96,48 @@ def test_migration_is_stable_across_repeated_runs():
|
||||
assert first == second
|
||||
|
||||
|
||||
def test_root_json_style_keys_create_one_exercise_with_stage_progressions():
|
||||
cfg = {
|
||||
"meta": {"title": "Root Import"},
|
||||
"stages": {
|
||||
"ls": {
|
||||
"name": "Push-up-Progression",
|
||||
"steps": [
|
||||
{"name": "High Plank"},
|
||||
{"name": "Negative"},
|
||||
{"name": "Negative"},
|
||||
{"name": "voll"},
|
||||
],
|
||||
}
|
||||
},
|
||||
"days": [
|
||||
{
|
||||
"num": 1,
|
||||
"focus": "A",
|
||||
"rotations": [{"exercises": [{"key": "ls", "name": "Push-up-Progression"}]}],
|
||||
},
|
||||
{
|
||||
"num": 2,
|
||||
"focus": "B",
|
||||
"rotations": [{"exercises": [{"key": "ls", "name": "Push-up-Progression"}]}],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
migrated = migrate_training_config(cfg, plan_id="root")
|
||||
|
||||
assert len(migrated["exercises"]) == 1
|
||||
exercise = migrated["exercises"][0]
|
||||
assert [item["name"] for item in exercise["progressions"]] == ["High Plank", "Negative", "voll"]
|
||||
assert len(migrated["days"][0]["exercises"]) == 1
|
||||
assert migrated["days"][0]["exercises"][0]["exercise_id"] == exercise["id"]
|
||||
assert migrated["days"][1]["exercises"][0]["exercise_id"] == exercise["id"]
|
||||
|
||||
|
||||
def test_validation_accepts_complete_minimal_plan():
|
||||
cfg = {
|
||||
"meta": {"title": "Minimal"},
|
||||
"exercises": [{"id": "exercise-pushup", "name": "Push-up"}],
|
||||
"exercises": [{"id": "exercise-pushup", "name": "Push-up", "progressions": [{"id": "progression-high-plank", "name": "High Plank"}], "current_progression_id": "progression-high-plank"}],
|
||||
"days": [
|
||||
{
|
||||
"id": "day-1",
|
||||
@@ -98,7 +145,7 @@ def test_validation_accepts_complete_minimal_plan():
|
||||
"name": "Tag 1",
|
||||
"warmup": {"items": ["Mobilisieren"]},
|
||||
"cooldown": {"items": ["Atmen"]},
|
||||
"exercises": [{"id": "item-1", "exercise_id": "exercise-pushup", "sets": 3, "reps": "8-12"}],
|
||||
"exercises": [{"id": "item-1", "exercise_id": "exercise-pushup"}],
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user