From efa752f2ab99177e421ef1a0830542a67d5a8f0f Mon Sep 17 00:00:00 2001 From: Reinaldy Rafli Date: Sat, 31 Jul 2021 12:03:31 +0700 Subject: [PATCH] test: refactored --- README.md | 2 +- has_test.go | 112 ++++++++++++++++++++++++++-------------------------- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index e96107b..f6bbb1d 100644 --- a/README.md +++ b/README.md @@ -178,7 +178,7 @@ func main() { Available placeholder formats: * `bob.Question` - `INSERT INTO "users" (name) VALUES (?)` * `bob.Dollar` - `INSERT INTO "users" (name) VALUES ($1)` -* `bob.Colon` - `INSERT INTO "users" (name) VALUES (:1)` (Yes, I know this is kinda wrong. I'm thinking of removing it.) +* `bob.Colon` - `INSERT INTO "users" (name) VALUES (:1)` * `bob.AtP` - `INSERT INTO "users" (name) VALUES (@p1)` ### With pgx (PostgreSQL) diff --git a/has_test.go b/has_test.go index e4a33a1..79acc38 100644 --- a/has_test.go +++ b/has_test.go @@ -7,23 +7,23 @@ import ( "github.com/aldy505/bob" ) -func TestHas(t *testing.T) { - t.Run("should be able to create a hasTable query", func(t *testing.T) { - sql, args, err := bob.HasTable("users").ToSql() - if err != nil { - t.Fatal(err.Error()) - } +func TestHasTable(t *testing.T) { + sql, args, err := bob.HasTable("users").ToSql() + if err != nil { + t.Fatal(err.Error()) + } - result := "SELECT * FROM information_schema.tables WHERE table_name = ? AND table_schema = current_schema();" - if sql != result { - t.Fatal("sql is not equal with result:", sql) - } - argsResult := []interface{}{"users"} - if !reflect.DeepEqual(args, argsResult) { - t.Fatal("args is not equal with argsResult:", args) - } - }) + result := "SELECT * FROM information_schema.tables WHERE table_name = ? AND table_schema = current_schema();" + if sql != result { + t.Fatal("sql is not equal with result:", sql) + } + argsResult := []interface{}{"users"} + if !reflect.DeepEqual(args, argsResult) { + t.Fatal("args is not equal with argsResult:", args) + } +} +func TestHasColumn(t *testing.T) { t.Run("should be able to create a hasColumn query", func(t *testing.T) { sql, args, err := bob.HasTable("users").HasColumn("name").ToSql() if err != nil { @@ -57,45 +57,45 @@ func TestHas(t *testing.T) { t.Fatal("args is not equal with argsResult:", args) } }) - - t.Run("should be able to create a hasTable query with schema", func(t *testing.T) { - sql, args, err := bob.HasTable("users").WithSchema("private").ToSql() - if err != nil { - t.Fatal(err.Error()) - } - - result := "SELECT * FROM information_schema.tables WHERE table_name = ? AND table_schema = ?;" - if sql != result { - t.Fatal("sql is not equal with result:", sql) - } - - argsResult := []interface{}{"users", "private"} - if !reflect.DeepEqual(args, argsResult) { - t.Fatal("args is not equal with argsResult:", args) - } - }) - - t.Run("should be able to have a different placeholder - dollar", func(t *testing.T) { - sql, args, err := bob.HasTable("users").HasColumn("name").PlaceholderFormat(bob.Dollar).ToSql() - if err != nil { - t.Fatal(err.Error()) - } - - result := "SELECT * FROM information_schema.columns WHERE table_name = $1 AND column_name = $2 AND table_schema = current_schema();" - if sql != result { - t.Fatal("sql is not equal with result:", sql) - } - - argsResult := []interface{}{"users", "name"} - if !reflect.DeepEqual(args, argsResult) { - t.Fatal("args is not equal with argsResult:", args) - } - }) - - t.Run("should expect an error for no table name", func(t *testing.T) { - _, _, err := bob.HasTable("").ToSql() - if err.Error() != "has statement should have a table name" { - t.Fatal("error is different:", err.Error()) - } - }) +} + +func TestHas_Schema(t *testing.T) { + sql, args, err := bob.HasTable("users").WithSchema("private").ToSql() + if err != nil { + t.Fatal(err.Error()) + } + + result := "SELECT * FROM information_schema.tables WHERE table_name = ? AND table_schema = ?;" + if sql != result { + t.Fatal("sql is not equal with result:", sql) + } + + argsResult := []interface{}{"users", "private"} + if !reflect.DeepEqual(args, argsResult) { + t.Fatal("args is not equal with argsResult:", args) + } +} + +func TestHas_PlaceholderFormats(t *testing.T) { + sql, args, err := bob.HasTable("users").HasColumn("name").PlaceholderFormat(bob.Dollar).ToSql() + if err != nil { + t.Fatal(err.Error()) + } + + result := "SELECT * FROM information_schema.columns WHERE table_name = $1 AND column_name = $2 AND table_schema = current_schema();" + if sql != result { + t.Fatal("sql is not equal with result:", sql) + } + + argsResult := []interface{}{"users", "name"} + if !reflect.DeepEqual(args, argsResult) { + t.Fatal("args is not equal with argsResult:", args) + } +} + +func TestHas_EmitError(t *testing.T) { + _, _, err := bob.HasTable("").ToSql() + if err.Error() != "has statement should have a table name" { + t.Fatal("error is different:", err.Error()) + } }