From ee9b7ee1739fbfa335301ad90fabce36803bfba7 Mon Sep 17 00:00:00 2001 From: Connor van Spronssen Date: Sat, 21 Dec 2024 13:41:55 +0100 Subject: [PATCH 1/7] test: Add tests to the CreateContentType function --- cmd/cli/create-content-type_test.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cmd/cli/create-content-type_test.go b/cmd/cli/create-content-type_test.go index c2d5adc..40a1c3f 100644 --- a/cmd/cli/create-content-type_test.go +++ b/cmd/cli/create-content-type_test.go @@ -46,4 +46,19 @@ func TestCreateContentType(t *testing.T) { err = CreateContentType(true, "Content Type", "") assert.Equal(t, nil, err) + + _, err = tmpfile.WriteAt([]byte("\n"), 0) + assert.Equal(t, nil, err) + + _, err = tmpfile.Seek(0, 0) + assert.Equal(t, nil, err) + + err = CreateContentType(true, "Content Type", "") + assert.NotEqual(t, nil, err) + + _, err = tmpfile.Seek(0, 0) + assert.Equal(t, nil, err) + + err = CreateContentType(true, "", "content_type") + assert.NotEqual(t, nil, err) } From 2a11d2289439bc8cc753b57eb4e1e2bab3db8898 Mon Sep 17 00:00:00 2001 From: Connor van Spronssen Date: Sat, 21 Dec 2024 13:49:13 +0100 Subject: [PATCH 2/7] test: Add a step to the test script to open a browser with the total coverage --- scripts/test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/test.sh b/scripts/test.sh index 0281ce6..d3687c0 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -12,3 +12,4 @@ cd "$SCRIPT_DIR/.." # Run the tests. go test "./..." -coverprofile="coverage.out" -covermode=count go tool cover -func coverage.out +go tool cover -html=coverage.out From 570e3d3a6bbd33bb4cfa3cb11f77ed5e8fee74ab Mon Sep 17 00:00:00 2001 From: Connor van Spronssen Date: Sat, 21 Dec 2024 14:14:52 +0100 Subject: [PATCH 3/7] test: Add tests for the database migration code --- cmd/migrate_db/main_test.go | 114 ++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 cmd/migrate_db/main_test.go diff --git a/cmd/migrate_db/main_test.go b/cmd/migrate_db/main_test.go new file mode 100644 index 0000000..fffcb44 --- /dev/null +++ b/cmd/migrate_db/main_test.go @@ -0,0 +1,114 @@ +package migrate_db + +import ( + "os" + "testing" + + "github.com/Dobefu/csb/cmd/database" + "github.com/Dobefu/csb/cmd/init_env" + "github.com/stretchr/testify/assert" +) + +func TestMain(t *testing.T) { + var err error + + init_env.Main("../../.env.test") + err = database.Connect() + assert.Equal(t, nil, err) + + err = Main(false) + assert.Equal(t, nil, err) + + err = Main(false) + assert.Equal(t, nil, err) + + err = Main(true) + assert.Equal(t, nil, err) + + err = down() + assert.Equal(t, nil, err) + + oldDb := os.Getenv("DB_CONN") + os.Setenv("DB_CONN", "file:/") + err = database.Connect() + assert.Equal(t, nil, err) + + err = Main(true) + assert.NotEqual(t, nil, err) + + os.Setenv("DB_CONN", oldDb) + err = database.Connect() + assert.Equal(t, nil, err) +} + +func TestUp(t *testing.T) { + var err error + + err = up() + assert.Equal(t, nil, err) + + err = up() + assert.Equal(t, nil, err) + + err = down() + assert.Equal(t, nil, err) + + oldDb := os.Getenv("DB_CONN") + os.Setenv("DB_CONN", "file:/") + err = database.Connect() + assert.Equal(t, nil, err) + + err = up() + assert.NotEqual(t, nil, err) + + os.Setenv("DB_CONN", oldDb) + err = database.Connect() + assert.Equal(t, nil, err) +} + +func TestDown(t *testing.T) { + var err error + + err = up() + assert.Equal(t, nil, err) + + err = down() + assert.Equal(t, nil, err) + + err = down() + assert.Equal(t, nil, err) + + oldDb := os.Getenv("DB_CONN") + os.Setenv("DB_CONN", "file:/") + err = database.Connect() + assert.Equal(t, nil, err) + + err = down() + assert.NotEqual(t, nil, err) + + os.Setenv("DB_CONN", oldDb) + err = database.Connect() + assert.Equal(t, nil, err) +} + +func TestRunMigration(t *testing.T) { + var err error + + err = runMigration("bogus", 0) + assert.NotEqual(t, nil, err) + + err = down() + assert.Equal(t, nil, err) + + oldDb := os.Getenv("DB_CONN") + os.Setenv("DB_CONN", "file:/") + err = database.Connect() + assert.Equal(t, nil, err) + + err = runMigration("bogus", 0) + assert.NotEqual(t, nil, err) + + os.Setenv("DB_CONN", oldDb) + err = database.Connect() + assert.Equal(t, nil, err) +} From e7ee001f478245402cb5f0aa092ddee42e7a6160 Mon Sep 17 00:00:00 2001 From: Connor van Spronssen Date: Sat, 21 Dec 2024 14:32:11 +0100 Subject: [PATCH 4/7] test: Add tests for the GetEntryByFields function --- cmd/api/get-entry-by-fields_test.go | 73 +++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 cmd/api/get-entry-by-fields_test.go diff --git a/cmd/api/get-entry-by-fields_test.go b/cmd/api/get-entry-by-fields_test.go new file mode 100644 index 0000000..893e26c --- /dev/null +++ b/cmd/api/get-entry-by-fields_test.go @@ -0,0 +1,73 @@ +package api + +import ( + "testing" + + "github.com/Dobefu/csb/cmd/database" + "github.com/Dobefu/csb/cmd/database/query" + "github.com/Dobefu/csb/cmd/database/structs" + db_structs "github.com/Dobefu/csb/cmd/database/structs" + "github.com/Dobefu/csb/cmd/init_env" + "github.com/Dobefu/csb/cmd/migrate_db" + "github.com/stretchr/testify/assert" +) + +func TestGetEntryByFields(t *testing.T) { + init_env.Main("../../.env.test") + err := database.Connect() + assert.Equal(t, nil, err) + + where := []structs.QueryWhere{ + { + Name: "uid", + Value: "testing", + Operator: db_structs.EQUALS, + }, + } + + _, err = GetEntryByFields(where) + assert.NotEqual(t, nil, err) + + err = migrate_db.Main(true) + assert.Equal(t, nil, err) + + err = insertPage() + assert.Equal(t, nil, err) + + route, err := GetEntryByFields(where) + assert.Equal(t, nil, err) + assert.NotEqual(t, nil, route) +} + +func insertPage() error { + return query.Insert("routes", []db_structs.QueryValue{ + { + Name: "id", + Value: "testingen", + }, + { + Name: "uid", + Value: "testing", + }, + { + Name: "content_type", + Value: "basic_page", + }, + { + Name: "locale", + Value: "en", + }, + { + Name: "slug", + Value: "/testing", + }, + { + Name: "url", + Value: "/testing", + }, + { + Name: "parent", + Value: "parent_uid", + }, + }) +} From 3515329b9dae7eb9c8d7c206fe42646264978e09 Mon Sep 17 00:00:00 2001 From: Connor van Spronssen Date: Sat, 21 Dec 2024 14:54:17 +0100 Subject: [PATCH 5/7] test: Add tests for the GetChildEntriesByUid function --- cmd/api/get-child-entries_test.go | 76 +++++++++++++++++++++++++++++ cmd/api/get-content-types_test.go | 13 +++-- cmd/api/get-entry-by-fields_test.go | 39 ++------------- 3 files changed, 90 insertions(+), 38 deletions(-) create mode 100644 cmd/api/get-child-entries_test.go diff --git a/cmd/api/get-child-entries_test.go b/cmd/api/get-child-entries_test.go new file mode 100644 index 0000000..ff380be --- /dev/null +++ b/cmd/api/get-child-entries_test.go @@ -0,0 +1,76 @@ +package api + +import ( + "os" + "testing" + + "github.com/Dobefu/csb/cmd/database" + "github.com/Dobefu/csb/cmd/database/query" + db_structs "github.com/Dobefu/csb/cmd/database/structs" + "github.com/Dobefu/csb/cmd/init_env" + "github.com/Dobefu/csb/cmd/migrate_db" + "github.com/stretchr/testify/assert" +) + +func TestGetChildEntriesByUid(t *testing.T) { + init_env.Main("../../.env.test") + err := database.Connect() + assert.Equal(t, nil, err) + + err = migrate_db.Main(true) + assert.Equal(t, nil, err) + + oldDb := os.Getenv("DB_CONN") + os.Setenv("DB_CONN", "file:/") + err = database.Connect() + assert.Equal(t, nil, err) + + _, err = GetChildEntriesByUid("", "", false) + assert.NotEqual(t, nil, err) + + os.Setenv("DB_CONN", oldDb) + err = database.Connect() + assert.Equal(t, nil, err) + + err = insertPage("testingen", "testing", "parent_uid") + assert.Equal(t, nil, err) + + err = insertPage("parent_uiden", "parent_uid", "") + assert.Equal(t, nil, err) + + _, err = GetChildEntriesByUid("parent_uid", "en", true) + assert.Equal(t, nil, err) +} + +func insertPage(id string, uid string, parent string) error { + return query.Insert("routes", []db_structs.QueryValue{ + { + Name: "id", + Value: id, + }, + { + Name: "uid", + Value: uid, + }, + { + Name: "content_type", + Value: "basic_page", + }, + { + Name: "locale", + Value: "en", + }, + { + Name: "slug", + Value: "/testing", + }, + { + Name: "url", + Value: "/testing", + }, + { + Name: "parent", + Value: parent, + }, + }) +} diff --git a/cmd/api/get-content-types_test.go b/cmd/api/get-content-types_test.go index 72aac76..440a994 100644 --- a/cmd/api/get-content-types_test.go +++ b/cmd/api/get-content-types_test.go @@ -1,6 +1,7 @@ package api import ( + "os" "testing" "github.com/Dobefu/csb/cmd/database" @@ -9,11 +10,17 @@ import ( ) func TestGetContentTypes(t *testing.T) { - _, err := GetContentTypes() - assert.NotEqual(t, nil, err) - init_env.Main("../../.env.test") + oldApiKey := os.Getenv("CS_API_KEY") + os.Setenv("CS_API_KEY", "bogus") + err := database.Connect() + assert.Equal(t, nil, err) + + _, err = GetContentTypes() + assert.NotEqual(t, nil, err) + + os.Setenv("CS_API_KEY", oldApiKey) err = database.Connect() assert.Equal(t, nil, err) diff --git a/cmd/api/get-entry-by-fields_test.go b/cmd/api/get-entry-by-fields_test.go index 893e26c..6dce384 100644 --- a/cmd/api/get-entry-by-fields_test.go +++ b/cmd/api/get-entry-by-fields_test.go @@ -4,7 +4,6 @@ import ( "testing" "github.com/Dobefu/csb/cmd/database" - "github.com/Dobefu/csb/cmd/database/query" "github.com/Dobefu/csb/cmd/database/structs" db_structs "github.com/Dobefu/csb/cmd/database/structs" "github.com/Dobefu/csb/cmd/init_env" @@ -17,6 +16,9 @@ func TestGetEntryByFields(t *testing.T) { err := database.Connect() assert.Equal(t, nil, err) + err = migrate_db.Main(true) + assert.Equal(t, nil, err) + where := []structs.QueryWhere{ { Name: "uid", @@ -31,43 +33,10 @@ func TestGetEntryByFields(t *testing.T) { err = migrate_db.Main(true) assert.Equal(t, nil, err) - err = insertPage() + err = insertPage("testingen", "testing", "parent_uid") assert.Equal(t, nil, err) route, err := GetEntryByFields(where) assert.Equal(t, nil, err) assert.NotEqual(t, nil, route) } - -func insertPage() error { - return query.Insert("routes", []db_structs.QueryValue{ - { - Name: "id", - Value: "testingen", - }, - { - Name: "uid", - Value: "testing", - }, - { - Name: "content_type", - Value: "basic_page", - }, - { - Name: "locale", - Value: "en", - }, - { - Name: "slug", - Value: "/testing", - }, - { - Name: "url", - Value: "/testing", - }, - { - Name: "parent", - Value: "parent_uid", - }, - }) -} From e7c4f79c5377cb4aceabc2cf22a8d73ab9ead9a7 Mon Sep 17 00:00:00 2001 From: Connor van Spronssen Date: Sat, 21 Dec 2024 15:12:59 +0100 Subject: [PATCH 6/7] test: Add tests for the GetEntryByUid function --- cmd/api/get-entry-by-uid_test.go | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 cmd/api/get-entry-by-uid_test.go diff --git a/cmd/api/get-entry-by-uid_test.go b/cmd/api/get-entry-by-uid_test.go new file mode 100644 index 0000000..0de2918 --- /dev/null +++ b/cmd/api/get-entry-by-uid_test.go @@ -0,0 +1,38 @@ +package api + +import ( + "os" + "testing" + + "github.com/Dobefu/csb/cmd/database" + "github.com/Dobefu/csb/cmd/init_env" + "github.com/Dobefu/csb/cmd/migrate_db" + "github.com/stretchr/testify/assert" +) + +func TestGetEntryByUid(t *testing.T) { + init_env.Main("../../.env.test") + err := database.Connect() + assert.Equal(t, nil, err) + + err = migrate_db.Main(true) + assert.Equal(t, nil, err) + + oldDb := os.Getenv("DB_CONN") + os.Setenv("DB_CONN", "file:/") + err = database.Connect() + assert.Equal(t, nil, err) + + _, err = GetEntryByUid("", "", false) + assert.NotEqual(t, nil, err) + + os.Setenv("DB_CONN", oldDb) + err = database.Connect() + assert.Equal(t, nil, err) + + err = insertPage("testingen", "testing", "") + assert.Equal(t, nil, err) + + _, err = GetEntryByUid("testing", "en", true) + assert.Equal(t, nil, err) +} From 13bb12cdb4c9d5b6bde8eb6275225b44ca2cb7a6 Mon Sep 17 00:00:00 2001 From: Connor van Spronssen Date: Sat, 21 Dec 2024 15:19:10 +0100 Subject: [PATCH 7/7] test: Add tests for the GetEntryByUrl function --- cmd/api/get-entry-by-url_test.go | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 cmd/api/get-entry-by-url_test.go diff --git a/cmd/api/get-entry-by-url_test.go b/cmd/api/get-entry-by-url_test.go new file mode 100644 index 0000000..a8f27e4 --- /dev/null +++ b/cmd/api/get-entry-by-url_test.go @@ -0,0 +1,38 @@ +package api + +import ( + "os" + "testing" + + "github.com/Dobefu/csb/cmd/database" + "github.com/Dobefu/csb/cmd/init_env" + "github.com/Dobefu/csb/cmd/migrate_db" + "github.com/stretchr/testify/assert" +) + +func TestGetEntryByUrl(t *testing.T) { + init_env.Main("../../.env.test") + err := database.Connect() + assert.Equal(t, nil, err) + + err = migrate_db.Main(true) + assert.Equal(t, nil, err) + + oldDb := os.Getenv("DB_CONN") + os.Setenv("DB_CONN", "file:/") + err = database.Connect() + assert.Equal(t, nil, err) + + _, err = GetEntryByUrl("", "", false) + assert.NotEqual(t, nil, err) + + os.Setenv("DB_CONN", oldDb) + err = database.Connect() + assert.Equal(t, nil, err) + + err = insertPage("testingen", "testing", "") + assert.Equal(t, nil, err) + + _, err = GetEntryByUrl("/testing", "en", true) + assert.Equal(t, nil, err) +}