Skip to content
Snippets Groups Projects
Select Git revision
  • 6ca8b34b86e4a7bbd94bb72da424dc590faaab5a
  • master default protected
  • refactor/PRXS-3053-Files
  • feature/PRXS-3143-3235-ReferenceOptions
  • feature/PRXS-3421-ImplementNewRefAPI
  • feature/PRXS-3143-LimitReferenceFields
  • feature/PRXS-3234-FeaturePruneIdents
  • feature/3149-LocaleCodeAsID-Feature
  • feature/PRXS-3383-CollectionsRankSortAPI
  • PRXS-3421-RecursiveReferences
  • feature/PRXS-3383-CollectionsSort
  • feature/3109-SerializeFeature
  • release/0.33
  • feature/3109-RecoverySchema
  • feature/3109-feature
  • fix/PRXS-3369-ValidateFields
  • refactor/PRXS-3306-MovePkgGroup1
  • refactor/6-pkg-refactor-expr
  • fix/PRXS-3360-TemplateBuilderPatch
  • feature/3293-MongoV2
  • feature/3272-GoVersionUp
  • v0.33.1
  • v0.32.0
  • v0.31.1
  • v0.31.0
  • v0.30.0
  • v0.29.0
  • v0.28.0
  • v0.27.0-alpha.1+16
  • v0.27.0-alpha.1+15
  • v0.27.0-alpha.1+14
  • v0.27.0-alpha.1+13
  • v0.27.0-alpha.1+12
  • v0.27.0-alpha.1+11
  • v0.27.0-alpha.1+10
  • v0.27.0-alpha.1+9
  • v0.27.0-alpha.1+8
  • v0.27.0-alpha.1+7
  • v0.27.0-alpha.1+6
  • v0.27.0-alpha.1+5
  • v0.27.0-alpha.1+4
41 results

server_test.go

Blame
  • server_test.go 3.40 KiB
    package extension
    
    import (
    	"context"
    	"reflect"
    	"strings"
    	"testing"
    
    	"git.perx.ru/perxis/perxis-go/pkg/errors"
    )
    
    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"},
    			},
    		},