Files
openclaw-mission-control/backend/tests/test_board_schema.py

55 lines
1.5 KiB
Python
Raw Normal View History

from uuid import uuid4
import pytest
from app.schemas.board_onboarding import BoardOnboardingConfirm
from app.schemas.boards import BoardCreate
2026-02-05 15:00:20 +05:30
def test_goal_board_requires_objective_and_metrics_when_confirmed():
with pytest.raises(ValueError):
2026-02-05 15:00:20 +05:30
BoardCreate(
name="Goal Board",
slug="goal",
gateway_id=uuid4(),
2026-02-05 15:00:20 +05:30
board_type="goal",
goal_confirmed=True,
)
BoardCreate(
name="Goal Board",
slug="goal",
gateway_id=uuid4(),
board_type="goal",
2026-02-05 15:00:20 +05:30
goal_confirmed=True,
objective="Launch onboarding",
success_metrics={"emails": 3},
)
2026-02-05 15:00:20 +05:30
def test_goal_board_allows_missing_objective_before_confirmation():
BoardCreate(name="Draft", slug="draft", gateway_id=uuid4(), board_type="goal")
2026-02-05 15:00:20 +05:30
def test_general_board_allows_missing_objective():
BoardCreate(name="General", slug="general", gateway_id=uuid4(), board_type="general")
def test_onboarding_confirm_requires_goal_fields():
with pytest.raises(ValueError):
BoardOnboardingConfirm(board_type="goal")
with pytest.raises(ValueError):
BoardOnboardingConfirm(board_type="goal", objective="Ship onboarding")
with pytest.raises(ValueError):
BoardOnboardingConfirm(board_type="goal", success_metrics={"emails": 3})
BoardOnboardingConfirm(
board_type="goal",
objective="Ship onboarding",
success_metrics={"emails": 3},
)
BoardOnboardingConfirm(board_type="general")