Minor refactoring in HostStatus function (#692)

- Refactor function
- Add test
This commit is contained in:
Zachary Wasserman 2016-12-22 13:32:40 -08:00 committed by GitHub
parent 5ec95a5a3b
commit 2c7fc2a6f2
2 changed files with 32 additions and 6 deletions

View file

@ -14,14 +14,14 @@ func (svc service) GetHost(ctx context.Context, id uint) (*kolide.Host, error) {
}
func (svc service) HostStatus(ctx context.Context, host kolide.Host) string {
if host.UpdatedAt.Add(OfflineDuration).Before(svc.clock.Now()) {
if host.UpdatedAt.Add(MIADuration).Before(svc.clock.Now()) {
return StatusMIA
}
switch {
case host.UpdatedAt.Add(MIADuration).Before(svc.clock.Now()):
return StatusMIA
case host.UpdatedAt.Add(OfflineDuration).Before(svc.clock.Now()):
return StatusOffline
default:
return StatusOnline
}
return StatusOnline
}
func (svc service) DeleteHost(ctx context.Context, id uint) error {

View file

@ -2,11 +2,14 @@ package service
import (
"testing"
"time"
"github.com/WatchBeam/clock"
"github.com/kolide/kolide-ose/server/config"
"github.com/kolide/kolide-ose/server/datastore/inmem"
"github.com/kolide/kolide-ose/server/kolide"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/net/context"
)
@ -77,3 +80,26 @@ func TestDeleteHost(t *testing.T) {
assert.Len(t, hosts, 0)
}
func TestHostStatus(t *testing.T) {
mockClock := clock.NewMockClock()
svc, err := newTestServiceWithClock(nil, nil, mockClock)
require.Nil(t, err)
assert.Nil(t, err)
ctx := context.Background()
host := kolide.Host{}
host.UpdatedAt = mockClock.Now()
assert.Equal(t, StatusOnline, svc.HostStatus(ctx, host))
host.UpdatedAt = mockClock.Now().Add(-1 * time.Minute)
assert.Equal(t, StatusOnline, svc.HostStatus(ctx, host))
host.UpdatedAt = mockClock.Now().Add(-1 * time.Hour)
assert.Equal(t, StatusOffline, svc.HostStatus(ctx, host))
host.UpdatedAt = mockClock.Now().Add(-24 * 35 * time.Hour) // 35 days
assert.Equal(t, StatusMIA, svc.HostStatus(ctx, host))
}