From ef0fb7f5d91af0816b54b392f9646dc33cf2e664 Mon Sep 17 00:00:00 2001 From: Joe Julian Date: Sun, 29 Mar 2026 13:41:07 -0700 Subject: [PATCH] Align keyboard and tests with controller state --- main_test.go | 74 ++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/main_test.go b/main_test.go index 7f47c5f..76e036d 100644 --- a/main_test.go +++ b/main_test.go @@ -377,8 +377,8 @@ func TestUIChangeMasterKeyModeForExistingVault(t *testing.T) { u.keyFilePath.SetText("") u.setMasterKeyMode(vault.MasterKeyModePasswordOnly) u.runAction("unlock vault", u.unlockAction) - if u.errorMessage == "" { - t.Fatal("errorMessage = empty, want visible invalid master key error") + if u.state.ErrorMessage == "" { + t.Fatal("state.ErrorMessage = empty, want visible invalid master key error") } u.setMasterKeyMode(vault.MasterKeyModePasswordAndKeyFile) @@ -443,11 +443,11 @@ func TestUIMasterKeyValidationErrorsAreVisible(t *testing.T) { u.runAction("create vault", u.createVaultAction) - if got := u.errorMessage; got != tt.wantError { - t.Fatalf("errorMessage = %q, want %q", got, tt.wantError) + if got := u.state.ErrorMessage; got != tt.wantError { + t.Fatalf("state.ErrorMessage = %q, want %q", got, tt.wantError) } - if got := u.statusMessage; got != "" { - t.Fatalf("statusMessage = %q, want empty on validation error", got) + if got := u.state.StatusMessage; got != "" { + t.Fatalf("state.StatusMessage = %q, want empty on validation error", got) } }) } @@ -478,8 +478,8 @@ func TestUIUnreadableAndInvalidMasterKeyErrorsAreVisible(t *testing.T) { unreadable.setMasterKeyMode(vault.MasterKeyModeKeyFileOnly) unreadable.keyFilePath.SetText(filepath.Join(t.TempDir(), "missing.key")) unreadable.runAction("open vault", unreadable.openVaultAction) - if got := unreadable.errorMessage; got == "" || got[:14] != "read key file:" { - t.Fatalf("errorMessage = %q, want read key file error", got) + if got := unreadable.state.ErrorMessage; got == "" || got[:14] != "read key file:" { + t.Fatalf("state.ErrorMessage = %q, want read key file error", got) } wrong := newUIWithSession("desktop", &session.Manager{}) @@ -490,8 +490,8 @@ func TestUIUnreadableAndInvalidMasterKeyErrorsAreVisible(t *testing.T) { } wrong.vaultPath.SetText(path) wrong.runAction("open vault", wrong.openVaultAction) - if got := wrong.errorMessage; got == "" || !bytes.Contains([]byte(got), []byte(vault.ErrInvalidMasterKey.Error())) { - t.Fatalf("errorMessage = %q, want invalid master key error", got) + if got := wrong.state.ErrorMessage; got == "" || !bytes.Contains([]byte(got), []byte(vault.ErrInvalidMasterKey.Error())) { + t.Fatalf("state.ErrorMessage = %q, want invalid master key error", got) } } @@ -575,11 +575,11 @@ func TestUIOpenRemoteReportsTransportFailure(t *testing.T) { u.runAction("open remote vault", u.openRemoteAction) - if got := u.errorMessage; !strings.Contains(got, "open remote vault failed:") { - t.Fatalf("errorMessage = %q, want open remote vault failure", got) + if got := u.state.ErrorMessage; !strings.Contains(got, "open remote vault failed:") { + t.Fatalf("state.ErrorMessage = %q, want open remote vault failure", got) } - if got := u.statusMessage; got != "" { - t.Fatalf("statusMessage = %q, want empty on remote open failure", got) + if got := u.state.StatusMessage; got != "" { + t.Fatalf("state.StatusMessage = %q, want empty on remote open failure", got) } } @@ -640,11 +640,11 @@ func TestUIRemoteSaveConflictShowsVisibleErrorAndKeepsDirtyState(t *testing.T) { u.runAction("save vault", u.saveAction) - if got := u.errorMessage; got != "Save conflict: the remote vault changed. Reopen it and retry the save." { - t.Fatalf("errorMessage = %q, want normalized save conflict guidance", got) + if got := u.state.ErrorMessage; got != "Save conflict: the remote vault changed. Reopen it and retry the save." { + t.Fatalf("state.ErrorMessage = %q, want normalized save conflict guidance", got) } - if got := u.statusMessage; got != "" { - t.Fatalf("statusMessage = %q, want empty after remote save conflict", got) + if got := u.state.StatusMessage; got != "" { + t.Fatalf("state.StatusMessage = %q, want empty after remote save conflict", got) } if !u.state.Dirty { t.Fatal("Dirty = false, want true after remote save conflict") @@ -1634,13 +1634,13 @@ func TestUIBannerSurfacePrefersLoadingThenErrorThenStatus(t *testing.T) { } u.loadingMessage = "" - u.errorMessage = "save failed" + u.state.ErrorMessage = "save failed" if got := u.bannerSurface(); got.Kind != bannerError || got.Message != "save failed" { t.Fatalf("bannerSurface() with error = %#v, want error banner", got) } - u.errorMessage = "" - u.statusMessage = "save complete" + u.state.ErrorMessage = "" + u.state.StatusMessage = "save complete" if got := u.bannerSurface(); got.Kind != bannerStatus || got.Message != "save complete" { t.Fatalf("bannerSurface() with status = %#v, want status banner", got) } @@ -1654,11 +1654,11 @@ func TestUIRunActionNormalizesRemoteSaveConflictsForDisplay(t *testing.T) { return errors.New("save remote vaults/main.kdbx: " + webdav.ErrConflict.Error()) }) - if got := u.errorMessage; got != "Save conflict: the remote vault changed. Reopen it and retry the save." { - t.Fatalf("errorMessage = %q, want normalized save conflict guidance", got) + if got := u.state.ErrorMessage; got != "Save conflict: the remote vault changed. Reopen it and retry the save." { + t.Fatalf("state.ErrorMessage = %q, want normalized save conflict guidance", got) } - if got := u.statusMessage; got != "" { - t.Fatalf("statusMessage = %q, want empty on conflict", got) + if got := u.state.StatusMessage; got != "" { + t.Fatalf("state.StatusMessage = %q, want empty on conflict", got) } } @@ -1715,14 +1715,14 @@ func TestUICopyActionsWriteExpectedClipboardContentsAndSanitizedFeedback(t *test if writer.content != tt.want { t.Fatalf("clipboard content = %q, want %q", writer.content, tt.want) } - if u.statusMessage != tt.label+" complete" { - t.Fatalf("statusMessage = %q, want %q", u.statusMessage, tt.label+" complete") + if u.state.StatusMessage != tt.label+" complete" { + t.Fatalf("state.StatusMessage = %q, want %q", u.state.StatusMessage, tt.label+" complete") } - if u.errorMessage != "" { - t.Fatalf("errorMessage = %q, want empty", u.errorMessage) + if u.state.ErrorMessage != "" { + t.Fatalf("state.ErrorMessage = %q, want empty", u.state.ErrorMessage) } - if strings.Contains(u.statusMessage, tt.want) { - t.Fatalf("statusMessage = %q, must not contain copied secret or field value %q", u.statusMessage, tt.want) + if strings.Contains(u.state.StatusMessage, tt.want) { + t.Fatalf("state.StatusMessage = %q, must not contain copied secret or field value %q", u.state.StatusMessage, tt.want) } }) } @@ -1751,14 +1751,14 @@ func TestUICopyActionSanitizesClipboardBackendErrors(t *testing.T) { u.runAction("copy password", func() error { return u.copySelectedFieldAction(clipboard.TargetPassword) }) - if u.errorMessage != clipboard.ErrWriteFailed.Error() { - t.Fatalf("errorMessage = %q, want %q", u.errorMessage, clipboard.ErrWriteFailed.Error()) + if u.state.ErrorMessage != clipboard.ErrWriteFailed.Error() { + t.Fatalf("state.ErrorMessage = %q, want %q", u.state.ErrorMessage, clipboard.ErrWriteFailed.Error()) } - if strings.Contains(u.errorMessage, "token-1") { - t.Fatalf("errorMessage = %q, must not contain copied password", u.errorMessage) + if strings.Contains(u.state.ErrorMessage, "token-1") { + t.Fatalf("state.ErrorMessage = %q, must not contain copied password", u.state.ErrorMessage) } - if u.statusMessage != "" { - t.Fatalf("statusMessage = %q, want empty on copy failure", u.statusMessage) + if u.state.StatusMessage != "" { + t.Fatalf("state.StatusMessage = %q, want empty on copy failure", u.state.StatusMessage) } }