33 lines
725 B
Go
33 lines
725 B
Go
package observability
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSessionTimer(t *testing.T) {
|
|
t.Run("advance 100ms", func(t *testing.T) {
|
|
ts := time.Now()
|
|
st := NewSessionTimer(ts)
|
|
|
|
millis, mins := st.Advance(ts.Add(100 * time.Millisecond))
|
|
require.EqualValues(t, 100, millis)
|
|
require.EqualValues(t, 1, mins)
|
|
|
|
millis, mins = st.Advance(ts.Add(200 * time.Millisecond))
|
|
require.EqualValues(t, 100, millis)
|
|
require.EqualValues(t, 0, mins)
|
|
})
|
|
|
|
t.Run("advance 2.5m", func(t *testing.T) {
|
|
ts := time.Now()
|
|
st := NewSessionTimer(ts)
|
|
|
|
millis, mins := st.Advance(ts.Add(150 * time.Second))
|
|
require.EqualValues(t, 150000, millis)
|
|
require.EqualValues(t, 3, mins)
|
|
})
|
|
}
|