chore: migrate and structure cmbone project
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func newTestStore(t *testing.T) *SuiStore {
|
||||
t.Helper()
|
||||
|
||||
db, err := sql.Open("sqlite", ":memory:")
|
||||
if err != nil {
|
||||
t.Fatalf("open sqlite: %v", err)
|
||||
}
|
||||
t.Cleanup(func() {
|
||||
_ = db.Close()
|
||||
})
|
||||
|
||||
if err := Migrate(db); err != nil {
|
||||
t.Fatalf("migrate: %v", err)
|
||||
}
|
||||
|
||||
return &SuiStore{DB: db}
|
||||
}
|
||||
|
||||
func TestMigrateCreatesDefaultDataOnce(t *testing.T) {
|
||||
store := newTestStore(t)
|
||||
|
||||
if err := Migrate(store.DB); err != nil {
|
||||
t.Fatalf("second migrate: %v", err)
|
||||
}
|
||||
|
||||
var hotkeyCount int
|
||||
if err := store.DB.QueryRow("SELECT COUNT(*) FROM hotkeys").Scan(&hotkeyCount); err != nil {
|
||||
t.Fatalf("count hotkeys: %v", err)
|
||||
}
|
||||
if hotkeyCount != 2 {
|
||||
t.Fatalf("hotkey count = %d, want 2", hotkeyCount)
|
||||
}
|
||||
|
||||
var lang string
|
||||
if err := store.DB.QueryRow("SELECT value FROM appconfig WHERE key = 'language'").Scan(&lang); err != nil {
|
||||
t.Fatalf("query language: %v", err)
|
||||
}
|
||||
if lang != "zh" {
|
||||
t.Fatalf("language = %q, want zh", lang)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAppConfigServiceLanguage(t *testing.T) {
|
||||
store := newTestStore(t)
|
||||
service := NewAppConfigService(store)
|
||||
|
||||
if got := service.GetLanguage(); got != "zh" {
|
||||
t.Fatalf("default language = %q, want zh", got)
|
||||
}
|
||||
|
||||
if err := service.SetLanguage("en"); err != nil {
|
||||
t.Fatalf("set language: %v", err)
|
||||
}
|
||||
if got := service.GetLanguage(); got != "en" {
|
||||
t.Fatalf("updated language = %q, want en", got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user