Skip to content
Snippets Groups Projects
Commit 6ad38a75 authored by ko_oler's avatar ko_oler
Browse files

правки по ПР:

- добавлено поле metadata в CollectionConfig
- добавлена опция SetSchemaMetadata
parent b83b003c
No related branches found
No related tags found
No related merge requests found
...@@ -23,6 +23,7 @@ type DeleteCollectionFn func(s *Setup, col *collections.Collection) bool ...@@ -23,6 +23,7 @@ type DeleteCollectionFn func(s *Setup, col *collections.Collection) bool
type CollectionConfig struct { type CollectionConfig struct {
collection *collections.Collection collection *collections.Collection
metadata map[string]string
UpdateFn UpdateCollectionFn UpdateFn UpdateCollectionFn
DeleteFn DeleteCollectionFn DeleteFn DeleteCollectionFn
} }
...@@ -80,6 +81,12 @@ func UpdateExistingCollection() CollectionsOption { ...@@ -80,6 +81,12 @@ func UpdateExistingCollection() CollectionsOption {
} }
} }
func SetSchemaMetadata(md map[string]string) CollectionsOption {
return func(c *CollectionConfig) {
c.metadata = md
}
}
func (s *Setup) InstallCollections(ctx context.Context) (err error) { func (s *Setup) InstallCollections(ctx context.Context) (err error) {
if len(s.Collections) == 0 { if len(s.Collections) == 0 {
return nil return nil
...@@ -164,11 +171,13 @@ func (s *Setup) InstallCollection(ctx context.Context, c CollectionConfig) (setS ...@@ -164,11 +171,13 @@ func (s *Setup) InstallCollection(ctx context.Context, c CollectionConfig) (setS
} }
func (s *Setup) checkSchemaMetadata(collection *collections.Collection, exist *collections.Collection) error { func (s *Setup) checkSchemaMetadata(collection *collections.Collection, exist *collections.Collection) error {
if collection.Schema.Metadata != nil {
if _, ok := collection.Schema.Metadata["extension"]; ok { if _, ok := collection.Schema.Metadata["extension"]; ok {
if _, ok := exist.Schema.Metadata["extension"]; !ok && !s.IsForce() { if _, ok := exist.Schema.Metadata["extension"]; !ok && !s.IsForce() {
return errors.WithHint(errors.New("fail to update collection"), "collection has the same id as extension's collection, change yours collection id") return errors.WithHint(errors.New("fail to update collection"), "collection has the same id as extension's collection, change yours collection id")
} }
} }
}
return nil return nil
} }
......
...@@ -22,6 +22,7 @@ func TestSetup_InstallCollections(t *testing.T) { ...@@ -22,6 +22,7 @@ func TestSetup_InstallCollections(t *testing.T) {
collections []*collections.Collection collections []*collections.Collection
collectionsCall func(svc *mockscollections.Collections) collectionsCall func(svc *mockscollections.Collections)
envsCall func(svc *envmocks.Environments) envsCall func(svc *envmocks.Environments)
co CollectionsOption
wantErr func(t *testing.T, err error) wantErr func(t *testing.T, err error)
}{ }{
{ {
...@@ -105,6 +106,7 @@ func TestSetup_InstallCollections(t *testing.T) { ...@@ -105,6 +106,7 @@ func TestSetup_InstallCollections(t *testing.T) {
wantErr: func(t *testing.T, err error) { wantErr: func(t *testing.T, err error) {
assert.NoError(t, err) assert.NoError(t, err)
}, },
co: SetSchemaMetadata(map[string]string{"extension": "test-extension"}),
}, },
{ {
name: "Fail to update collection with the same id", name: "Fail to update collection with the same id",
...@@ -115,6 +117,7 @@ func TestSetup_InstallCollections(t *testing.T) { ...@@ -115,6 +117,7 @@ func TestSetup_InstallCollections(t *testing.T) {
wantErr: func(t *testing.T, err error) { wantErr: func(t *testing.T, err error) {
assert.Error(t, err) assert.Error(t, err)
}, },
co: SetSchemaMetadata(map[string]string{"extension": "test-extension"}),
}, },
} }
...@@ -130,7 +133,11 @@ func TestSetup_InstallCollections(t *testing.T) { ...@@ -130,7 +133,11 @@ func TestSetup_InstallCollections(t *testing.T) {
} }
s := NewSetup(&content.Content{Collections: c, Environments: e}, "sp", "env", nil) s := NewSetup(&content.Content{Collections: c, Environments: e}, "sp", "env", nil)
if tt.co != nil {
s.AddCollections(tt.collections, tt.co)
} else {
s.AddCollections(tt.collections) s.AddCollections(tt.collections)
}
tt.wantErr(t, s.InstallCollections(context.Background())) tt.wantErr(t, s.InstallCollections(context.Background()))
}) })
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment