返回 DeepSeek-Reasonix
tabs_layout_queue_test.go
根目录 / desktop / tabs_layout_queue_test.go
1 package main
2
3 import "testing"
4
5 func TestTabLayoutQueueFlushKeepsLatestVersion(t *testing.T) {
6 isolateDesktopUserDirs(t)
7 app := NewApp()
8 dir := t.TempDir()
9 app.tabsSaveMu.Lock()
10 for version := uint64(1); version <= 100; version++ {
11 app.queueTabLayoutSave(dir, []desktopTabEntry{}, "latest", version)
12 }
13 app.tabsSaveMu.Unlock()
14 app.flushTabLayoutWrites()
15 if app.tabsLastWrittenVersion != 100 {
16 t.Fatalf("saved version=%d", app.tabsLastWrittenVersion)
17 }
18 app.queueTabLayoutSave(dir, []desktopTabEntry{}, "obsolete", 99)
19 app.saveTabsWrite(dir, []desktopTabEntry{}, "newer", 101)
20 app.flushTabLayoutWrites()
21 if app.tabsLastWrittenVersion != 101 {
22 t.Fatal("queued layout overwrote a newer synchronous save")
23 }
24 app.desktopSessions.layoutWrites.mu.Lock()
25 defer app.desktopSessions.layoutWrites.mu.Unlock()
26 if app.desktopSessions.layoutWrites.done != nil {
27 t.Fatal("flush left a layout worker running")
28 }
29 }
30
30 lines GO