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 new file mode 100644 index 0000000..6dce384 --- /dev/null +++ b/cmd/api/get-entry-by-fields_test.go @@ -0,0 +1,42 @@ +package api + +import ( + "testing" + + "github.com/Dobefu/csb/cmd/database" + "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) + + err = migrate_db.Main(true) + 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("testingen", "testing", "parent_uid") + assert.Equal(t, nil, err) + + route, err := GetEntryByFields(where) + assert.Equal(t, nil, err) + assert.NotEqual(t, nil, route) +} 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) +} 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) +} 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) } 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) +} 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