File size: 2,099 Bytes
2986042
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package app

import (
	"net/http"
	"testing"

	"ccLoad/internal/model"

	"github.com/gin-gonic/gin"
)

func TestHandleGetDebugLog_NotFoundIncludesRelevantSettings(t *testing.T) {
	srv := newInMemoryServer(t)

	if err := srv.store.UpdateSetting(t.Context(), "debug_log_enabled", "false"); err != nil {
		t.Fatalf("update debug_log_enabled: %v", err)
	}
	if err := srv.store.UpdateSetting(t.Context(), "debug_log_retention_minutes", "15"); err != nil {
		t.Fatalf("update debug_log_retention_minutes: %v", err)
	}

	c, w := newTestContext(t, newRequest(http.MethodGet, "/admin/debug-logs/123", nil))
	c.Params = gin.Params{{Key: "log_id", Value: "123"}}

	srv.HandleGetDebugLog(c)

	if w.Code != http.StatusNotFound {
		t.Fatalf("status=%d, want %d", w.Code, http.StatusNotFound)
	}

	type unavailableData struct {
		Reason                   string               `json:"reason"`
		DebugLogEnabled          *model.SystemSetting `json:"debug_log_enabled"`
		DebugLogRetentionMinutes *model.SystemSetting `json:"debug_log_retention_minutes"`
	}

	resp := mustParseAPIResponse[unavailableData](t, w.Body.Bytes())
	if resp.Success {
		t.Fatalf("success=%v, want false", resp.Success)
	}
	if resp.Error != "debug log unavailable" {
		t.Fatalf("error=%q, want %q", resp.Error, "debug log unavailable")
	}
	if resp.Data.Reason != "debug_log_not_found" {
		t.Fatalf("reason=%q, want %q", resp.Data.Reason, "debug_log_not_found")
	}
	if resp.Data.DebugLogEnabled == nil {
		t.Fatal("debug_log_enabled should be returned")
	}
	if resp.Data.DebugLogEnabled.Key != "debug_log_enabled" || resp.Data.DebugLogEnabled.Value != "false" {
		t.Fatalf("debug_log_enabled=%+v, want key/value debug_log_enabled/false", resp.Data.DebugLogEnabled)
	}
	if resp.Data.DebugLogRetentionMinutes == nil {
		t.Fatal("debug_log_retention_minutes should be returned")
	}
	if resp.Data.DebugLogRetentionMinutes.Key != "debug_log_retention_minutes" || resp.Data.DebugLogRetentionMinutes.Value != "15" {
		t.Fatalf("debug_log_retention_minutes=%+v, want key/value debug_log_retention_minutes/15", resp.Data.DebugLogRetentionMinutes)
	}
}