From 0416e81f0b5e180d465a7e5d5434760ff9ccb717 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Mon, 27 May 2024 10:51:46 -0300 Subject: src/lib.go: Start writing messages to DB Create and test simple code for handling migrations transactionally as files. --- tests/lib_test.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'tests') 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) + } +} -- cgit v1.2.3