From dc4507a7abe7d1a496f887e5022d9bff7396bb6a Mon Sep 17 00:00:00 2001 From: mirivlad Date: Sat, 20 Jun 2026 02:08:21 +0800 Subject: [PATCH] test: add server unit tests --- internal/server/server_test.go | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 internal/server/server_test.go diff --git a/internal/server/server_test.go b/internal/server/server_test.go new file mode 100644 index 0000000..f94dcfe --- /dev/null +++ b/internal/server/server_test.go @@ -0,0 +1,54 @@ +package server + +import ( + "os" + "path/filepath" + "testing" +) + +func TestNewServer(t *testing.T) { + dir := t.TempDir() + dbPath := filepath.Join(dir, "test.db") + dataDir := filepath.Join(dir, "data") + if err := os.MkdirAll(dataDir, 0750); err != nil { + t.Fatal(err) + } + + cfg := &Config{Port: 47732} + s, err := NewServer(dbPath, dataDir, cfg) + if err != nil { + t.Fatalf("NewServer: %v", err) + } + defer s.Close() + + if _, err := os.Stat(dbPath); os.IsNotExist(err) { + t.Fatal("database file was not created") + } + + blobsDir := filepath.Join(dataDir, "blobs") + if _, err := os.Stat(blobsDir); os.IsNotExist(err) { + t.Fatal("blobs directory was not created") + } +} + +func TestConfigSetAdmin(t *testing.T) { + dir := t.TempDir() + cfgPath := filepath.Join(dir, "config.yml") + cfg := &Config{Port: 47732, path: cfgPath} + + if err := cfg.SetAdmin("admin", "secret"); err != nil { + t.Fatalf("SetAdmin: %v", err) + } + + if !cfg.CheckAdmin("admin", "secret") { + t.Fatal("CheckAdmin should return true for correct password") + } + + if cfg.CheckAdmin("admin", "wrong") { + t.Fatal("CheckAdmin should return false for wrong password") + } + + if cfg.CheckAdmin("unknown", "secret") { + t.Fatal("CheckAdmin should return false for unknown user") + } +}