diff --git a/pkg/components/imguploader/azureblobuploader_test.go b/pkg/components/imguploader/azureblobuploader_test.go index c0c7889a155..33c14b5d001 100644 --- a/pkg/components/imguploader/azureblobuploader_test.go +++ b/pkg/components/imguploader/azureblobuploader_test.go @@ -5,22 +5,23 @@ import ( "testing" "github.com/grafana/grafana/pkg/setting" - . "github.com/smartystreets/goconvey/convey" + "github.com/stretchr/testify/require" ) func TestUploadToAzureBlob(t *testing.T) { - SkipConvey("[Integration test] for external_image_store.azure_blob", t, func() { + t.Run("[Integration test] for external_image_store.azure_blob", func(t *testing.T) { + t.Skip("Skipping testing for external_image_store.azure_blob") cfg := setting.NewCfg() err := cfg.Load(&setting.CommandLineArgs{ HomePath: "../../../", }) - So(err, ShouldBeNil) + require.NoError(t, err) uploader, _ := NewImageUploader() path, err := uploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png") - So(err, ShouldBeNil) - So(path, ShouldNotEqual, "") + require.NoError(t, err) + require.NotEqual(t, "", path) }) } diff --git a/pkg/components/imguploader/imguploader_test.go b/pkg/components/imguploader/imguploader_test.go index ce3f672015f..8c7f7beffc9 100644 --- a/pkg/components/imguploader/imguploader_test.go +++ b/pkg/components/imguploader/imguploader_test.go @@ -5,183 +5,182 @@ import ( "github.com/grafana/grafana/pkg/components/imguploader/gcs" "github.com/grafana/grafana/pkg/setting" - - . "github.com/smartystreets/goconvey/convey" + "github.com/stretchr/testify/require" ) func TestImageUploaderFactory(t *testing.T) { - Convey("Can create image uploader for ", t, func() { - Convey("S3ImageUploader config", func() { + t.Run("Can create image uploader for ", func(t *testing.T) { + t.Run("S3ImageUploader config", func(t *testing.T) { cfg := setting.NewCfg() err := cfg.Load(&setting.CommandLineArgs{ HomePath: "../../../", }) - So(err, ShouldBeNil) + require.NoError(t, err) setting.ImageUploadProvider = "s3" - Convey("with bucket url https://foo.bar.baz.s3-us-east-2.amazonaws.com", func() { + t.Run("with bucket url https://foo.bar.baz.s3-us-east-2.amazonaws.com", func(t *testing.T) { s3sec, err := setting.Raw.GetSection("external_image_storage.s3") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = s3sec.NewKey("bucket_url", "https://foo.bar.baz.s3-us-east-2.amazonaws.com") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = s3sec.NewKey("access_key", "access_key") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = s3sec.NewKey("secret_key", "secret_key") - So(err, ShouldBeNil) + require.NoError(t, err) uploader, err := NewImageUploader() - So(err, ShouldBeNil) + require.NoError(t, err) original, ok := uploader.(*S3Uploader) - So(ok, ShouldBeTrue) - So(original.region, ShouldEqual, "us-east-2") - So(original.bucket, ShouldEqual, "foo.bar.baz") - So(original.accessKey, ShouldEqual, "access_key") - So(original.secretKey, ShouldEqual, "secret_key") + require.True(t, ok) + require.Equal(t, "us-east-2", original.region) + require.Equal(t, "foo.bar.baz", original.bucket) + require.Equal(t, "access_key", original.accessKey) + require.Equal(t, "secret_key", original.secretKey) }) - Convey("with bucket url https://s3.amazonaws.com/mybucket", func() { + t.Run("with bucket url https://s3.amazonaws.com/mybucket", func(t *testing.T) { s3sec, err := setting.Raw.GetSection("external_image_storage.s3") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = s3sec.NewKey("bucket_url", "https://s3.amazonaws.com/my.bucket.com") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = s3sec.NewKey("access_key", "access_key") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = s3sec.NewKey("secret_key", "secret_key") - So(err, ShouldBeNil) + require.NoError(t, err) uploader, err := NewImageUploader() - So(err, ShouldBeNil) + require.NoError(t, err) original, ok := uploader.(*S3Uploader) - So(ok, ShouldBeTrue) - So(original.region, ShouldEqual, "us-east-1") - So(original.bucket, ShouldEqual, "my.bucket.com") - So(original.accessKey, ShouldEqual, "access_key") - So(original.secretKey, ShouldEqual, "secret_key") + require.True(t, ok) + require.Equal(t, "us-east-1", original.region) + require.Equal(t, "my.bucket.com", original.bucket) + require.Equal(t, "access_key", original.accessKey) + require.Equal(t, "secret_key", original.secretKey) }) - Convey("with bucket url https://s3-us-west-2.amazonaws.com/mybucket", func() { + t.Run("with bucket url https://s3-us-west-2.amazonaws.com/mybucket", func(t *testing.T) { s3sec, err := setting.Raw.GetSection("external_image_storage.s3") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = s3sec.NewKey("bucket_url", "https://s3-us-west-2.amazonaws.com/my.bucket.com") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = s3sec.NewKey("access_key", "access_key") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = s3sec.NewKey("secret_key", "secret_key") - So(err, ShouldBeNil) + require.NoError(t, err) uploader, err := NewImageUploader() - So(err, ShouldBeNil) + require.NoError(t, err) original, ok := uploader.(*S3Uploader) - So(ok, ShouldBeTrue) - So(original.region, ShouldEqual, "us-west-2") - So(original.bucket, ShouldEqual, "my.bucket.com") - So(original.accessKey, ShouldEqual, "access_key") - So(original.secretKey, ShouldEqual, "secret_key") + require.True(t, ok) + require.Equal(t, "us-west-2", original.region) + require.Equal(t, "my.bucket.com", original.bucket) + require.Equal(t, "access_key", original.accessKey) + require.Equal(t, "secret_key", original.secretKey) }) }) - Convey("Webdav uploader", func() { + t.Run("Webdav uploader", func(t *testing.T) { cfg := setting.NewCfg() err := cfg.Load(&setting.CommandLineArgs{ HomePath: "../../../", }) - So(err, ShouldBeNil) + require.NoError(t, err) setting.ImageUploadProvider = "webdav" webdavSec, err := cfg.Raw.GetSection("external_image_storage.webdav") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = webdavSec.NewKey("url", "webdavUrl") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = webdavSec.NewKey("username", "username") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = webdavSec.NewKey("password", "password") - So(err, ShouldBeNil) + require.NoError(t, err) uploader, err := NewImageUploader() - So(err, ShouldBeNil) + require.NoError(t, err) original, ok := uploader.(*WebdavUploader) - So(ok, ShouldBeTrue) - So(original.url, ShouldEqual, "webdavUrl") - So(original.username, ShouldEqual, "username") - So(original.password, ShouldEqual, "password") + require.True(t, ok) + require.Equal(t, "webdavUrl", original.url) + require.Equal(t, "username", original.username) + require.Equal(t, "password", original.password) }) - Convey("GCS uploader", func() { + t.Run("GCS uploader", func(t *testing.T) { cfg := setting.NewCfg() err := cfg.Load(&setting.CommandLineArgs{ HomePath: "../../../", }) - So(err, ShouldBeNil) + require.NoError(t, err) setting.ImageUploadProvider = "gcs" gcpSec, err := cfg.Raw.GetSection("external_image_storage.gcs") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = gcpSec.NewKey("key_file", "/etc/secrets/project-79a52befa3f6.json") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = gcpSec.NewKey("bucket", "project-grafana-east") - So(err, ShouldBeNil) + require.NoError(t, err) uploader, err := NewImageUploader() - So(err, ShouldBeNil) + require.NoError(t, err) original, ok := uploader.(*gcs.Uploader) - So(ok, ShouldBeTrue) - So(original.KeyFile, ShouldEqual, "/etc/secrets/project-79a52befa3f6.json") - So(original.Bucket, ShouldEqual, "project-grafana-east") + require.True(t, ok) + require.Equal(t, "/etc/secrets/project-79a52befa3f6.json", original.KeyFile) + require.Equal(t, "project-grafana-east", original.Bucket) }) - Convey("AzureBlobUploader config", func() { + t.Run("AzureBlobUploader config", func(t *testing.T) { cfg := setting.NewCfg() err := cfg.Load(&setting.CommandLineArgs{ HomePath: "../../../", }) - So(err, ShouldBeNil) + require.NoError(t, err) setting.ImageUploadProvider = "azure_blob" - Convey("with container name", func() { + t.Run("with container name", func(t *testing.T) { azureBlobSec, err := cfg.Raw.GetSection("external_image_storage.azure_blob") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = azureBlobSec.NewKey("account_name", "account_name") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = azureBlobSec.NewKey("account_key", "account_key") - So(err, ShouldBeNil) + require.NoError(t, err) _, err = azureBlobSec.NewKey("container_name", "container_name") - So(err, ShouldBeNil) + require.NoError(t, err) uploader, err := NewImageUploader() - So(err, ShouldBeNil) + require.NoError(t, err) original, ok := uploader.(*AzureBlobUploader) - So(ok, ShouldBeTrue) - So(original.account_name, ShouldEqual, "account_name") - So(original.account_key, ShouldEqual, "account_key") - So(original.container_name, ShouldEqual, "container_name") + require.True(t, ok) + require.Equal(t, "account_name", original.account_name) + require.Equal(t, "account_key", original.account_key) + require.Equal(t, "container_name", original.container_name) }) }) - Convey("Local uploader", func() { + t.Run("Local uploader", func(t *testing.T) { cfg := setting.NewCfg() err := cfg.Load(&setting.CommandLineArgs{ HomePath: "../../../", }) - So(err, ShouldBeNil) + require.NoError(t, err) setting.ImageUploadProvider = "local" uploader, err := NewImageUploader() - So(err, ShouldBeNil) + require.NoError(t, err) original, ok := uploader.(*LocalUploader) - So(ok, ShouldBeTrue) - So(original, ShouldNotBeNil) + require.True(t, ok) + require.NotNil(t, original) }) }) } diff --git a/pkg/components/imguploader/localuploader_test.go b/pkg/components/imguploader/localuploader_test.go index 0d8c0df0e57..b5d1564931a 100644 --- a/pkg/components/imguploader/localuploader_test.go +++ b/pkg/components/imguploader/localuploader_test.go @@ -4,15 +4,15 @@ import ( "context" "testing" - . "github.com/smartystreets/goconvey/convey" + "github.com/stretchr/testify/require" ) func TestUploadToLocal(t *testing.T) { - Convey("[Integration test] for external_image_store.local", t, func() { + t.Run("[Integration test] for external_image_store.local", func(t *testing.T) { localUploader, _ := NewLocalImageUploader() path, err := localUploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png") - So(err, ShouldBeNil) - So(path, ShouldContainSubstring, "/public/img/attachments") + require.NoError(t, err) + require.Contains(t, path, "/public/img/attachments") }) } diff --git a/pkg/components/imguploader/s3uploader_test.go b/pkg/components/imguploader/s3uploader_test.go index 1cecf675290..3ff061da639 100644 --- a/pkg/components/imguploader/s3uploader_test.go +++ b/pkg/components/imguploader/s3uploader_test.go @@ -5,22 +5,23 @@ import ( "testing" "github.com/grafana/grafana/pkg/setting" - . "github.com/smartystreets/goconvey/convey" + "github.com/stretchr/testify/require" ) func TestUploadToS3(t *testing.T) { - SkipConvey("[Integration test] for external_image_store.s3", t, func() { + t.Run("[Integration test] for external_image_store.s3", func(t *testing.T) { + t.Skip("Skip test [Integration test] for external_image_store.s3") cfg := setting.NewCfg() err := cfg.Load(&setting.CommandLineArgs{ HomePath: "../../../", }) - So(err, ShouldBeNil) + require.NoError(t, err) s3Uploader, err := NewImageUploader() - So(err, ShouldBeNil) + require.NoError(t, err) path, err := s3Uploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png") - So(err, ShouldBeNil) - So(path, ShouldNotEqual, "") + require.NoError(t, err) + require.NotEqual(t, "", path) }) } diff --git a/pkg/components/imguploader/webdavuploader_test.go b/pkg/components/imguploader/webdavuploader_test.go index 125e190a52d..b8115715df4 100644 --- a/pkg/components/imguploader/webdavuploader_test.go +++ b/pkg/components/imguploader/webdavuploader_test.go @@ -3,38 +3,43 @@ package imguploader import ( "context" "net/url" + "strings" "testing" - . "github.com/smartystreets/goconvey/convey" + "github.com/stretchr/testify/require" ) func TestUploadToWebdav(t *testing.T) { // Can be tested with this docker container: https://hub.docker.com/r/morrisjobke/webdav/ - SkipConvey("[Integration test] for external_image_store.webdav", t, func() { + t.Run("[Integration test] for external_image_store.webdav", func(t *testing.T) { + t.Skip("Skip test [Integration test] for external_image_store.webdav") webdavUploader, _ := NewWebdavImageUploader("http://localhost:8888/webdav/", "test", "test", "") path, err := webdavUploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png") - So(err, ShouldBeNil) - So(path, ShouldStartWith, "http://localhost:8888/webdav/") + require.NoError(t, err) + require.True(t, strings.HasPrefix(path, "http://localhost:8888/webdav/")) }) - SkipConvey("[Integration test] for external_image_store.webdav with public url", t, func() { + t.Run("[Integration test] for external_image_store.webdav with public url", func(t *testing.T) { + t.Skip("Skip test [Integration test] for external_image_store.webdav with public url") webdavUploader, _ := NewWebdavImageUploader("http://localhost:8888/webdav/", "test", "test", "http://publicurl:8888/webdav") path, err := webdavUploader.Upload(context.Background(), "../../../public/img/logo_transparent_400x.png") - So(err, ShouldBeNil) - So(path, ShouldStartWith, "http://publicurl:8888/webdav/") + require.NoError(t, err) + require.True(t, strings.HasPrefix(path, "http://publicurl:8888/webdav/")) + + require.True(t, strings.HasPrefix(path, "http://publicurl:8888/webdav/")) }) } func TestPublicURL(t *testing.T) { - Convey("Given a public URL with parameters, and no template", t, func() { + t.Run("Given a public URL with parameters, and no template", func(t *testing.T) { webdavUploader, _ := NewWebdavImageUploader("http://localhost:8888/webdav/", "test", "test", "http://cloudycloud.me/s/DOIFDOMV/download?files=") parsed, _ := url.Parse(webdavUploader.PublicURL("fileyfile.png")) - So(parsed.Path, ShouldEndWith, "fileyfile.png") + require.True(t, strings.HasSuffix(parsed.Path, "fileyfile.png")) }) - Convey("Given a public URL with parameters, and a template", t, func() { + t.Run("Given a public URL with parameters, and a template", func(t *testing.T) { webdavUploader, _ := NewWebdavImageUploader("http://localhost:8888/webdav/", "test", "test", "http://cloudycloud.me/s/DOIFDOMV/download?files=${file}") - So(webdavUploader.PublicURL("fileyfile.png"), ShouldEndWith, "fileyfile.png") + require.True(t, strings.HasSuffix(webdavUploader.PublicURL("fileyfile.png"), "fileyfile.png")) }) }