lens @ b15db59a46557fed62a47845705eadf1d27e4994

test: Add simple test for settings
  1diff --git a/pkg/database/sql/main_test.go b/pkg/database/sql/main_test.go
  2new file mode 100644
  3index 0000000000000000000000000000000000000000..c373740d66ac05e765ab5a4bb0e51ae9df8928e6
  4--- /dev/null
  5+++ b/pkg/database/sql/main_test.go
  6@@ -0,0 +1,45 @@
  7+//go:build integration
  8+
  9+package sql
 10+
 11+import (
 12+	"context"
 13+	"os"
 14+	"testing"
 15+
 16+	"gorm.io/driver/sqlite"
 17+	"gorm.io/gorm"
 18+	"gorm.io/gorm/logger"
 19+)
 20+
 21+var (
 22+	ctx context.Context
 23+)
 24+
 25+func setup(t *testing.T) (*gorm.DB, func()) {
 26+	t.Helper()
 27+
 28+	ctx = context.Background()
 29+
 30+	file, err := os.CreateTemp("", "img_user_*.db")
 31+	if err != nil {
 32+		t.Fatalf("Error creating tmp error: %s", err.Error())
 33+	}
 34+
 35+	db, err := gorm.Open(sqlite.Open(file.Name()), &gorm.Config{
 36+		Logger: logger.Default.LogMode(logger.Info),
 37+	})
 38+	if err != nil {
 39+		t.Fatalf("Error openning db, error %s", err.Error())
 40+	}
 41+
 42+	err = Migrate(db)
 43+	if err != nil {
 44+		t.Fatalf("Error migrating db, error %s", err.Error())
 45+	}
 46+
 47+	return db, func() {
 48+		//nolint:errcheck
 49+		os.Remove(file.Name())
 50+	}
 51+}
 52diff --git a/pkg/database/sql/settings_test.go b/pkg/database/sql/settings_test.go
 53new file mode 100644
 54index 0000000000000000000000000000000000000000..f1c859dd0c89980f9349c863388488b75339b69f
 55--- /dev/null
 56+++ b/pkg/database/sql/settings_test.go
 57@@ -0,0 +1,43 @@
 58+//go:build integration
 59+
 60+package sql
 61+
 62+import (
 63+	"testing"
 64+
 65+	"git.sr.ht/~gabrielgio/img/pkg/database/repository"
 66+	"git.sr.ht/~gabrielgio/img/pkg/testkit"
 67+)
 68+
 69+func TestSaveLoad(t *testing.T) {
 70+	db, tearDown := setup(t)
 71+	defer tearDown()
 72+
 73+	settingsRepository := NewSettingsRespository(db)
 74+
 75+	// testing saving once
 76+	want := &repository.Settings{
 77+		ShowMode:  true,
 78+		ShowOwner: true,
 79+	}
 80+
 81+	err := settingsRepository.Save(ctx, want)
 82+	testkit.TestFatalError(t, "Save", err)
 83+
 84+	got, err := settingsRepository.Load(ctx)
 85+	testkit.TestFatalError(t, "Save", err)
 86+	testkit.TestValue(t, "Save", want, got)
 87+
 88+	// testing saving a second time
 89+	want = &repository.Settings{
 90+		ShowMode:  false,
 91+		ShowOwner: false,
 92+	}
 93+
 94+	err = settingsRepository.Save(ctx, want)
 95+	testkit.TestFatalError(t, "Save", err)
 96+
 97+	got, err = settingsRepository.Load(ctx)
 98+	testkit.TestFatalError(t, "Save", err)
 99+	testkit.TestValue(t, "Save", want, got)
100+}
101diff --git a/pkg/database/sql/user_test.go b/pkg/database/sql/user_test.go
102index 01f6729bc00c576b97cc6bdf2fa45154e0b4eab8..db436767045e01cc9b20d03e3bee2576e01c6707 100644
103--- a/pkg/database/sql/user_test.go
104+++ b/pkg/database/sql/user_test.go
105@@ -4,42 +4,12 @@ package sql
106 
107 import (
108 	"context"
109-	"os"
110 	"testing"
111 
112 	"github.com/google/go-cmp/cmp"
113-	"gorm.io/driver/sqlite"
114-	"gorm.io/gorm"
115-	"gorm.io/gorm/logger"
116 
117 	"git.sr.ht/~gabrielgio/img/pkg/database/repository"
118 )
119-
120-func setup(t *testing.T) (*gorm.DB, func()) {
121-	t.Helper()
122-
123-	file, err := os.CreateTemp("", "img_user_*.db")
124-	if err != nil {
125-		t.Fatalf("Error creating tmp error: %s", err.Error())
126-	}
127-
128-	db, err := gorm.Open(sqlite.Open(file.Name()), &gorm.Config{
129-		Logger: logger.Default.LogMode(logger.Info),
130-	})
131-	if err != nil {
132-		t.Fatalf("Error openning db, error %s", err.Error())
133-	}
134-
135-	err = Migrate(db)
136-	if err != nil {
137-		t.Fatalf("Error migrating db, error %s", err.Error())
138-	}
139-
140-	return db, func() {
141-		//nolint:errcheck
142-		os.Remove(file.Name())
143-	}
144-}
145 
146 func TestCreate(t *testing.T) {
147 	t.Parallel()