kubelatte-ce
Форк от sbertech/kubelatte-ce
83 строки · 2.8 Кб
1package initmanager
2
3import (
4"context"
5"errors"
6"github.com/stretchr/testify/mock"
7"gitverse.ru/synapse/kubelatte/pkg/api/v1alpha1"
8"gitverse.ru/synapse/kubelatte/pkg/observability/logger/lib"
9"gitverse.ru/synapse/kubelatte/pkg/operator/controllers/clientset/mocks"
10"gitverse.ru/synapse/kubelatte/pkg/operator/utils"
11"gitverse.ru/synapse/kubelatte/pkg/util/env"
12"go.uber.org/zap"
13"testing"
14"time"
15)
16
17func TestInitManager_Start(t *testing.T) {
18lib.ZapLogger = zap.NewNop()
19env.KbltMutator = true
20defer func() { env.KbltMutator = false }()
21
22t.Parallel()
23t.Run("All_resources_got_test", func(t *testing.T) {
24clMock := mocks.NewV1Alpha1Interface(t)
25
26scopeMock := mocks.NewScopeInterface(t)
27triggerMock := mocks.NewTriggerInterface(t)
28templateMock := mocks.NewTemplateInterface(t)
29
30clMock.On("Scope", mock.Anything).Return(scopeMock).Maybe()
31clMock.On("Trigger", mock.Anything).Return(triggerMock).Maybe()
32clMock.On("Template", mock.Anything).Return(templateMock).Maybe()
33
34scopeMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.ScopeList{Items: []v1alpha1.Scope{{}}}, nil).Maybe()
35triggerMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.TriggerList{Items: []v1alpha1.Trigger{{}}}, nil).Maybe()
36templateMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.TemplateList{Items: []v1alpha1.Template{{}}}, nil).Maybe()
37
38utils.Cl = clMock
39
40m := NewInitManager(nil)
41if m.DoesTriggersExist() || m.DoesScopesExist() || m.DoesTemplatesExist() {
42t.Fatal("Wrong manager initialization")
43}
44
45ctx, cancel := context.WithCancel(context.Background())
46go func() {
47time.Sleep(4 * time.Second)
48cancel()
49}()
50
51m.Start(ctx)
52})
53
54t.Run("context_exit", func(t *testing.T) {
55clMock := mocks.NewV1Alpha1Interface(t)
56
57scopeMock := mocks.NewScopeInterface(t)
58triggerMock := mocks.NewTriggerInterface(t)
59templateMock := mocks.NewTemplateInterface(t)
60
61clMock.On("Scope", mock.Anything).Return(scopeMock).Maybe()
62clMock.On("Trigger", mock.Anything).Return(triggerMock).Maybe()
63clMock.On("Template", mock.Anything).Return(templateMock).Maybe()
64
65scopeMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.ScopeList{Items: []v1alpha1.Scope{{}}}, errors.New("")).Maybe()
66triggerMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.TriggerList{Items: []v1alpha1.Trigger{{}}}, errors.New("")).Maybe()
67templateMock.On("List", mock.Anything, mock.Anything).Return(&v1alpha1.TemplateList{Items: []v1alpha1.Template{{}}}, errors.New("")).Maybe()
68
69utils.Cl = clMock
70
71m := NewInitManager(nil)
72if m.DoesTriggersExist() || m.DoesScopesExist() || m.DoesTemplatesExist() {
73t.Fatal("Wrong manager initialization")
74}
75
76ctx, cancel := context.WithCancel(context.Background())
77go func() {
78time.Sleep(4 * time.Second)
79cancel()
80}()
81m.Start(ctx)
82})
83}
84