Refine recycle bin and sync UX

This commit is contained in:
Joe Julian
2026-04-01 17:09:51 -07:00
parent b4bcceab31
commit 18d57a2f8e
2 changed files with 229 additions and 43 deletions
+11 -8
View File
@@ -2385,7 +2385,7 @@ func TestUIGeneratedPasswordFlowsIntoCreateEntryForm(t *testing.T) {
}
}
func TestUIBannerSurfacePrefersLoadingThenErrorThenStatus(t *testing.T) {
func TestUIBannerSurfacePrefersLoadingThenError(t *testing.T) {
t.Parallel()
u := newUIWithModel("desktop", vault.Model{})
@@ -2402,12 +2402,15 @@ func TestUIBannerSurfacePrefersLoadingThenErrorThenStatus(t *testing.T) {
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)
if got := u.bannerSurface(); got.Kind != bannerNone {
t.Fatalf("bannerSurface() with status = %#v, want no status banner", got)
}
if got := u.statusToastSurface(); got.Kind != bannerStatus || got.Message != "save complete" {
t.Fatalf("statusToastSurface() with status = %#v, want status toast", got)
}
}
func TestUIStatusBannerExpiresAfterTimeout(t *testing.T) {
func TestUIStatusToastExpiresAfterTimeout(t *testing.T) {
t.Parallel()
now := time.Date(2026, time.March, 29, 12, 0, 0, 0, time.UTC)
@@ -2419,13 +2422,13 @@ func TestUIStatusBannerExpiresAfterTimeout(t *testing.T) {
}
u.statusExpiresAt = now.Add(statusBannerDuration)
if got := u.bannerSurface(); got.Kind != bannerStatus || got.Message != "synchronize vault complete" {
t.Fatalf("bannerSurface() before expiry = %#v, want visible status banner", got)
if got := u.statusToastSurface(); got.Kind != bannerStatus || got.Message != "synchronize vault complete" {
t.Fatalf("statusToastSurface() before expiry = %#v, want visible status toast", got)
}
now = now.Add(statusBannerDuration + time.Millisecond)
if got := u.bannerSurface(); got.Kind != bannerNone {
t.Fatalf("bannerSurface() after expiry = %#v, want no banner", got)
if got := u.statusToastSurface(); got.Kind != bannerNone {
t.Fatalf("statusToastSurface() after expiry = %#v, want no toast", got)
}
if got := u.state.StatusMessage; got != "" {
t.Fatalf("state.StatusMessage after expiry = %q, want empty", got)