generated from VLADIMIR/template
34 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|