From bc1ee17a4987a3449b74792115b5b7781654e27d Mon Sep 17 00:00:00 2001
From: ko_oler <kooler89@gmail.com>
Date: Wed, 5 Jul 2023 13:26:51 +0300
Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=B2=D1=80=D0=B0=D1=82?=
 =?UTF-8?q?=20=D0=BD=D0=B5=D0=BF=D0=BE=D0=BB=D0=BD=D0=BE=D0=B3=D0=BE=20?=
 =?UTF-8?q?=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1?=
 =?UTF-8?q?=D0=BA=D0=B8=20=D0=BF=D1=80=D0=B8=20=D1=83=D1=81=D1=82=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BA=D0=B5=20=D1=80=D0=B0=D1=81=D1=88=D0=B8?=
 =?UTF-8?q?=D1=80=D0=B5=D0=BD=D0=B8=D0=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pkg/setup/collection.go      |  2 +-
 pkg/setup/collection_test.go | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/pkg/setup/collection.go b/pkg/setup/collection.go
index d61ba14d..aafcd172 100644
--- a/pkg/setup/collection.go
+++ b/pkg/setup/collection.go
@@ -113,7 +113,7 @@ func (s *Setup) InstallCollections(ctx context.Context) (err error) {
 				zap.Error(err),
 			)
 
-			return errors.WithErrors(ErrInstallCollections, err)
+			return errors.WithDetail(errors.Wrap(err, "failed to install collections"), "Возникла ошибка при миграции коллекций")
 		}
 	}
 
diff --git a/pkg/setup/collection_test.go b/pkg/setup/collection_test.go
index 433aa739..12ef2ec8 100644
--- a/pkg/setup/collection_test.go
+++ b/pkg/setup/collection_test.go
@@ -91,6 +91,23 @@ func TestSetup_InstallCollections(t *testing.T) {
 				assert.Contains(t, errors.GetDetail(err), "Возникла ошибка при настройке коллекции space(1)")
 			},
 		},
+		{
+			name:        "Fail to install collection on migrate",
+			collections: []*collections.Collection{{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}},
+			collectionsCall: func(svc *mockscollections.Collections) {
+				svc.On("Get", mock.Anything, "sp", "env", "1").Return(nil, errors.New("not found")).Once()
+				svc.On("Create", mock.Anything, &collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}).Return(&collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}, nil).Once()
+				svc.On("SetSchema", mock.Anything, "sp", "env", "1", schema.New("name", field.String())).Return(nil).Once()
+			},
+			envsCall: func(svc *envmocks.Environments) {
+				svc.On("Migrate", mock.Anything, "sp", "env", &environments.MigrateOptions{Wait: true}).Return(errors.New("migrate error")).Once()
+			},
+			wantErr: func(t *testing.T, err error) {
+				assert.Error(t, err)
+				assert.EqualError(t, err, "failed to install collections: migrate error")
+				assert.Contains(t, errors.GetDetail(err), "Возникла ошибка при миграции коллекций")
+			},
+		},
 	}
 
 	for _, tt := range tests {
-- 
GitLab