Harden screen query failure handling
This commit is contained in:
parent
2d2f965bbe
commit
4b8a534920
2 changed files with 24 additions and 3 deletions
|
|
@ -90,10 +90,13 @@ func failedQuery(method, query string) error {
|
|||
func (s *Service) GetScreens() []*Screen {
|
||||
r := s.Core().QUERY(screen.QueryAll{})
|
||||
if !r.OK {
|
||||
return nil
|
||||
return []*Screen{}
|
||||
}
|
||||
screens, ok := r.Value.([]screen.Screen)
|
||||
if !ok {
|
||||
return []*Screen{}
|
||||
}
|
||||
if len(screens) == 0 {
|
||||
return nil
|
||||
}
|
||||
result := make([]*Screen, 0, len(screens))
|
||||
|
|
|
|||
|
|
@ -153,6 +153,20 @@ func TestDisplayAPI_GetScreens_Good(t *testing.T) {
|
|||
assert.Equal(t, 1920, screens[0].Width)
|
||||
}
|
||||
|
||||
func TestDisplayAPI_GetScreens_Empty(t *testing.T) {
|
||||
svc, c := newTestDisplayAPIService(t)
|
||||
c.RegisterQuery(func(_ *core.Core, q core.Query) core.Result {
|
||||
switch q.(type) {
|
||||
case screen.QueryAll:
|
||||
return core.Result{Value: []screen.Screen{}, OK: true}
|
||||
default:
|
||||
return core.Result{}
|
||||
}
|
||||
})
|
||||
|
||||
assert.Nil(t, svc.GetScreens())
|
||||
}
|
||||
|
||||
func TestDisplayAPI_GetScreens_Bad(t *testing.T) {
|
||||
svc, c := newTestDisplayAPIService(t)
|
||||
c.RegisterQuery(func(_ *core.Core, q core.Query) core.Result {
|
||||
|
|
@ -164,7 +178,9 @@ func TestDisplayAPI_GetScreens_Bad(t *testing.T) {
|
|||
}
|
||||
})
|
||||
|
||||
assert.Nil(t, svc.GetScreens())
|
||||
screens := svc.GetScreens()
|
||||
require.NotNil(t, screens)
|
||||
assert.Empty(t, screens)
|
||||
}
|
||||
|
||||
func TestDisplayAPI_GetScreens_Ugly(t *testing.T) {
|
||||
|
|
@ -178,7 +194,9 @@ func TestDisplayAPI_GetScreens_Ugly(t *testing.T) {
|
|||
}
|
||||
})
|
||||
|
||||
assert.Nil(t, svc.GetScreens())
|
||||
screens := svc.GetScreens()
|
||||
require.NotNil(t, screens)
|
||||
assert.Empty(t, screens)
|
||||
}
|
||||
|
||||
func TestDisplayAPI_GetScreen_BadType(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue