diff options
author | EuAndreh <eu@euandre.org> | 2024-05-27 10:51:46 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-05-27 11:05:29 -0300 |
commit | 0416e81f0b5e180d465a7e5d5434760ff9ccb717 (patch) | |
tree | f5c52cb80087593eff17b8a00a9b376b0e839850 /tests | |
parent | mv description long-description .. (diff) | |
download | papod-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.go | 51 |
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) + } +} |