diff --git a/src/backend/services/recipe_service.py b/src/backend/services/recipe_service.py index 1d9a363..5ebf1e1 100644 --- a/src/backend/services/recipe_service.py +++ b/src/backend/services/recipe_service.py @@ -425,6 +425,7 @@ async def update_current_version( default_task = RecipeTask( version_id=current.id, order_index=0, + task_type="drawing", title="Technical Drawing", file_path=data.file_path, file_type=data.file_type or ( diff --git a/src/backend/tests/test_recipe_service_drawing_task_type.py b/src/backend/tests/test_recipe_service_drawing_task_type.py new file mode 100644 index 0000000..ef4a41b --- /dev/null +++ b/src/backend/tests/test_recipe_service_drawing_task_type.py @@ -0,0 +1,42 @@ +"""Unit test for recipe_service.update_current_version (gitea#36 point 5). + +The default task created to hold a drawing when a version has no tasks yet +must be task_type="drawing" (as create_new_version already does at line +~293), not the "note" default — otherwise the operator screen treats a +version with only a drawing as an empty note. +""" +from sqlalchemy.ext.asyncio import AsyncSession + +from src.backend.models.api.recipe import RecipeUpdate +from src.backend.models.orm.recipe import Recipe, RecipeVersion +from src.backend.models.orm.task import RecipeTask +from src.backend.services import recipe_service + + +async def test_default_task_from_update_current_version_is_drawing_type( + db_session: AsyncSession, admin_user, +): + recipe = Recipe( + code="DRAW-425", name="Drawing only", created_by=admin_user.id, + ) + db_session.add(recipe) + await db_session.flush() + + version = RecipeVersion( + recipe_id=recipe.id, version_number=1, is_current=True, + created_by=admin_user.id, + ) + db_session.add(version) + await db_session.flush() + # No RecipeTask yet: update_current_version must create the default one. + + await recipe_service.update_current_version( + db_session, recipe.id, RecipeUpdate(file_path="1/1/drawing.png"), + ) + await db_session.commit() + + result = await db_session.execute( + RecipeTask.__table__.select().where(RecipeTask.version_id == version.id) + ) + task = result.mappings().one() + assert task["task_type"] == "drawing"