Clarify lifecycle loading and target selection

This commit is contained in:
Joe Julian
2026-04-01 17:00:24 -07:00
parent 7de55d1041
commit a1cbec85da
3 changed files with 305 additions and 18 deletions
+83
View File
@@ -2905,6 +2905,89 @@ func TestSelectingRecentRemoteConnectionKeepsPasswordMasked(t *testing.T) {
}
}
func TestSelectingRecentVaultSwitchesToLocalMode(t *testing.T) {
t.Parallel()
u := newUIWithSession("desktop", &session.Manager{})
u.lifecycleMode = "remote"
u.recentVaults = []string{"/tmp/example.kdbx"}
u.recentVaultClicks = make([]widget.Clickable, 1)
u.recentVaultClicks[0].Click()
gtx := layout.Context{}
for u.recentVaultClicks[0].Clicked(gtx) {
if 0 < len(u.recentVaults) {
u.lifecycleMode = "local"
u.vaultPath.SetText(u.recentVaults[0])
}
}
if got := u.lifecycleMode; got != "local" {
t.Fatalf("lifecycleMode after recent vault click = %q, want local", got)
}
if got := u.vaultPath.Text(); got != "/tmp/example.kdbx" {
t.Fatalf("vaultPath after recent vault click = %q, want /tmp/example.kdbx", got)
}
}
func TestSelectingRecentRemoteSwitchesToRemoteMode(t *testing.T) {
t.Parallel()
u := newUIWithSession("desktop", &session.Manager{})
u.lifecycleMode = "local"
u.recentRemotes = []recentRemoteRecord{{
BaseURL: "https://dav.example.com",
Path: "vaults/home.kdbx",
}}
u.recentRemoteClicks = make([]widget.Clickable, 1)
u.recentRemoteClicks[0].Click()
gtx := layout.Context{}
for u.recentRemoteClicks[0].Clicked(gtx) {
if 0 < len(u.recentRemotes) {
u.lifecycleMode = "remote"
u.applyRecentRemoteRecord(u.recentRemotes[0])
}
}
if got := u.lifecycleMode; got != "remote" {
t.Fatalf("lifecycleMode after recent remote click = %q, want remote", got)
}
if got := u.remoteBaseURL.Text(); got != "https://dav.example.com" {
t.Fatalf("remoteBaseURL after recent remote click = %q, want https://dav.example.com", got)
}
}
func TestUILoadingDetailMessageUsesSelectedVault(t *testing.T) {
t.Parallel()
u := newUIWithSession("desktop", &session.Manager{})
u.vaultPath.SetText("/home/julian/vaults/main.kdbx")
u.loadingMessage = "Open vault..."
got := u.loadingDetailMessage()
want := "Target: /home/julian/vaults/main.kdbx"
if got != want {
t.Fatalf("loadingDetailMessage() = %q, want %q", got, want)
}
}
func TestUILoadingDetailMessageUsesSelectedRemote(t *testing.T) {
t.Parallel()
u := newUIWithSession("desktop", &session.Manager{})
u.lifecycleMode = "remote"
u.remoteBaseURL.SetText("https://dav.example.com")
u.remotePath.SetText("vaults/home.kdbx")
u.loadingMessage = "Open remote vault..."
got := u.loadingDetailMessage()
want := "Target: dav.example.com · vaults/home.kdbx (vaults/home.kdbx)"
if got != want {
t.Fatalf("loadingDetailMessage() = %q, want %q", got, want)
}
}
func TestUIOpenRemoteVaultRestoresLastOpenedGroupForThatConnection(t *testing.T) {
t.Parallel()