mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-11 01:03:51 +08:00
- 在主程序 Dock 菜单动态列出并聚焦已就绪的独立窗口 - 在 Wails 启动前固定子进程为 Accessory,消除临时 Dock 图标闪现 - 按多显示器可见区域修正越界窗口并回写实际坐标 - 将自定义 AI 面板快捷键同步到独立窗口并转交主窗口处理 - 补齐 Go、Objective-C、前端及 Wails 绑定回归测试
44 lines
1.4 KiB
Go
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)
|
|
}
|
|
}
|