Skip to content
Snippets Groups Projects
Commit 9c4512b8 authored by Alena Petraki's avatar Alena Petraki
Browse files

Правки тестов

parent 633e8659
No related branches found
No related tags found
No related merge requests found
Subproject commit 5b9dd0ce22e8adbc759e76d9b4b5ba3423502c04
Subproject commit 81c967842f55811b459e455572703631712d7d86
package extension
// не актуальные тесты - плохие не понятно что тестировали
//func TestGetErrors(t *testing.T) {
//
// getOut := func(results ...*RequestResult) results { return &InstallResponse{Results: results} }
//
// tests := []struct {
// name string
// out results
// err error
// wrapErr error
// checkErr func(t *testing.T, err error)
// }{
// {
// name: "no errors",
// out: getOut(&RequestResult{State: RequestOK, Extension: "a"}),
// },
// {
// name: "no error",
// out: getOut(&RequestResult{State: RequestOK, Extension: "a"}),
// wrapErr: ErrInstall,
// },
// {
// name: "one errored result",
// out: getOut(&RequestResult{State: RequestError, Extension: "a", Error: "some err", Msg: "Ошибка"}),
// wrapErr: ErrInstall,
// checkErr: func(t *testing.T, err error) {
// assert.ErrorIs(t, err, ErrInstall)
// errs := errors.GetErrors(err)
// require.Len(t, errs, 1)
//
// extErr := errs[0]
// assert.Equal(t, "a", ExtensionFromError(extErr))
// assert.Equal(t, "some err", extErr.Error())
// assert.Equal(t, "Ошибка", errors.GetDetail(extErr))
// },
// },
// {
// name: "multiple results, some of them errored",
// out: getOut(
// &RequestResult{State: RequestError, Extension: "a", Error: "some err a", Msg: "Ошибка А"},
// &RequestResult{State: RequestOK, Extension: "b"},
// &RequestResult{State: RequestError, Extension: "c", Error: "some err c", Msg: "Ошибка С"},
// &RequestResult{State: RequestOK, Extension: "d"},
// ),
// wrapErr: ErrInstall,
// checkErr: func(t *testing.T, err error) {
// assert.ErrorIs(t, err, ErrInstall)
// errs := errors.GetErrors(err)
// require.Len(t, errs, 2)
//
// extErr1 := errs[0]
// assert.Equal(t, "a", ExtensionFromError(extErr1))
// assert.Equal(t, "some err a", extErr1.Error())
// assert.Equal(t, "Ошибка А", errors.GetDetail(extErr1))
//
// extErr2 := errs[1]
// assert.Equal(t, "c", ExtensionFromError(extErr2))
// assert.Equal(t, "some err c", extErr2.Error())
// assert.Equal(t, "Ошибка С", errors.GetDetail(extErr2))
// },
// },
// }
// for _, tt := range tests {
// t.Run(tt.name, func(t *testing.T) {
// err := getErrors(tt.out, tt.err, tt.wrapErr)
// if tt.checkErr != nil {
// require.Error(t, err)
// tt.checkErr(t, err)
// } else {
// require.NoError(t, err)
// }
// })
// }
//}
......@@ -21,31 +21,6 @@ const (
// NewActionsCollection - создает коллекцию для хранения действий расширений в пространстве
func NewActionsCollection(spaceID, envID string) *collections.Collection {
return &collections.Collection{
ID: ActionsCollectionID,
SpaceID: spaceID,
EnvID: envID,
Name: ActionsCollectionName,
Schema: getActionsSchema(),
Hidden: true,
}
}
func getEnumOpt(opts map[int32]string) []validate.EnumOpt {
keys := make([]string, 0, len(opts))
for _, k := range opts {
keys = append(keys, k)
}
sort.Strings(keys)
enum := make([]validate.EnumOpt, len(opts))
for i, n := range keys {
enum[i] = validate.EnumOpt{Name: n, Value: float64(i)}
}
return enum
}
func getActionsSchema() *schema.Schema {
sch := schema.New(
"extension", field.String(validate.Required()).SetTitle("Расширение").SetTextSearch(true),
"action", field.String(validate.Required()).SetTitle("Действия").SetTextSearch(true),
......@@ -102,7 +77,28 @@ func getActionsSchema() *schema.Schema {
sch.Field.UI.Options["subtitle"] = "action"
sch.Field.UI.Options["collection_icon"] = "SettingOutlined/RocketOutlined"
return sch
return &collections.Collection{
ID: ActionsCollectionID,
SpaceID: spaceID,
EnvID: envID,
Name: ActionsCollectionName,
Schema: sch,
Hidden: true,
}
}
func getEnumOpt(opts map[int32]string) []validate.EnumOpt {
keys := make([]string, 0, len(opts))
for _, k := range opts {
keys = append(keys, k)
}
sort.Strings(keys)
enum := make([]validate.EnumOpt, len(opts))
for i, n := range keys {
enum[i] = validate.EnumOpt{Name: n, Value: float64(i)}
}
return enum
}
// NewStatusCollection - создает коллекцию для хранения статусов расширений в пространстве
......
......@@ -20,7 +20,7 @@ type Server struct {
func NewServer(operation operation.Service, extensions ...Extension) *Server {
srv := &Server{
extensions: make(map[string]Extension, len(extensions)),
// todo: нужно как-то неявно создавать и регистрировать сервер операций
// todo: нужно как-то неявно создавать и регистрировать сервер операций - ?
operations: operation,
}
for _, s := range extensions {
......
......@@ -12,79 +12,7 @@ import (
"github.com/stretchr/testify/require"
)
// не актуальные тесты
// func TestGetResults(t *testing.T) {
//
// getDummyExtension := func(name string, wantErr ...bool) Extension {
// ext := &testServerExtension{name: name}
//
// if len(wantErr) > 0 {
// ext.err = errors.WithDetail(errors.New("some err"), "Ошибка")
// }
//
// return ext
// }
//
// tests := []struct {
// name string
// services []Extension
// extensions []string
// fn func(svc Extension) error
// want []*RequestResult
// }{
// {
// name: "one extension without errors",
// services: []Extension{getDummyExtension("a"), getDummyExtension("b")},
// extensions: []string{"a"},
// fn: func(svc Extension) error { return nil },
// want: []*RequestResult{
// {Extension: "a", State: RequestOK},
// },
// },
// {
// name: "multiple extensions without errors",
// services: []Extension{getDummyExtension("a"), getDummyExtension("b"), getDummyExtension("c")},
// extensions: []string{"a", "c"},
// fn: func(svc Extension) error { return nil },
// want: []*RequestResult{
// {Extension: "a", State: RequestOK},
// {Extension: "c", State: RequestOK},
// },
// },
// {
// name: "multiple extensions, one returns error",
// services: []Extension{getDummyExtension("a"), getDummyExtension("b"), getDummyExtension("c", true)},
// extensions: []string{"a", "c"},
// fn: func(svc Extension) error { return svc.Install(nil, nil) },
// want: []*RequestResult{
// {Extension: "a", State: RequestOK},
// {Extension: "c", State: RequestError, Error: "some err", Msg: "Ошибка\n"},
// },
// },
// {
// name: "multiple extensions, all return error",
// services: []Extension{getDummyExtension("a", true), getDummyExtension("b", true), getDummyExtension("c", true)},
// extensions: []string{"a", "b", "c"},
// fn: func(svc Extension) error { return svc.Install(nil, nil) },
// want: []*RequestResult{
// {Extension: "a", State: RequestError, Error: "some err", Msg: "Ошибка\n"},
// {Extension: "b", State: RequestError, Error: "some err", Msg: "Ошибка\n"},
// {Extension: "c", State: RequestError, Error: "some err", Msg: "Ошибка\n"},
// },
// },
// }
//
// for _, tt := range tests {
// t.Run(tt.name, func(t *testing.T) {
// srv := NewServer(tt.services...)
// if got := srv.getResults(tt.extensions, tt.fn); !reflect.DeepEqual(got, tt.want) {
// t.Errorf("getResults() = %v, want %v", got, tt.want)
// }
// })
// }
// }
//
// не подходит использование mock.Extension из-за возникающих циклических импортов
// Использование mock.Extension не подходит из-за возникающих циклических импортов
type testServerExtension struct {
err error
name string
......@@ -99,34 +27,33 @@ func (t testServerExtension) GetDescriptor() *ExtensionDescriptor {
}
}
func (t testServerExtension) Install(ctx context.Context, in *InstallRequest) error { return t.err }
func (t testServerExtension) Check(ctx context.Context, in *CheckRequest) error { return t.err }
func (t testServerExtension) Uninstall(ctx context.Context, in *UninstallRequest) error { return t.err }
func (t testServerExtension) Action(ctx context.Context, in *ActionRequest) (*ActionResponse, error) {
func (t testServerExtension) Install(_ context.Context, _ *InstallRequest) error { return t.err }
func (t testServerExtension) Check(_ context.Context, _ *CheckRequest) error { return t.err }
func (t testServerExtension) Uninstall(_ context.Context, _ *UninstallRequest) error { return t.err }
func (t testServerExtension) Action(_ context.Context, _ *ActionRequest) (*ActionResponse, error) {
return &ActionResponse{}, t.err
}
func TestServer_Action(t *testing.T) {
getDummyExtension := func(name string, wantErr ...bool) Extension {
func getDummyExtension(name string, wantErr ...string) Extension {
ext := &testServerExtension{name: name}
if len(wantErr) > 0 {
ext.err = errors.WithDetail(errors.New("some err"), "Ошибка")
ext.err = errors.WithDetail(errors.New(wantErr[0]), "Ошибка")
}
return ext
}
func TestServer_Action(t *testing.T) {
var tests = []struct {
name string
services Extension
extension Extension
in *ActionRequest
want *ActionResponse
wantErr string
}{
{
name: "GRPC",
services: getDummyExtension("test-extension"),
extension: getDummyExtension("test-extension"),
in: &ActionRequest{
Action: "grpc:///test-extension/test-action",
SpaceId: "sp",
......@@ -136,7 +63,7 @@ func TestServer_Action(t *testing.T) {
},
{
name: "invalid schema",
services: getDummyExtension("test-extension"),
extension: getDummyExtension("test-extension"),
in: &ActionRequest{
Action: "some:///space/env/coll",
SpaceId: "sp",
......@@ -147,7 +74,7 @@ func TestServer_Action(t *testing.T) {
},
{
name: "Deprecated call",
services: getDummyExtension("test-extension"),
extension: getDummyExtension("test-extension"),
in: &ActionRequest{
Action: "test-action",
SpaceId: "sp",
......@@ -158,7 +85,7 @@ func TestServer_Action(t *testing.T) {
},
{
name: "unknown extension",
services: getDummyExtension("test-extension"),
extension: getDummyExtension("test-extension"),
in: &ActionRequest{
Action: "grpc:///test-extension-2/test-action",
SpaceId: "sp",
......@@ -169,7 +96,7 @@ func TestServer_Action(t *testing.T) {
},
{
name: "Deprecated call, without extension",
services: getDummyExtension("test-extension"),
extension: getDummyExtension("test-extension"),
in: &ActionRequest{
Action: "test-action",
SpaceId: "sp",
......@@ -180,7 +107,7 @@ func TestServer_Action(t *testing.T) {
},
{
name: "Deprecated call, without action and extension)",
services: getDummyExtension("test-extension"),
extension: getDummyExtension("test-extension"),
in: &ActionRequest{
SpaceId: "sp",
EnvId: "env",
......@@ -192,7 +119,7 @@ func TestServer_Action(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
srv := NewServer(operation.NewDefaultService(), tt.services)
srv := NewServer(operation.NewDefaultService(), tt.extension)
got, err := srv.Action(context.Background(), tt.in)
if tt.wantErr != "" {
require.Error(t, err)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment