Files
2026-10-01 16:12:38 +07:00

34 lines
1.1 KiB
Go

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)
}
}