diff --git a/pkg/setup/collection.go b/pkg/setup/collection.go index db7a919e29aae3e1517739f4adedb00bc66f41ce..fcce47d62d6c5a7797e37d19a5b14d440cc0170e 100644 --- a/pkg/setup/collection.go +++ b/pkg/setup/collection.go @@ -19,11 +19,6 @@ var ( ErrUninstallCollections = errors.New("failed to uninstall collections") ) -// todo добавлено в релизе v0.0.16: временный флаг для установки метадаты во все коллекции расширений -const ( - _alwaysSetSchema = true -) - type CollectionsOption func(c *CollectionConfig) type UpdateCollectionFn func(s *Setup, exist, new *collections.Collection) (coll *collections.Collection, upd bool, setSchema bool, err error) type DeleteCollectionFn func(s *Setup, col *collections.Collection) (bool, error) @@ -90,7 +85,7 @@ func isMetadataExtensionEqual(s1, s2 *schema.Schema) bool { func DefaultUpdateCollectionStrategy() CollectionsOption { return func(c *CollectionConfig) { c.UpdateFn = func(s *Setup, exist, collection *collections.Collection) (*collections.Collection, bool, bool, error) { - if !_alwaysSetSchema && !s.IsForce() && !collection.IsView() && !exist.IsView() && !isMetadataExtensionEqual(collection.Schema, exist.Schema) { + if !s.IsForce() && !collection.IsView() && !exist.IsView() && !isMetadataExtensionEqual(collection.Schema, exist.Schema) { return nil, false, false, errors.WithDetailf(collections.ErrAlreadyExists, "Коллекция с идентификатором '%s' "+ "уже существует. Удалите ее или вызовите установку расширения с флагом Force", collection.ID) } @@ -107,7 +102,7 @@ func DefaultUpdateCollectionStrategy() CollectionsOption { update = update && *exist.View == *collection.View } - setSchema = !collection.IsView() && (_alwaysSetSchema || !reflect.DeepEqual(exist.Schema, collection.Schema)) + setSchema = !collection.IsView() && !reflect.DeepEqual(exist.Schema, collection.Schema) return collection, update, setSchema, nil } diff --git a/pkg/setup/collection_test.go b/pkg/setup/collection_test.go index 5edb94e1b00671264a82401a4c648fed5cc1405d..78f414db18545994d8a15789c617c5f20c27674b 100644 --- a/pkg/setup/collection_test.go +++ b/pkg/setup/collection_test.go @@ -122,18 +122,17 @@ func TestSetup_InstallCollections(t *testing.T) { assert.NoError(t, err) }, }, - //todo после удаления флага _alwaysSetSchema данный тест будет работать, сейчас он будет всегда падать, поэтому пока закомментирован - //{ - //name: "Fail to update user collection with same id as in extensions collection", - //collections: []*collections.Collection{{ID: "1", SpaceID: "sp", EnvID: "env", Schema: schema.New("name", field.String()).WithMetadata(extension.ExtensionMetadataKey, "test-extension")}}, - //collectionsCall: func(svc *mockscollections.Collections) { - // svc.On("Get", mock.Anything, "sp", "env", "1").Return(&collections.Collection{ID: "1", SpaceID: "sp", EnvID: "env", Schema: schema.New("name", field.String())}, nil).Once() - //}, - //wantErr: func(t *testing.T, err error) { - // assert.Error(t, err) - // assert.ErrorIs(t, err, collections.ErrAlreadyExists) - //}, - //}, + { + name: "Fail to update user collection with same id as in extensions collection", + collections: []*collections.Collection{{ID: "1", SpaceID: "sp", EnvID: "env", Schema: schema.New("name", field.String()).WithMetadata(extension.ExtensionMetadataKey, "test-extension")}}, + collectionsCall: func(svc *mockscollections.Collections) { + svc.On("Get", mock.Anything, "sp", "env", "1").Return(&collections.Collection{ID: "1", SpaceID: "sp", EnvID: "env", Schema: schema.New("name", field.String())}, nil).Once() + }, + wantErr: func(t *testing.T, err error) { + assert.Error(t, err) + assert.ErrorIs(t, err, collections.ErrAlreadyExists) + }, + }, { name: "Update user collection with same id as in extensions collection with force", collections: []*collections.Collection{{ID: "1", SpaceID: "sp", EnvID: "env", Schema: schema.New("name", field.String()).WithMetadata(extension.ExtensionMetadataKey, "test-extension")}}, diff --git a/pkg/setup/setup_test.go b/pkg/setup/setup_test.go index a4084a17859023c32edf90bd493d177176a7eef4..044d8294e6c7eb5cbdf28803c24064d39e3c7059 100644 --- a/pkg/setup/setup_test.go +++ b/pkg/setup/setup_test.go @@ -178,16 +178,10 @@ func TestSetupInstall(t *testing.T) { t.Run("Success, update existing records", func(t *testing.T) { envMocks := &environmentMock.Environments{} - //todo после удаления флага _alwaysSetSchema убрать лишний вызов - envMocks.On("Migrate", mock.Anything, spaceID, envID). - Return(nil).Once() - collsMock := &collectionMock.Collections{} collsMock.On("Get", mock.Anything, spaceID, envID, "coll1"). Return(&collections.Collection{ID: "coll1", SpaceID: spaceID, EnvID: envID, Schema: schema.New(), Name: "Коллекция старая"}, nil).Once() collsMock.On("Update", mock.Anything, &collections.Collection{ID: "coll1", SpaceID: spaceID, EnvID: envID, Schema: schema.New(), Name: "Коллекция"}).Return(nil).Once() - //todo после удаления флага _alwaysSetSchema убрать лишний вызов - collsMock.On("SetSchema", mock.Anything, "sp", "env", "coll1", schema.New()).Return(nil).Once() rMock := &rolesMock.Roles{} for _, role := range getRoles() { @@ -244,17 +238,10 @@ func TestSetupInstall(t *testing.T) { }) t.Run("Success, with force", func(t *testing.T) { - //todo после удаления флага _alwaysSetSchema убрать лишний вызов - envMocks := &environmentMock.Environments{} - envMocks.On("Migrate", mock.Anything, spaceID, envID). - Return(nil).Once() - collsMock := &collectionMock.Collections{} collsMock.On("Get", mock.Anything, spaceID, envID, "coll1"). Return(&collections.Collection{ID: "coll1", SpaceID: spaceID, EnvID: envID, Schema: schema.New(), Name: "Коллекция старая"}, nil).Once() collsMock.On("Update", mock.Anything, &collections.Collection{ID: "coll1", SpaceID: spaceID, EnvID: envID, Schema: schema.New(), Name: "Коллекция"}).Return(nil).Once() - //todo после удаления флага _alwaysSetSchema убрать лишний вызов - collsMock.On("SetSchema", mock.Anything, "sp", "env", "coll1", schema.New()).Return(nil).Once() rMock := &rolesMock.Roles{} for _, role := range getRoles() { @@ -289,8 +276,6 @@ func TestSetupInstall(t *testing.T) { Clients: clMock, Roles: rMock, Items: itmMock, - //todo после удаления флага _alwaysSetSchema убрать - Environments: envMocks, }, t) setup = setup.WithForce(true)