From 6374201f6c20516c798fa572266cd097b195d7ba Mon Sep 17 00:00:00 2001 From: Steve Cliff Date: Sat, 22 Aug 2026 12:04:26 +0100 Subject: [PATCH] Fix fleet update filters across refreshes --- internal/server/http/fleet_update_test.go | 39 +++++++++++++++++++ web/templates/pages/fleet_update.html | 30 ++++++++++++++ .../partials/fleet_update_inner.html | 13 +------ 3 files changed, 70 insertions(+), 12 deletions(-) diff --git a/internal/server/http/fleet_update_test.go b/internal/server/http/fleet_update_test.go index fdba686..602329c 100644 --- a/internal/server/http/fleet_update_test.go +++ b/internal/server/http/fleet_update_test.go @@ -6,7 +6,9 @@ import ( "bytes" "context" "encoding/json" + "io" stdhttp "net/http" + "strings" "sync" "testing" "time" @@ -19,6 +21,43 @@ import ( "gitea.dcglab.co.uk/steve/restic-manager/internal/version" ) +func TestFleetUpdatePagePreservesFiltersWithoutTypedConfirmation(t *testing.T) { + t.Parallel() + _, baseURL, st := newTestServerWithUI(t) + cookie := loginAsAdmin(t, st) + _ = makeHost(t, st, "fleet-filter-host") + + req, _ := stdhttp.NewRequest("GET", baseURL+"/settings/fleet-update", nil) + req.AddCookie(cookie) + res, err := stdhttp.DefaultClient.Do(req) + if err != nil { + t.Fatalf("get fleet update page: %v", err) + } + defer res.Body.Close() + if res.StatusCode != stdhttp.StatusOK { + t.Fatalf("status: got %d, want 200", res.StatusCode) + } + raw, _ := io.ReadAll(res.Body) + body := string(raw) + + for _, want := range []string{ + `id="fleet-filter-name"`, + `id="fleet-filter-version"`, + `id="fleet-filter-state"`, + "htmx:beforeSwap", + "fleetCaptureUIState()", + "fleetRestoreUIState()", + "r.style.display=", + } { + if !strings.Contains(body, want) { + t.Errorf("page missing %q", want) + } + } + if strings.Contains(body, "Type selected count to confirm") || strings.Contains(body, `id="fleet-update-confirm"`) { + t.Error("page still renders the typed-count confirmation") + } +} + // fakeFleetWorker stands in for *fleetupdate.Worker in HTTP tests. // It records what was passed to Start/Cancel and lets tests inject // canned errors. Satisfies the FleetWorker interface in diff --git a/web/templates/pages/fleet_update.html b/web/templates/pages/fleet_update.html index fa3d815..98153f6 100644 --- a/web/templates/pages/fleet_update.html +++ b/web/templates/pages/fleet_update.html @@ -28,5 +28,35 @@ {{template "fleet_update_inner" .}} + + {{end}} diff --git a/web/templates/partials/fleet_update_inner.html b/web/templates/partials/fleet_update_inner.html index 464be9b..a5fc396 100644 --- a/web/templates/partials/fleet_update_inner.html +++ b/web/templates/partials/fleet_update_inner.html @@ -172,20 +172,9 @@
- - - +
- {{end}} {{end}}