mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-28 03:06:38 +08:00
b0fe40142a
* Rebrand MMTL to MeBox across codebase and assets Rename the project display name, Go module path, environment variable prefix (MEBOX_*), Docker image references, and UI branding from MMTL/mmtl to MeBox/mebox. Replace logo assets with the new MeBox icon and keep legacy SQLite migration support for existing mmtl.db deployments. Co-authored-by: truewhile <truewhile@users.noreply.github.com> * Fix logo icons: use cube-only crop without truncated text Previous icon generation cropped too much of the source image, including partial MeBox wordmark text that was cut off in square icon containers. Regenerate logo-64/192/512, favicon, and SVG from cube-only region. Co-authored-by: truewhile <truewhile@users.noreply.github.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: truewhile <truewhile@users.noreply.github.com>
72 lines
1.6 KiB
Go
72 lines
1.6 KiB
Go
package database
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/glebarez/sqlite"
|
|
"gorm.io/gorm"
|
|
|
|
"github.com/truewhile/MeBox/internal/config"
|
|
"github.com/truewhile/MeBox/internal/model"
|
|
)
|
|
|
|
func TestMaskDSN(t *testing.T) {
|
|
cases := []struct {
|
|
in string
|
|
want string
|
|
}{
|
|
{
|
|
in: "postgres://admin:secret123@localhost:5432/mebox?sslmode=disable",
|
|
want: "postgres://admin:******@localhost:5432/mebox?sslmode=disable",
|
|
},
|
|
{
|
|
in: "host=localhost port=5432 user=admin password=secret dbname=mebox sslmode=disable",
|
|
want: "host=localhost port=5432 user=admin password=****** dbname=mebox sslmode=disable",
|
|
},
|
|
{
|
|
in: "sqlite://data/mebox.db",
|
|
want: "sqlite://data/mebox.db",
|
|
},
|
|
{
|
|
in: "",
|
|
want: "",
|
|
},
|
|
}
|
|
|
|
for _, c := range cases {
|
|
got := MaskDSN(c.in)
|
|
if got != c.want {
|
|
t.Errorf("MaskDSN(%q) = %q, want %q", c.in, got, c.want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestInspectDatabaseStatus(t *testing.T) {
|
|
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := db.AutoMigrate(&model.User{}, &model.Media{}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_ = db.Create(&model.User{Username: "testuser", PasswordHash: "h", Role: "user"}).Error
|
|
|
|
cfg := &config.Config{}
|
|
cfg.Database.Type = "sqlite"
|
|
cfg.Database.DBPath = "./data/mebox.db"
|
|
|
|
st := InspectDatabaseStatus(db, cfg)
|
|
if st == nil {
|
|
t.Fatal("expected non-nil DatabaseStatus")
|
|
}
|
|
if st.Type != "sqlite" {
|
|
t.Fatalf("expected sqlite, got %s", st.Type)
|
|
}
|
|
if st.DBPath != "./data/mebox.db" {
|
|
t.Fatalf("expected db_path, got %s", st.DBPath)
|
|
}
|
|
if st.TableCounts["users"] != 1 {
|
|
t.Fatalf("expected 1 user, got %d", st.TableCounts["users"])
|
|
}
|
|
}
|