From d9fcbae4e2171adade757831528decb1fba76d2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A2=A8=E9=9B=AA?= Date: Mon, 17 Aug 2026 16:25:26 +0800 Subject: [PATCH] fix(ci): BaseModel test literals for go test/vet --- .../internal/database/models/listener_test.go | 2 +- backend/internal/listener/p2_test.go | 23 +++++++++++++++---- .../config/generator_listener_auth_test.go | 20 +++++++++++----- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/backend/internal/database/models/listener_test.go b/backend/internal/database/models/listener_test.go index 6940584..ff09309 100644 --- a/backend/internal/database/models/listener_test.go +++ b/backend/internal/database/models/listener_test.go @@ -6,7 +6,7 @@ import ( ) func TestListenerJSONUsesLowercaseID(t *testing.T) { - listener := Listener{ID: 42, Name: "test-listener"} + listener := Listener{BaseModel: BaseModel{ID: 42}, Name: "test-listener"} data, err := json.Marshal(listener) if err != nil { diff --git a/backend/internal/listener/p2_test.go b/backend/internal/listener/p2_test.go index 1ec7736..0215072 100644 --- a/backend/internal/listener/p2_test.go +++ b/backend/internal/listener/p2_test.go @@ -7,15 +7,28 @@ import ( ) func TestListenerTemplateModel(t *testing.T) { - t := &models.ListenerTemplate{Name: "vless-default", Protocol: "vless", Config: `{"flow":"xtls-rprx-vision"}`} - if t.Name == "" || t.Protocol == "" { t.Fatal("template fields unexpectedly empty") } + tpl := &models.ListenerTemplate{Name: "vless-default", Protocol: "vless", Config: `{"flow":"xtls-rprx-vision"}`} + if tpl.Name == "" || tpl.Protocol == "" { + t.Fatal("template fields unexpectedly empty") + } } func TestListenerVersionSnapshotIsJSON(t *testing.T) { - l := &models.Listener{ID: 1, Name: "demo", Protocol: "vless", Port: "443", BindAddress: "0.0.0.0", Config: `{}`} - if err := ValidateModel(l); err != nil { t.Fatalf("valid listener rejected: %v", err) } + l := &models.Listener{ + BaseModel: models.BaseModel{ID: 1}, + Name: "demo", + Protocol: "vless", + Port: "443", + BindAddress: "0.0.0.0", + Config: `{}`, + } + if err := ValidateModel(l); err != nil { + t.Fatalf("valid listener rejected: %v", err) + } } func TestBatchIDsRequireNonEmpty(t *testing.T) { - if len([]uint{}) != 0 { t.Fatal("unexpected non-empty ids") } + if len([]uint{}) != 0 { + t.Fatal("unexpected non-empty ids") + } } diff --git a/backend/internal/mihomo/config/generator_listener_auth_test.go b/backend/internal/mihomo/config/generator_listener_auth_test.go index 10a7221..974e6ba 100644 --- a/backend/internal/mihomo/config/generator_listener_auth_test.go +++ b/backend/internal/mihomo/config/generator_listener_auth_test.go @@ -7,15 +7,23 @@ import ( ) func TestGenerateListenersUsesModelTLS(t *testing.T) { - listeners := []models.Listener{{ID: 1, Name: "vless", Protocol: "vless", Port: "443", TLS: true, Enabled: true}} + listeners := []models.Listener{{BaseModel: models.BaseModel{ID: 1}, Name: "vless", Protocol: "vless", Port: "443", TLS: true, Enabled: true}} got, err := generateListeners(listeners, nil) - if err != nil { t.Fatal(err) } - if len(got) != 1 || got[0]["tls"] != true { t.Fatalf("expected tls=true, got %#v", got) } + if err != nil { + t.Fatal(err) + } + if len(got) != 1 || got[0]["tls"] != true { + t.Fatalf("expected tls=true, got %#v", got) + } } func TestGenerateListenersDoesNotFallbackWhenCredentialStateIsExplicitlyEmpty(t *testing.T) { - listeners := []models.Listener{{ID: 1, Name: "vless", Protocol: "vless", Port: "443", Enabled: true, Config: `{"users":[{"uuid":"legacy"}]}`}} + listeners := []models.Listener{{BaseModel: models.BaseModel{ID: 1}, Name: "vless", Protocol: "vless", Port: "443", Enabled: true, Config: `{"users":[{"uuid":"legacy"}]}`}} got, err := generateListeners(listeners, map[uint][]Credential{1: {}}) - if err != nil { t.Fatal(err) } - if _, ok := got[0]["users"]; ok { t.Fatalf("legacy users leaked into explicitly empty credential state: %#v", got[0]["users"]) } + if err != nil { + t.Fatal(err) + } + if _, ok := got[0]["users"]; ok { + t.Fatalf("legacy users leaked into explicitly empty credential state: %#v", got[0]["users"]) + } }