from clfgui.kernel import SQLiteStatusStore def test_store_records_job_decision_and_result(tmp_path): store = SQLiteStatusStore(tmp_path / "state.sqlite3") job = store.create_job("Build a small owner app") store.create_phases(job.id, ["plan", "research"]) phase = store.update_phase(job.id, "plan", "completed", "Plan ready") decision = store.create_decision( job.id, "plan", "Plan freigeben", "Review the condensed plan.", ["Plan freigeben", "Auftrag blockieren"], ) answered = store.answer_decision(decision.id, "Plan freigeben", "Looks good") result = store.save_result( job.id, "Done", blocked=False, decisions=["Plan freigeben: Looks good"], next_steps=["Ship V1"], ) approved = store.set_result_approval(job.id, True) snapshot = store.snapshot(job.id) assert phase.status == "completed" assert answered.status == "answered" assert result.blocked is False assert approved.approved is True assert snapshot.job.id == job.id assert [item.name for item in snapshot.phases] == ["plan", "research"] assert snapshot.result is not None store.close()