Skip to content
Snippets Groups Projects
Commit cf5b9cbb authored by Danis Kirasirov's avatar Danis Kirasirov
Browse files

Добавлен тест

parent 2756cee3
No related branches found
No related tags found
No related merge requests found
......@@ -169,6 +169,66 @@ func TestSetup_InstallCollections(t *testing.T) {
}
}
func TestSetup_UninstallCollections(t *testing.T) {
t.Run("Success", func(t *testing.T) {
svc := mockscollections.NewCollections(t)
svc.On("Delete", mock.Anything, "sp", "env", "coll").Return(nil).Once()
setup := NewSetup(&content.Content{Collections: svc}, "sp", "env", nil)
setup.Config.AddCollection(&collections.Collection{ID: "coll"}, DeleteCollection())
deleted, err := setup.UninstallCollections(context.Background())
require.NoError(t, err, "Метод должен совершить запрос на удаление коллекции без ошибок")
require.ElementsMatch(t, []string{"coll"}, deleted, "Результатом должен быть список удаленных коллекций")
})
t.Run("Without collections", func(t *testing.T) {
setup := NewSetup(nil, "sp", "env", nil)
deleted, err := setup.UninstallCollections(context.Background())
require.NoError(t, err)
require.Empty(t, deleted, "При отсутствии коллекций, не должно быть вызовов к сервису")
})
t.Run("DeleteFn return false", func(t *testing.T) {
setup := NewSetup(nil, "sp", "env", nil).WithRemove(false)
setup.Config.AddCollection(&collections.Collection{ID: "coll"}, DeleteCollectionIfRemove())
deleted, err := setup.UninstallCollections(context.Background())
require.NoError(t, err)
require.Empty(t, deleted, "Удаление не происходит, если не выполняется установленное опцией условие")
})
t.Run("DeleteFn return err", func(t *testing.T) {
setup := NewSetup(nil, "sp", "env", nil).WithRemove(false)
setup.Config.AddCollection(&collections.Collection{ID: "coll"}, func(c *CollectionConfig) {
c.DeleteFn = func(_ *Setup, _ *collections.Collection) (bool, error) { return false, errors.New("some err") }
})
deleted, err := setup.UninstallCollections(context.Background())
require.ErrorContains(t, err, "some err", "Метод должен возвращать ошибку, возникшую в функции DeleteFn")
require.Empty(t, deleted)
})
t.Run("Delete error", func(t *testing.T) {
svc := mockscollections.NewCollections(t)
svc.On("Delete", mock.Anything, "sp", "env", "coll").Return(errors.New("some err")).Once()
setup := NewSetup(&content.Content{Collections: svc}, "sp", "env", nil).WithRemove(false)
setup.Config.AddCollection(&collections.Collection{ID: "coll"}, DeleteCollection())
deleted, err := setup.UninstallCollections(context.Background())
require.ErrorContains(t, err, "some err", "Метод должен возвращать ошибку, возникшую при удалении коллекции")
require.Empty(t, deleted)
})
t.Run("Collection not found", func(t *testing.T) {
svc := mockscollections.NewCollections(t)
svc.On("Delete", mock.Anything, "sp", "env", "coll").Return(collections.ErrNotFound).Once()
setup := NewSetup(&content.Content{Collections: svc}, "sp", "env", nil).WithRemove(false)
setup.Config.AddCollection(&collections.Collection{ID: "coll"}, DeleteCollection())
deleted, err := setup.UninstallCollections(context.Background())
require.NoError(t, err, "some err", "В случае отсутствия коллекции ошибки быть не должно")
require.ElementsMatch(t, []string{"coll"}, deleted)
})
}
func TestOverwriteCollection(t *testing.T) {
tests := []struct {
name string
......
......@@ -287,7 +287,7 @@ func TestSetup_UninstallItems(t *testing.T) {
setup.Config.AddItem(&items.Item{CollectionID: "coll"}, DeleteItem())
err := setup.UninstallItems(context.Background(), nil)
require.NoError(t, err, "Метод должен совершить запрос на удаление записи из своей конфигурации без ошибок")
require.NoError(t, err, "Метод должен совершить запрос на удаление записи без ошибок")
})
t.Run("Without items", func(t *testing.T) {
setup := NewSetup(nil, "sp", "env", nil)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment