From 03b06238de41d5b25aca055aeae1c8f3a36deaf7 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Sun, 13 Mar 2022 22:23:57 +0100 Subject: [PATCH] add tests with custom alias template --- .../decomposedfs_concurrency_test.go | 2 +- .../utils/decomposedfs/decomposedfs_test.go | 2 +- pkg/storage/utils/decomposedfs/grants_test.go | 2 +- .../utils/decomposedfs/recycle_test.go | 2 +- pkg/storage/utils/decomposedfs/spaces_test.go | 41 ++++++++++++++++++- .../utils/decomposedfs/testhelpers/helpers.go | 15 +++++-- 6 files changed, 55 insertions(+), 9 deletions(-) diff --git a/pkg/storage/utils/decomposedfs/decomposedfs_concurrency_test.go b/pkg/storage/utils/decomposedfs/decomposedfs_concurrency_test.go index 14c3499224e..7bc6fe1cb88 100644 --- a/pkg/storage/utils/decomposedfs/decomposedfs_concurrency_test.go +++ b/pkg/storage/utils/decomposedfs/decomposedfs_concurrency_test.go @@ -40,7 +40,7 @@ var _ = Describe("Decomposed", func() { BeforeEach(func() { var err error - env, err = testhelpers.NewTestEnv() + env, err = testhelpers.NewTestEnv(nil) Expect(err).ToNot(HaveOccurred()) }) diff --git a/pkg/storage/utils/decomposedfs/decomposedfs_test.go b/pkg/storage/utils/decomposedfs/decomposedfs_test.go index 63dd901be6a..d456628b1ac 100644 --- a/pkg/storage/utils/decomposedfs/decomposedfs_test.go +++ b/pkg/storage/utils/decomposedfs/decomposedfs_test.go @@ -39,7 +39,7 @@ var _ = Describe("Decomposed", func() { JustBeforeEach(func() { var err error - env, err = helpers.NewTestEnv() + env, err = helpers.NewTestEnv(nil) Expect(err).ToNot(HaveOccurred()) ref = &provider.Reference{ diff --git a/pkg/storage/utils/decomposedfs/grants_test.go b/pkg/storage/utils/decomposedfs/grants_test.go index 980470e4493..13f9f9ac2ec 100644 --- a/pkg/storage/utils/decomposedfs/grants_test.go +++ b/pkg/storage/utils/decomposedfs/grants_test.go @@ -69,7 +69,7 @@ var _ = Describe("Grants", func() { JustBeforeEach(func() { var err error - env, err = helpers.NewTestEnv() + env, err = helpers.NewTestEnv(nil) Expect(err).ToNot(HaveOccurred()) ref = &provider.Reference{ diff --git a/pkg/storage/utils/decomposedfs/recycle_test.go b/pkg/storage/utils/decomposedfs/recycle_test.go index 59a916166bc..e5e6a3b2d89 100644 --- a/pkg/storage/utils/decomposedfs/recycle_test.go +++ b/pkg/storage/utils/decomposedfs/recycle_test.go @@ -39,7 +39,7 @@ var _ = Describe("Recycle", func() { BeforeEach(func() { var err error - env, err = helpers.NewTestEnv() + env, err = helpers.NewTestEnv(nil) Expect(err).ToNot(HaveOccurred()) }) diff --git a/pkg/storage/utils/decomposedfs/spaces_test.go b/pkg/storage/utils/decomposedfs/spaces_test.go index 1543d647a62..d68bcac7671 100644 --- a/pkg/storage/utils/decomposedfs/spaces_test.go +++ b/pkg/storage/utils/decomposedfs/spaces_test.go @@ -35,7 +35,7 @@ var _ = Describe("Create Spaces", func() { BeforeEach(func() { var err error - env, err = helpers.NewTestEnv() + env, err = helpers.NewTestEnv(nil) Expect(err).ToNot(HaveOccurred()) env.PermissionsClient.On("CheckPermission", mock.Anything, mock.Anything, mock.Anything).Return(&permissionsv1beta1.CheckPermissionResponse{Status: &rpcv1beta1.Status{Code: rpcv1beta1.Code_CODE_OK}}, nil) }) @@ -67,4 +67,43 @@ var _ = Describe("Create Spaces", func() { Expect(resp.StorageSpace.SpaceType).To(Equal("project")) }) }) + Describe("Create Spaces with custom alias template", func() { + var ( + env *helpers.TestEnv + ) + + BeforeEach(func() { + var err error + env, err = helpers.NewTestEnv(map[string]interface{}{ + "personalspacealias_template": "{{.SpaceType}}/{{.Email.Local}}@{{.Email.Domain}}", + "generalspacealias_template": "{{.SpaceType}}:{{.SpaceName | replace \" \" \"-\" | upper}}", + }) + Expect(err).ToNot(HaveOccurred()) + env.PermissionsClient.On("CheckPermission", mock.Anything, mock.Anything, mock.Anything).Return(&permissionsv1beta1.CheckPermissionResponse{Status: &rpcv1beta1.Status{Code: rpcv1beta1.Code_CODE_OK}}, nil) + }) + + AfterEach(func() { + if env != nil { + env.Cleanup() + } + }) + Context("during login", func() { + It("personal space is created with custom alias", func() { + resp, err := env.Fs.ListStorageSpaces(env.Ctx, nil) + Expect(err).ToNot(HaveOccurred()) + Expect(len(resp)).To(Equal(1)) + Expect(string(resp[0].Opaque.GetMap()["spaceAlias"].Value)).To(Equal("personal/username@_unknown")) + }) + }) + Context("creating a space", func() { + It("project space is created with custom alias", func() { + resp, err := env.Fs.CreateStorageSpace(env.Ctx, &provider.CreateStorageSpaceRequest{Name: "Mission to Venus", Type: "project"}) + Expect(err).ToNot(HaveOccurred()) + Expect(resp.Status.Code).To(Equal(rpcv1beta1.Code_CODE_OK)) + Expect(resp.StorageSpace).ToNot(Equal(nil)) + Expect(string(resp.StorageSpace.Opaque.Map["spaceAlias"].Value)).To(Equal("project:MISSION-TO-VENUS")) + + }) + }) + }) }) diff --git a/pkg/storage/utils/decomposedfs/testhelpers/helpers.go b/pkg/storage/utils/decomposedfs/testhelpers/helpers.go index d441ced6850..95817666198 100644 --- a/pkg/storage/utils/decomposedfs/testhelpers/helpers.go +++ b/pkg/storage/utils/decomposedfs/testhelpers/helpers.go @@ -64,20 +64,27 @@ type TestEnv struct { // /dir1/ // /dir1/file1 // /dir1/subdir1/ -func NewTestEnv() (*TestEnv, error) { +// +// The default config can be overridden by providing the strings to override +// via map as a parameter +func NewTestEnv(config map[string]interface{}) (*TestEnv, error) { tmpRoot, err := helpers.TempDir("reva-unit-tests-*-root") if err != nil { return nil, err } - - config := map[string]interface{}{ + defaultConfig := map[string]interface{}{ "root": tmpRoot, "treetime_accounting": true, "treesize_accounting": true, "share_folder": "/Shares", "user_layout": "{{.Id.OpaqueId}}", } - o, err := options.New(config) + // make it possible to override single config values + for k, v := range config { + defaultConfig[k] = v + } + + o, err := options.New(defaultConfig) if err != nil { return nil, err }