package app import ( "testing" "time" "evening_detective_server/internal/services/screen_service" proto "evening_detective_server/proto" ) func TestScreenStateTimer(t *testing.T) { session := &screen_service.ScreenSession{ ID: 1, LastSeen: time.Now(), TimerLabel: "Перерыв", TimerDurationSeconds: 600, TimerRemainingSeconds: 600, TimerState: int32(proto.ScreenTimerState_SCREEN_TIMER_STATE_RUNNING), } endsAt := time.Now().Add(10 * time.Second) session.TimerEndsAt = &endsAt state := screenState(session) if state.TimerState != proto.ScreenTimerState_SCREEN_TIMER_STATE_RUNNING || state.TimerRemainingSeconds <= 0 || state.TimerRemainingSeconds > 10 { t.Fatalf("unexpected running timer: state=%s remaining=%d", state.TimerState, state.TimerRemainingSeconds) } endsAt = time.Now().Add(-time.Second) state = screenState(session) if state.TimerState != proto.ScreenTimerState_SCREEN_TIMER_STATE_FINISHED || state.TimerRemainingSeconds != 0 { t.Fatalf("unexpected finished timer: state=%s remaining=%d", state.TimerState, state.TimerRemainingSeconds) } }