from __future__ import annotations

from cron.physique_inline_card import (
    LaunchResult,
    ScheduledLaunchStatus,
    scheduled_launch_record,
)
from gateway.platforms.telegram_weekly_host_dispatch import NutritionScheduledTickOutcome


def test_typed_tick_outcome_becomes_truthful_scheduler_record() -> None:
    # Given
    tick = NutritionScheduledTickOutcome("noop_maintenance")

    # When
    record = scheduled_launch_record(LaunchResult(
        maintenance_noop=tick.disposition == "noop_maintenance",
    ))

    # Then
    assert record.status is ScheduledLaunchStatus.MAINTENANCE
    assert record.success is True
    assert record.error is None
    assert record.status.value == "maintenance no-op completed"


def test_normal_success_remains_sent() -> None:
    # Given / When
    record = scheduled_launch_record(LaunchResult(sent=True))

    # Then
    assert record.status is ScheduledLaunchStatus.SENT
    assert record.success is True
    assert record.error is None
