From 0ea36fd18570925c9e30072bf95c4c7d4b99c373 Mon Sep 17 00:00:00 2001 From: wangqing Date: Thu, 11 Dec 2025 17:02:50 +0800 Subject: [PATCH] server_test ok Signed-off-by: wangqing --- server/server.go | 35 ++++++++++++++++++++++++++++++++--- server/server_test.go | 12 ++++++++++++ 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/server/server.go b/server/server.go index f6d4bd8..15c6575 100644 --- a/server/server.go +++ b/server/server.go @@ -117,14 +117,43 @@ func (s *Server) handleRoot(w http.ResponseWriter, r *http.Request) { } } - // Parse the template file - tmpl, err := template.ParseFiles("templates/" + templateName) + // Try to parse the template file with different possible paths + templatePaths := []string{ + "templates/" + templateName, + "./templates/" + templateName, + } + + var tmpl *template.Template + var err error + + // Try each path until one works + for _, path := range templatePaths { + tmpl, err = template.ParseFiles(path) + if err == nil { + break + } + } + + // If all paths fail, try default template with different possible paths if err != nil { // Fallback to default template if specified template not found slogx.Warn("Failed to parse template, falling back to default", "template", templateName, "error", err) - tmpl, err = template.ParseFiles("templates/root.html") + + defaultTemplatePaths := []string{ + "templates/root.html", + "./templates/root.html", + } + + // Try each path until one works + for _, path := range defaultTemplatePaths { + tmpl, err = template.ParseFiles(path) + if err == nil { + break + } + } + if err != nil { http.Error(w, "Failed to load template", http.StatusInternalServerError) slogx.Error("Failed to parse default template", "error", err) diff --git a/server/server_test.go b/server/server_test.go index e464f75..99dc140 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -4,6 +4,9 @@ package server import ( "net/http" "net/http/httptest" + "os" + "path/filepath" + "runtime" "testing" "time" @@ -108,6 +111,15 @@ func TestServer_SetupRouter(t *testing.T) { } func TestServer_HandleRoot(t *testing.T) { + // 获取当前文件所在的目录 + _, filename, _, _ := runtime.Caller(0) + dir := filepath.Dir(filename) + + // 将工作目录切换到项目根目录 + rootDir := filepath.Join(dir, "..") + err := os.Chdir(rootDir) + assert.NoError(t, err) + config := &testConfig{ listenAddr: ":9102", metricsPath: "/metrics", -- Gitee