summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-05-27 10:51:46 -0300
committerEuAndreh <eu@euandre.org>2024-05-27 11:05:29 -0300
commit0416e81f0b5e180d465a7e5d5434760ff9ccb717 (patch)
treef5c52cb80087593eff17b8a00a9b376b0e839850 /tests
parentmv description long-description .. (diff)
downloadpapod-0416e81f0b5e180d465a7e5d5434760ff9ccb717.tar.gz
papod-0416e81f0b5e180d465a7e5d5434760ff9ccb717.tar.xz
src/lib.go: Start writing messages to DB
Create and test simple code for handling migrations transactionally as files.
Diffstat (limited to 'tests')
-rw-r--r--tests/lib_test.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/lib_test.go b/tests/lib_test.go
index d03b64d..3195f38 100644
--- a/tests/lib_test.go
+++ b/tests/lib_test.go
@@ -2,12 +2,17 @@ package papod_test
import (
"bufio"
+ "database/sql"
"errors"
"reflect"
"strings"
"testing"
+ g "euandre.org/gobang/src"
+
"euandre.org/papod/src"
+
+ // "fmt"
)
@@ -17,6 +22,14 @@ func errorIf(t *testing.T, err error) {
}
}
+func assertEqual(t *testing.T, given any, expected any) {
+ if !reflect.DeepEqual(given, expected) {
+ t.Errorf("given != expected\n")
+ t.Errorf("given: %#v\n", given)
+ t.Errorf("expected: %#v\n", expected)
+ }
+}
+
func assertEqualI(t *testing.T, i int, given any, expected any) {
if !reflect.DeepEqual(given, expected) {
t.Errorf("given != expected (i = %d)\n", i)
@@ -467,3 +480,41 @@ func TestParseMessage(t *testing.T) {
assertEqualI(t, i, given, entry.expected)
}
}
+
+func TestInitMigrations(t *testing.T) {
+ const query = `SELECT filename FROM migrations;`
+
+ db, err := sql.Open("sqlite3", ":memory:")
+ g.FatalIf(err)
+
+ _, err = db.Query(query)
+ assertEqual(t, err.Error(), "no such table: migrations")
+
+ for i := 0; i < 5; i++ {
+ papod.InitMigrations(db)
+ rows, err := db.Query(query)
+ g.FatalIf(err)
+ assertEqual(t, rows.Next(), false)
+ g.FatalIf(rows.Err())
+ }
+}
+
+func TestPendingMigrations(t *testing.T) {
+ db, err := sql.Open("sqlite3", ":memory:")
+ g.FatalIf(err)
+
+ papod.InitMigrations(db)
+ pending1 := papod.PendingMigrations(db)
+ pending2 := papod.PendingMigrations(db)
+
+ assertEqual(t, pending1, pending2)
+}
+
+func TestRunMigrations(t *testing.T) {
+ db, err := sql.Open("sqlite3", ":memory:")
+ g.FatalIf(err)
+
+ for i := 0; i < 5; i++ {
+ papod.RunMigrations(db)
+ }
+}