feat(window): expose visibility in window lists
Some checks failed
Security Scan / security (push) Failing after 29s
Test / test (push) Successful in 1m18s

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Virgil 2026-04-02 14:36:08 +00:00
parent 77e03060ac
commit 45fa6942f7
3 changed files with 30 additions and 1 deletions

View file

@ -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) {

View file

@ -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(),
})

View file

@ -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) {