rin
Публичный Open-source lightweight git hosting.
db_test.go · 42 строки · 1.0 KB
Raw
1 package db
2
3 import (
4 "context"
5 "path/filepath"
6 "testing"
7 )
8
9 func TestOpenAndMigrate(t *testing.T) {
10 ctx := context.Background()
11 dbPath := filepath.Join(t.TempDir(), "test_ada.db")
12
13 database, err := Open(ctx, dbPath, true)
14 if err != nil {
15 t.Fatalf("Open failed: %v", err)
16 }
17 defer database.Close()
18
19 // Re-running Migrate must be idempotent
20 if err := database.Migrate(ctx); err != nil {
21 t.Fatalf("second Migrate failed: %v", err)
22 }
23
24 if !database.IsRegistrationEnabled(ctx, false) {
25 t.Fatalf("expected registration_enabled to be seeded as true")
26 }
27
28 if err := database.SetRegistrationEnabled(ctx, false); err != nil {
29 t.Fatalf("SetRegistrationEnabled failed: %v", err)
30 }
31 if database.IsRegistrationEnabled(ctx, true) {
32 t.Fatalf("expected registration_enabled to be false after update")
33 }
34
35 var fk int
36 if err := database.QueryRowContext(ctx, "PRAGMA foreign_keys;").Scan(&fk); err != nil {
37 t.Fatalf("query foreign_keys pragma: %v", err)
38 }
39 if fk != 1 {
40 t.Fatalf("expected foreign_keys = 1, got %d", fk)
41 }
42 }
43