Files
MyGoNavi/internal/nativewindow/dock_menu_test.go
Syngnat 5c3535c85d feat(native-window): 支持 macOS Dock 管理独立窗口
- 在主程序 Dock 菜单动态列出并聚焦已就绪的独立窗口
- 在 Wails 启动前固定子进程为 Accessory,消除临时 Dock 图标闪现
- 按多显示器可见区域修正越界窗口并回写实际坐标
- 将自定义 AI 面板快捷键同步到独立窗口并转交主窗口处理
- 补齐 Go、Objective-C、前端及 Wails 绑定回归测试
2026-07-21 18:52:54 +08:00

44 lines
1.4 KiB
Go

package nativewindow
import (
"reflect"
"testing"
)
func TestBuildDockMenuSnapshotIncludesOnlyCurrentReadyWindows(t *testing.T) {
windows := []WindowInfo{
{ID: "closing", Title: "Closing", PID: 42, OpenedAt: 1, Ready: true, CloseSent: true},
{ID: "not-ready", Title: "Starting", PID: 43, OpenedAt: 2},
{ID: " result-2 ", Title: " Result 2 ", PID: 44, OpenedAt: 40, Ready: true},
{ID: "workbench-1", Title: "Workbench", PID: 45, OpenedAt: 20, Ready: true},
{ID: "", Title: "Missing ID", PID: 46, OpenedAt: 10, Ready: true},
{ID: "ai-chat", Title: " ", PID: 47, OpenedAt: 30, Ready: true},
}
got := buildDockMenuSnapshot(windows)
want := []dockMenuWindow{
{ID: "workbench-1", Title: "Workbench", PID: 45},
{ID: "ai-chat", Title: "GoNavi", PID: 47},
{ID: "result-2", Title: "Result 2", PID: 44},
}
if !reflect.DeepEqual(got, want) {
t.Fatalf("dock menu snapshot = %#v, want %#v", got, want)
}
}
func TestBuildDockMenuSnapshotUsesStableIDOrderForEqualOpenTimes(t *testing.T) {
windows := []WindowInfo{
{ID: "window-b", Title: "B", OpenedAt: 12, Ready: true},
{ID: "window-a", Title: "A", OpenedAt: 12, Ready: true},
}
got := buildDockMenuSnapshot(windows)
want := []dockMenuWindow{
{ID: "window-a", Title: "A"},
{ID: "window-b", Title: "B"},
}
if !reflect.DeepEqual(got, want) {
t.Fatalf("dock menu snapshot = %#v, want %#v", got, want)
}
}