diff --git a/pkg/display/display_test.go b/pkg/display/display_test.go index 3c2aa1d..47a07c4 100644 --- a/pkg/display/display_test.go +++ b/pkg/display/display_test.go @@ -465,9 +465,20 @@ func TestListWindowInfos_Good(t *testing.T) { _ = svc.OpenWindow(window.WithName("win-1")) _ = svc.OpenWindow(window.WithName("win-2")) + _ = svc.MinimizeWindow("win-2") infos := svc.ListWindowInfos() assert.Len(t, infos, 2) + + byName := make(map[string]window.WindowInfo, len(infos)) + for _, info := range infos { + byName[info.Name] = info + } + + assert.True(t, byName["win-1"].Visible) + assert.False(t, byName["win-1"].Minimized) + assert.False(t, byName["win-2"].Visible) + assert.True(t, byName["win-2"].Minimized) } func TestSetWindowPosition_Good(t *testing.T) { diff --git a/pkg/window/service.go b/pkg/window/service.go index b98ab52..f52c710 100644 --- a/pkg/window/service.go +++ b/pkg/window/service.go @@ -102,7 +102,14 @@ func (s *Service) queryWindowList() []WindowInfo { x, y := pw.Position() w, h := pw.Size() result = append(result, WindowInfo{ - Name: name, Title: pw.Title(), X: x, Y: y, Width: w, Height: h, + Name: name, + Title: pw.Title(), + X: x, + Y: y, + Width: w, + Height: h, + Visible: pw.IsVisible(), + Minimized: pw.IsMinimised(), Maximized: pw.IsMaximised(), Focused: pw.IsFocused(), }) diff --git a/pkg/window/service_test.go b/pkg/window/service_test.go index 883e2a0..08d3f4d 100644 --- a/pkg/window/service_test.go +++ b/pkg/window/service_test.go @@ -78,12 +78,23 @@ func TestQueryWindowList_Good(t *testing.T) { _, c := newTestWindowService(t) _, _, _ = c.PERFORM(TaskOpenWindow{Opts: []WindowOption{WithName("a")}}) _, _, _ = c.PERFORM(TaskOpenWindow{Opts: []WindowOption{WithName("b")}}) + _, _, _ = c.PERFORM(TaskMinimise{Name: "b"}) result, handled, err := c.QUERY(QueryWindowList{}) require.NoError(t, err) assert.True(t, handled) list := result.([]WindowInfo) assert.Len(t, list, 2) + + byName := make(map[string]WindowInfo, len(list)) + for _, info := range list { + byName[info.Name] = info + } + + assert.True(t, byName["a"].Visible) + assert.False(t, byName["a"].Minimized) + assert.False(t, byName["b"].Visible) + assert.True(t, byName["b"].Minimized) } func TestQueryWindowByName_Good(t *testing.T) {