carlos / platform Public

fix/console-capturelog

Squashed from fix/console-capturelog into main.
claude agent, operated by paul@keymail.dev 8d8e4baef3421c20e2411824fb2884099c081926 parent be3338d
6 files changed, +15 −15
  • internal/console/claimlogging_test.go +1 −1
  • internal/console/regioncandidates_test.go +4 −4
  • internal/console/regionclaim_test.go +3 −3
  • internal/console/regiondefault_test.go +1 −1
  • internal/console/regiondrift_test.go +5 −5
  • internal/console/regionguess_test.go +1 −1

CI passed — run details

diff --git a/internal/console/claimlogging_test.go b/internal/console/claimlogging_test.go
index 82703b6f0..9812e7658 100644
--- a/internal/console/claimlogging_test.go
+++ b/internal/console/claimlogging_test.go
@@ -52,7 +52,7 @@ func TestClaimCheckFailureIsLogged(t *testing.T) {
acct := opsAccount(t, fx)
tc.breakStore(t, fx)
buf := captureLog(t)
- outcome, placed, held := fx.srv.claimApp(context.Background(), acct, "logged-site", "paul@keymail.dev", "", true)
+ outcome, placed, held := fx.srv.claimApp(context.Background(), acct, "logged-site", "paul@keymail.dev", "", true, regionReq{})
if outcome != claimCheckFailed || placed != "" || held != nil {
t.Fatalf("claimApp = %v, %q, %v; want claimCheckFailed", outcome, placed, held)
}
diff --git a/internal/console/regioncandidates_test.go b/internal/console/regioncandidates_test.go
index c7e3aebef..1687f38ce 100644
--- a/internal/console/regioncandidates_test.go
+++ b/internal/console/regioncandidates_test.go
@@ -241,7 +241,7 @@ func TestIncompleteEvidenceIsLoggedOnce(t *testing.T) {
setBoxSnapshot(t, s, key, time.Now())
}
var buf bytes.Buffer
- restore := captureLog(&buf)
+ restore := captureLogTo(&buf)
defer restore()
livenessSaid.Delete("incomplete")
for i := 0; i < 2; i++ {
@@ -312,7 +312,7 @@ func (failingList) List(context.Context, string) ([]string, error) {
return nil, errors.New("bucket unreachable")
}
-func captureLog(w io.Writer) (restore func()) {
+func captureLogTo(w io.Writer) (restore func()) {
prev, flags := log.Writer(), log.Flags()
log.SetOutput(w)
return func() { log.SetOutput(prev); log.SetFlags(flags) }
@@ -418,7 +418,7 @@ func TestLiveEdgesSnapshotLoadFailureIsNotFreshAndLoggedOnce(t *testing.T) {
}
setBoxSnapshot(t, s, "uk-box", time.Now())
var buf bytes.Buffer
- restore := captureLog(&buf)
+ restore := captureLogTo(&buf)
defer restore()
livenessSaid.Delete("load")
for i := 0; i < 2; i++ {
@@ -726,7 +726,7 @@ func TestRegionCandidatesFoldTheHomesName(t *testing.T) {
// the line carries no caller coordinates (there are none to carry).
func TestRegionCandidatesLogAMissingPointOnce(t *testing.T) {
var buf bytes.Buffer
- restore := captureLog(&buf)
+ restore := captureLogTo(&buf)
defer restore()
noPointSaid.Delete("odd") // the throttle is process-wide; -count=N reruns this test
odd := edgeJSON("odd-box", "3.3.3.3", "xx-nowhere-1", "odd", eligibleBox)
diff --git a/internal/console/regionclaim_test.go b/internal/console/regionclaim_test.go
index d8262ecee..c3a98b767 100644
--- a/internal/console/regionclaim_test.go
+++ b/internal/console/regionclaim_test.go
@@ -167,7 +167,7 @@ func TestClaimLogsOneRegionLineInEverySwitchState(t *testing.T) {
fx, token := regionFixture(t)
fx.srv.cfg.AppRegions, fx.srv.cfg.HomeRegion = c.on, c.home
var logs bytes.Buffer
- restore := captureLog(&logs)
+ restore := captureLogTo(&logs)
status, res := postJSON(t, newAppURL(fx), map[string]string{"name": c.app, "region": "uk"}, token)
restore()
if status != http.StatusOK {
@@ -192,7 +192,7 @@ func TestClaimLostAfterResolutionWritesNothing(t *testing.T) {
}
}
var logs bytes.Buffer
- restore := captureLog(&logs)
+ restore := captureLogTo(&logs)
status, _ := postJSON(t, newAppURL(fx), map[string]string{"name": "racy", "region": "uk"}, token)
restore()
if status != http.StatusConflict {
@@ -213,7 +213,7 @@ func TestClaimHeldApexWritesNothing(t *testing.T) {
fx.srv.cfg.AppsDomain = "oncarlos.test"
fx.addRoute(t, registry.Route{Host: "beta." + fx.sqid + ".oncarlos.test", App: "kass", Account: fx.sqid, Kind: "instance"})
var logs bytes.Buffer
- restore := captureLog(&logs)
+ restore := captureLogTo(&logs)
status, _ := postJSON(t, newAppURL(fx), map[string]string{"name": "beta", "timezone": "Europe/London"}, token)
restore()
if status != http.StatusConflict {
diff --git a/internal/console/regiondefault_test.go b/internal/console/regiondefault_test.go
index 4e51842ae..3b327a150 100644
--- a/internal/console/regiondefault_test.go
+++ b/internal/console/regiondefault_test.go
@@ -262,7 +262,7 @@ func TestRegionGuessAPIHintsNeverLeak(t *testing.T) {
fx.srv.cfg.GeoIP = fakeLocator{"203.0.113.77": geo.Point{Lat: 51.5, Lon: -0.12}}
fx.srv.redirects = map[string]bool{"old.example": true}
var logs strings.Builder
- restore := captureLog(&logs)
+ restore := captureLogTo(&logs)
req, _ := http.NewRequest(http.MethodPost, guessURL(fx), strings.NewReader(c.hints))
req.Host = "old.example"
req.Header.Set("Authorization", "Bearer "+token)
diff --git a/internal/console/regiondrift_test.go b/internal/console/regiondrift_test.go
index 3ca2ce158..83f7f54cd 100644
--- a/internal/console/regiondrift_test.go
+++ b/internal/console/regiondrift_test.go
@@ -31,7 +31,7 @@ func TestPlacementDiscrepancyLog(t *testing.T) {
put(provision.Record{Host: "uk.go.tito.io", Region: "uk"})
put(provision.Record{Host: "drift.go.tito.io"})
var logs strings.Builder
- restore := captureLog(&logs)
+ restore := captureLogTo(&logs)
fx.srv.LogPlacementDiscrepancies(ctx)
restore()
out := logs.String()
@@ -59,7 +59,7 @@ func TestPlacementDiscrepancyLogSkipsRecordsOlderThanTheApp(t *testing.T) {
t.Fatal(err)
}
var logs strings.Builder
- restore := captureLog(&logs)
+ restore := captureLogTo(&logs)
fx.srv.LogPlacementDiscrepancies(ctx)
restore()
if strings.Contains(logs.String(), "old.go.tito.io") {
@@ -74,7 +74,7 @@ func TestPlacementDiscrepancyLogListError(t *testing.T) {
fx.st.CreateAppInRegion(OpsAccountID, "blog", "p@k.dev", "uk", "chosen", time.Now())
fx.srv.cfg.Releases = failingList{fx.rel}
var logs strings.Builder
- restore := captureLog(&logs)
+ restore := captureLogTo(&logs)
fx.srv.LogPlacementDiscrepancies(context.Background())
restore()
want := "console: placement discrepancy check " + release.OpsAccount + "/blog: bucket unreachable"
@@ -98,7 +98,7 @@ func TestPlacementDiscrepancyLogTruncated(t *testing.T) {
}
}
var logs strings.Builder
- restore := captureLog(&logs)
+ restore := captureLogTo(&logs)
fx.srv.logPlacementDiscrepancies(ctx, 1)
restore()
want := "console: placement discrepancy check " + release.OpsAccount + "/blog: only the first 1 records were checked"
@@ -112,7 +112,7 @@ func TestPlacementDiscrepancyLogNoBucket(t *testing.T) {
fx := newConsoleFixture(t)
fx.srv.cfg.Releases = nil
var logs strings.Builder
- restore := captureLog(&logs)
+ restore := captureLogTo(&logs)
fx.srv.LogPlacementDiscrepancies(context.Background())
restore()
if logs.Len() != 0 {
diff --git a/internal/console/regionguess_test.go b/internal/console/regionguess_test.go
index d2e098da2..9408728ea 100644
--- a/internal/console/regionguess_test.go
+++ b/internal/console/regionguess_test.go
@@ -153,7 +153,7 @@ func TestGuessRegionSkipsSplitCapabilityRegions(t *testing.T) {
// misdescribe it. A coded region without a point still logs.
func TestRegionCandidatesHomeWithNoPointLogsNoO7(t *testing.T) {
var buf bytes.Buffer
- restore := captureLog(&buf)
+ restore := captureLogTo(&buf)
defer restore()
noPointSaid.Delete("")
noPointSaid.Delete("odd")