2026-08-03 18:13:30 +08:00
|
|
|
package sqlite_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"cmbuyer/admin/internal/storage/sqlite"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestOpen(t *testing.T) {
|
|
|
|
|
database, err := sqlite.Open(":memory:")
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("open SQLite database: %v", err)
|
|
|
|
|
}
|
|
|
|
|
t.Cleanup(func() {
|
|
|
|
|
if err := database.Close(); err != nil {
|
|
|
|
|
t.Errorf("close SQLite database: %v", err)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
if err := database.PingContext(context.Background()); err != nil {
|
|
|
|
|
t.Fatalf("ping SQLite database: %v", err)
|
|
|
|
|
}
|
2026-08-03 18:37:42 +08:00
|
|
|
|
|
|
|
|
database.SetMaxIdleConns(0)
|
|
|
|
|
for attempt := 0; attempt < 2; attempt++ {
|
|
|
|
|
var foreignKeysEnabled int
|
|
|
|
|
if err := database.QueryRow("PRAGMA foreign_keys").Scan(&foreignKeysEnabled); err != nil {
|
|
|
|
|
t.Fatalf("read SQLite foreign key setting: %v", err)
|
|
|
|
|
}
|
|
|
|
|
if foreignKeysEnabled != 1 {
|
|
|
|
|
t.Fatalf("SQLite foreign_keys = %d, want 1", foreignKeysEnabled)
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-08-03 18:13:30 +08:00
|
|
|
}
|