From 9ba5b0154b3506c380641fd12533b71b290f947e Mon Sep 17 00:00:00 2001 From: Semyon Krestyaninov <krestyaninov@perx.ru> Date: Mon, 31 Mar 2025 18:26:10 +0000 Subject: [PATCH] =?UTF-8?q?chore(core):=20=D0=A0=D0=B5=D1=84=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D1=82=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D0=B2:=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=B1=D1=8B=D1=82=D0=BE=D1=87=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2`AssertExpectations`=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B2=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BD=D1=8E=D1=8E?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=BA-=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue: #3003 --- logs/zap/buffered_write_syncer_test.go | 15 +- logs/zap/example_test.go | 5 +- .../middleware/caching_middleware_test.go | 33 +-- .../middleware/caching_middleware_test.go | 15 +- .../middleware/caching_middleware_test.go | 60 ++--- pkg/delivery/service/service_test.go | 3 +- .../middleware/caching_middleware_test.go | 33 +-- .../middleware/caching_middleware_test.go | 12 +- .../middleware/caching_middleware_test.go | 120 ++++------ .../middleware/caching_middleware_test.go | 15 +- .../middleware/caching_middleware_test.go | 15 +- pkg/operation/operation_test.go | 3 +- .../middleware/caching_middleware_test.go | 11 +- pkg/references/field_test.go | 17 +- .../middleware/caching_middleware_test.go | 18 +- pkg/roles/role_test.go | 23 +- pkg/setup/collection_test.go | 12 +- pkg/setup/setup_test.go | 157 +++---------- .../middleware/caching_middleware_test.go | 21 +- .../middleware/caching_middleware_test.go | 15 +- template/builder_test.go | 210 +++++++++++------- 21 files changed, 306 insertions(+), 507 deletions(-) diff --git a/logs/zap/buffered_write_syncer_test.go b/logs/zap/buffered_write_syncer_test.go index 073663ed..92de2812 100644 --- a/logs/zap/buffered_write_syncer_test.go +++ b/logs/zap/buffered_write_syncer_test.go @@ -13,7 +13,7 @@ import ( ) func TestBufferedWriteSyncer_Write(t *testing.T) { - service := &logmocks.Service{} + service := logmocks.NewService(t) service.On("Log", mock.Anything, mock.Anything). Return(nil). Run(func(args mock.Arguments) { @@ -33,11 +33,10 @@ func TestBufferedWriteSyncer_Write(t *testing.T) { err = ws.Stop() require.NoError(t, err) - service.AssertExpectations(t) } func TestBufferedWriteSyncer_Write_Concurrent(t *testing.T) { - service := &logmocks.Service{} + service := logmocks.NewService(t) service.On("Log", mock.Anything, mock.Anything). Return(nil). Run(func(args mock.Arguments) { @@ -60,11 +59,10 @@ func TestBufferedWriteSyncer_Write_Concurrent(t *testing.T) { wg.Wait() require.NoError(t, ws.Stop()) - service.AssertExpectations(t) } func TestBufferedWriteSyncer_Flush(t *testing.T) { - service := &logmocks.Service{} + service := logmocks.NewService(t) service.On("Log", mock.Anything, mock.Anything). Return(nil). Run(func(args mock.Arguments) { @@ -84,11 +82,10 @@ func TestBufferedWriteSyncer_Flush(t *testing.T) { require.NoError(t, ws.Stop()) - service.AssertExpectations(t) } func TestBufferedWriteSyncer_MaxBufferSize(t *testing.T) { - service := &logmocks.Service{} + service := logmocks.NewService(t) service.On("Log", mock.Anything, mock.Anything). Return(nil). Run(func(args mock.Arguments) { @@ -105,11 +102,10 @@ func TestBufferedWriteSyncer_MaxBufferSize(t *testing.T) { require.NoError(t, ws.Stop()) - service.AssertExpectations(t) } func TestBufferedWriteSyncer_FlushInterval(t *testing.T) { - service := &logmocks.Service{} + service := logmocks.NewService(t) service.On("Log", mock.Anything, mock.Anything). Return(nil). Run(func(args mock.Arguments) { @@ -127,5 +123,4 @@ func TestBufferedWriteSyncer_FlushInterval(t *testing.T) { time.Sleep(3 * time.Second) // ждем, пока сработает интервал require.NoError(t, ws.Stop()) - service.AssertExpectations(t) } diff --git a/logs/zap/example_test.go b/logs/zap/example_test.go index dc182fb0..90f7c015 100644 --- a/logs/zap/example_test.go +++ b/logs/zap/example_test.go @@ -45,7 +45,7 @@ func TestExample(t *testing.T) { }, } - service := &logmocks.Service{} + service := logmocks.NewService(t) service.On("Log", mock.Anything, mock.Anything). Return(nil). Run(func(args mock.Arguments) { @@ -60,7 +60,7 @@ func TestExample(t *testing.T) { }). Once() - usersService := &usersmocks.Users{} + usersService := usersmocks.NewUsers(t) usersService.On("GetByIdentity", mock.Anything, "74d90aaf").Return(user, nil).Once() factory := auth.PrincipalFactory{Users: usersService} @@ -93,5 +93,4 @@ func TestExample(t *testing.T) { err := ws.Stop() require.NoError(t, err) - service.AssertExpectations(t) } diff --git a/pkg/clients/middleware/caching_middleware_test.go b/pkg/clients/middleware/caching_middleware_test.go index 821d2cb2..4ea40c58 100644 --- a/pkg/clients/middleware/caching_middleware_test.go +++ b/pkg/clients/middleware/caching_middleware_test.go @@ -29,7 +29,7 @@ func TestClientsCache(t *testing.T) { ctx := context.Background() t.Run("Get from cache", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -48,11 +48,10 @@ func TestClientsCache(t *testing.T) { assert.Equal(t, v2, v3, "Ожидается получение объекта из кэша при запросе по ClientID.") assert.NotSame(t, v2, v3) - cs.AssertExpectations(t) }) t.Run("GetBy from cache", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -71,11 +70,10 @@ func TestClientsCache(t *testing.T) { assert.Equal(t, v2, v3, "Ожидается получение объекта из кэша, после запроса Get.") assert.NotSame(t, v2, v3) - cs.AssertExpectations(t) }) t.Run("List", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -89,13 +87,12 @@ func TestClientsCache(t *testing.T) { assert.Equal(t, vl1[0], vl2[0], "Ожидается получение объектов из кэша, после повторного запроса.") assert.NotSame(t, vl1[0], vl2[0]) - cs.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After Update", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -146,11 +143,10 @@ func TestClientsCache(t *testing.T) { assert.Equal(t, v4, v5, "Ожидается что после обновления объект был удален из кеша и после запроса Get в кеш попал объект запрошенный заново из сервиса.") assert.NotSame(t, v4, v5) - cs.AssertExpectations(t) }) t.Run("After Update(List)", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -176,11 +172,10 @@ func TestClientsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидается получение объектов из кэша, после повторного запроса.") - cs.AssertExpectations(t) }) t.Run("After Delete", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -229,11 +224,10 @@ func TestClientsCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается что после удаление из хранилища объекты были удалены из кэша.") - cs.AssertExpectations(t) }) t.Run("After Delete(List)", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -258,11 +252,10 @@ func TestClientsCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается что после удаление из хранилища объекты были удалены из кэша.") - cs.AssertExpectations(t) }) t.Run("After Create", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -288,11 +281,10 @@ func TestClientsCache(t *testing.T) { require.NoError(t, err) assert.Len(t, vl3, 2, "Ожидается что после создания нового объекта кеш будет очищен и объекты запрошены заново из сервиса.") - cs.AssertExpectations(t) }) t.Run("After Enable", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -342,11 +334,10 @@ func TestClientsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидается что после активации объекта, кеш будет очищен и объекты будут запрошены заново из сервиса.") - cs.AssertExpectations(t) }) t.Run("After Enable(List)", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -373,11 +364,10 @@ func TestClientsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидается что после активации объекта, кеш будет очищен и объекты будут запрошены заново из сервиса.") - cs.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - cs := &csmocks.Clients{} + cs := csmocks.NewClients(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -399,7 +389,6 @@ func TestClientsCache(t *testing.T) { assert.Equal(t, v2, v3) assert.NotSame(t, v2, v3) - cs.AssertExpectations(t) }) }) } diff --git a/pkg/collaborators/middleware/caching_middleware_test.go b/pkg/collaborators/middleware/caching_middleware_test.go index 6b96d0a8..2ba2d20c 100644 --- a/pkg/collaborators/middleware/caching_middleware_test.go +++ b/pkg/collaborators/middleware/caching_middleware_test.go @@ -29,7 +29,7 @@ func TestCollaboratorsCache(t *testing.T) { ctx := context.Background() t.Run("Get from cache", func(t *testing.T) { - cs := &csmocks.Collaborators{} + cs := csmocks.NewCollaborators(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -42,11 +42,10 @@ func TestCollaboratorsCache(t *testing.T) { require.NoError(t, err) assert.Equal(t, spaceRole, rl) - cs.AssertExpectations(t) }) t.Run("ListCollaborators from cache", func(t *testing.T) { - cs := &csmocks.Collaborators{} + cs := csmocks.NewCollaborators(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -59,11 +58,10 @@ func TestCollaboratorsCache(t *testing.T) { assert.Equal(t, v1[0], v2[0], "Ожидается получение объектов из кэша при повторном запросе.") assert.NotSame(t, v1[0], v2[0]) - cs.AssertExpectations(t) }) t.Run("ListSpaces from cache", func(t *testing.T) { - cs := &csmocks.Collaborators{} + cs := csmocks.NewCollaborators(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -76,12 +74,11 @@ func TestCollaboratorsCache(t *testing.T) { assert.Equal(t, v1[0], v2[0], "Ожидается получение объектов из кэша при повторном запросе.") assert.NotSame(t, v1[0], v2[0]) - cs.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After Remove", func(t *testing.T) { - cs := &csmocks.Collaborators{} + cs := csmocks.NewCollaborators(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -134,11 +131,10 @@ func TestCollaboratorsCache(t *testing.T) { assert.EqualError(t, err, "not found", "Ожидается удаление данных из кеша, и получение ошибки от сервиса") assert.Nil(t, ls) - cs.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - cs := &csmocks.Collaborators{} + cs := csmocks.NewCollaborators(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(cs) @@ -191,7 +187,6 @@ func TestCollaboratorsCache(t *testing.T) { assert.EqualError(t, err, "not found", "Ожидается удаление данных из кеша, и получение ошибки от сервиса") assert.Nil(t, ls) - cs.AssertExpectations(t) }) }) diff --git a/pkg/collections/middleware/caching_middleware_test.go b/pkg/collections/middleware/caching_middleware_test.go index 24646008..d5387b82 100644 --- a/pkg/collections/middleware/caching_middleware_test.go +++ b/pkg/collections/middleware/caching_middleware_test.go @@ -33,8 +33,8 @@ func TestCollections_Cache(t *testing.T) { ctx := context.Background() t.Run("Get from cache", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -54,13 +54,11 @@ func TestCollections_Cache(t *testing.T) { assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.") assert.NotSame(t, v3, v2) - env.AssertExpectations(t) - col.AssertExpectations(t) }) t.Run("Get from cache(by Alias)", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -80,13 +78,11 @@ func TestCollections_Cache(t *testing.T) { assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.") assert.NotSame(t, v3, v2) - env.AssertExpectations(t) - col.AssertExpectations(t) }) t.Run("Get from cache with options", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -100,8 +96,6 @@ func TestCollections_Cache(t *testing.T) { _, err := svc.Get(ctx, spaceID, envID, colID, []*collections.GetOptions{{DisableSchemaIncludes: true}}...) require.NoError(t, err) - env.AssertExpectations(t) - col.AssertExpectations(t) }) //t.Run("List from cache", func(t *testing.T) { @@ -131,8 +125,8 @@ func TestCollections_Cache(t *testing.T) { //}) t.Run("List", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -145,14 +139,12 @@ func TestCollections_Cache(t *testing.T) { _, err = svc.List(ctx, spaceID, envID, nil) require.NoError(t, err) - env.AssertExpectations(t) - col.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After Update", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -198,13 +190,11 @@ func TestCollections_Cache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl1[0], vl2[0], "Ожидает что после обновления элементы будут запрошены заново из сервиса.") - env.AssertExpectations(t) - col.AssertExpectations(t) }) t.Run("After Update(by Alias)", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -254,13 +244,11 @@ func TestCollections_Cache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl1[0], vl4[0], "Ожидает что после обновления элементы будут запрошены заново из сервиса.") - env.AssertExpectations(t) - col.AssertExpectations(t) }) t.Run("After Set Schema", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -322,13 +310,11 @@ func TestCollections_Cache(t *testing.T) { require.NoError(t, err) assert.Equal(t, vl4[0], vl5[0], "Ожидается получение объектов из кеша по Alias окружения..") - env.AssertExpectations(t) - col.AssertExpectations(t) }) t.Run("After Delete", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -386,13 +372,11 @@ func TestCollections_Cache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидает что элемент был удален из кэша и получена ошибка от сервиса.") - env.AssertExpectations(t) - col.AssertExpectations(t) }) t.Run("After Create", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -437,13 +421,11 @@ func TestCollections_Cache(t *testing.T) { assert.Len(t, vl5, 2) assert.Equal(t, vl4[0], vl5[0], "Ожидается получение объектов из кеша по Alias окружения..") - env.AssertExpectations(t) - col.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - col := &colsmocks.Collections{} - env := &envmocks.Environments{} + col := colsmocks.NewCollections(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), env)(col) @@ -468,8 +450,6 @@ func TestCollections_Cache(t *testing.T) { assert.Equal(t, v3, v2) assert.NotSame(t, v3, v2) - env.AssertExpectations(t) - col.AssertExpectations(t) }) }) diff --git a/pkg/delivery/service/service_test.go b/pkg/delivery/service/service_test.go index 88bcc16f..61e151aa 100644 --- a/pkg/delivery/service/service_test.go +++ b/pkg/delivery/service/service_test.go @@ -36,7 +36,7 @@ func Test_deliveryService_ListLocales(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - localesService := &mocks.Locales{} + localesService := mocks.NewLocales(t) if tt.mockcall != nil { tt.mockcall(localesService) } @@ -51,7 +51,6 @@ func Test_deliveryService_ListLocales(t *testing.T) { } assert.NoError(t, err) assert.Equal(t, tt.wantLocales, gotLocales) - localesService.AssertExpectations(t) }) } } diff --git a/pkg/environments/middleware/caching_middleware_test.go b/pkg/environments/middleware/caching_middleware_test.go index cbac3963..261d288e 100644 --- a/pkg/environments/middleware/caching_middleware_test.go +++ b/pkg/environments/middleware/caching_middleware_test.go @@ -29,7 +29,7 @@ func TestEnvironmentsCache(t *testing.T) { ctx := context.Background() t.Run("Get from cache", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -48,11 +48,10 @@ func TestEnvironmentsCache(t *testing.T) { assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.") assert.NotSame(t, v3, v2) - envs.AssertExpectations(t) }) t.Run("Get from cache(by Alias)", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -71,11 +70,10 @@ func TestEnvironmentsCache(t *testing.T) { assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.") assert.NotSame(t, v3, v2) - envs.AssertExpectations(t) }) t.Run("List from cache", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -89,12 +87,11 @@ func TestEnvironmentsCache(t *testing.T) { assert.Equal(t, vl1[0], vl2[0], "Ожидается получение объектов из кэша.") assert.NotSame(t, vl1[0], vl2[0]) - envs.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After SetAlias", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -137,11 +134,10 @@ func TestEnvironmentsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидает что объекты будут удалены из кэша и запрошены из сервиса.") - envs.AssertExpectations(t) }) t.Run("After RemoveAlias", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -189,11 +185,10 @@ func TestEnvironmentsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидает что объекты будут удалены из кэша и запрошены из сервиса.") - envs.AssertExpectations(t) }) t.Run("After Update", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -244,11 +239,10 @@ func TestEnvironmentsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидает что объекты будут удалены из кэша и запрошены из сервиса.") - envs.AssertExpectations(t) }) t.Run("After Update(List)", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -272,11 +266,10 @@ func TestEnvironmentsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидает что объекты будут удалены из кэша и запрошены из сервиса.") - envs.AssertExpectations(t) }) t.Run("After Delete", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -324,11 +317,10 @@ func TestEnvironmentsCache(t *testing.T) { require.NoError(t, err) assert.Len(t, vl3, 0, "Ожидает что объекты будут удалены из кэша и запрошены из сервиса.") - envs.AssertExpectations(t) }) t.Run("After Create", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -352,11 +344,10 @@ func TestEnvironmentsCache(t *testing.T) { require.NoError(t, err) assert.Len(t, vl3, 2, "Ожидает что объекты были удалены из кэша и запрошены заново из сервиса.") - envs.AssertExpectations(t) }) t.Run("After size exceeded", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(1, ttl))(envs) @@ -379,11 +370,10 @@ func TestEnvironmentsCache(t *testing.T) { assert.NotSame(t, v2, v5, "Ожидает что объект был удален из кэша и будет запрошен заново из сервиса.") assert.Equal(t, v2, v5) assert.NotSame(t, v2, v5) - envs.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - envs := &mocksenvironments.Environments{} + envs := mocksenvironments.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(envs) @@ -405,7 +395,6 @@ func TestEnvironmentsCache(t *testing.T) { assert.Equal(t, v2, v3) assert.NotSame(t, v2, v3) - envs.AssertExpectations(t) }) }) } diff --git a/pkg/invitations/middleware/caching_middleware_test.go b/pkg/invitations/middleware/caching_middleware_test.go index 46d0a443..3f8150f3 100644 --- a/pkg/invitations/middleware/caching_middleware_test.go +++ b/pkg/invitations/middleware/caching_middleware_test.go @@ -30,7 +30,7 @@ func TestLocalesCache(t *testing.T) { ctx := context.Background() t.Run("Get from Cache", func(t *testing.T) { - inv := &invmocks.Invitations{} + inv := invmocks.NewInvitations(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(inv) @@ -44,12 +44,11 @@ func TestLocalesCache(t *testing.T) { assert.Equal(t, v1, v2, "Ожидается что при повторном запросе объект будет получен из кэша.") assert.NotSame(t, v1, v2) - inv.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("Get from Accept", func(t *testing.T) { - inv := &invmocks.Invitations{} + inv := invmocks.NewInvitations(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(inv) @@ -73,11 +72,10 @@ func TestLocalesCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается что после подтверждения объект будет удален из кэша и получена ошибка от сервиса.") - inv.AssertExpectations(t) }) t.Run("Get from Delete", func(t *testing.T) { - inv := &invmocks.Invitations{} + inv := invmocks.NewInvitations(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(inv) @@ -101,11 +99,10 @@ func TestLocalesCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается что после удаления кэша будет очищен и получена ошибка от сервиса.") - inv.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - inv := &invmocks.Invitations{} + inv := invmocks.NewInvitations(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(inv) @@ -129,7 +126,6 @@ func TestLocalesCache(t *testing.T) { assert.Equal(t, v2, v3) assert.NotSame(t, v2, v3) - inv.AssertExpectations(t) }) }) } diff --git a/pkg/items/middleware/caching_middleware_test.go b/pkg/items/middleware/caching_middleware_test.go index 2c3acd7b..3ff9aab7 100644 --- a/pkg/items/middleware/caching_middleware_test.go +++ b/pkg/items/middleware/caching_middleware_test.go @@ -34,8 +34,8 @@ func TestItemsCache(t *testing.T) { ctx := context.Background() t.Run("Get from cache", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -53,13 +53,11 @@ func TestItemsCache(t *testing.T) { assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.") require.NoError(t, err) - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("Get from cache(by Alias)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -78,13 +76,11 @@ func TestItemsCache(t *testing.T) { assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.") require.NoError(t, err) - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("GetPublished from cache", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -102,13 +98,11 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("GetPublished from cache(by Alias)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -126,8 +120,6 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("GetPublished from cache (with different locales)", func(t *testing.T) { @@ -136,8 +128,8 @@ func TestItemsCache(t *testing.T) { loc2 = "loc2" ) - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -167,14 +159,12 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.Equal(t, v2loc2, v3loc2, "Ожидается получение объекта c локализацией loc2 из кеша, при запросе того же объекта по ID окружения.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After Update(Get)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -201,13 +191,11 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после обновления и получение его заново из сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Archive(Get)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -234,13 +222,11 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после архивации и получение из сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Publish(Get)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -266,13 +252,11 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после публикации и получение заново из сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Delete", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -306,13 +290,11 @@ func TestItemsCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается удаление из кэша после удаления объекта и получение ошибки от сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Unpublish(Get)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -339,13 +321,11 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение заново из сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After CheckoutRevision(Get)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -372,13 +352,11 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после смены версии и получение из сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Publish(Get by Alias)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -405,13 +383,11 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после публикации и получение из сервиса по alias окружения.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Update(Get by Alias)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -438,13 +414,11 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша при обновлении и получение из сервиса по alias окружения.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Unpublish(Get by Alias)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -471,13 +445,11 @@ func TestItemsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение из сервиса по alias окружения.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Update(GetPublished)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -512,13 +484,11 @@ func TestItemsCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается удаление объекта из кэша по alias окружения после его обновления и получение ошибки от сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Archive(GetPublished)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -553,13 +523,11 @@ func TestItemsCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается удаление объекта из кэша по alias окружения после его архивации и получение ошибки от сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Delete(GetPublished)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -594,13 +562,11 @@ func TestItemsCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается очистка кеша по alias окружения после удаления объекта и получение ошибки от сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Unpublish(GetPublished)", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -635,13 +601,11 @@ func TestItemsCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается удаление объекта из кэша по alias окружения после снятия с публикации и получение ошибки от сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After Unpublish by Alias", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -683,13 +647,11 @@ func TestItemsCache(t *testing.T) { require.Error(t, err) assert.EqualError(t, err, "not found", "Ожидается удаление объекта из кэша и получение ошибки от сервиса из сервиса.") - env.AssertExpectations(t) - itms.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - itms := &itmsmocks.Items{} - env := &envmocks.Environments{} + itms := itmsmocks.NewItems(t) + env := envmocks.NewEnvironments(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl), cache.NewMemoryCache(size, ttl), env)(itms) @@ -713,8 +675,6 @@ func TestItemsCache(t *testing.T) { assert.NotSame(t, v2, v3, "Ожидается удаление объекта из кэша и получение из сервиса.") assert.Equal(t, v2, v3) - env.AssertExpectations(t) - itms.AssertExpectations(t) }) }) } diff --git a/pkg/locales/middleware/caching_middleware_test.go b/pkg/locales/middleware/caching_middleware_test.go index 25b542c8..b6b68258 100644 --- a/pkg/locales/middleware/caching_middleware_test.go +++ b/pkg/locales/middleware/caching_middleware_test.go @@ -26,7 +26,7 @@ func TestLocalesCache(t *testing.T) { ctx := context.Background() t.Run("List from Cache", func(t *testing.T) { - loc := &locmocks.Locales{} + loc := locmocks.NewLocales(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(loc) @@ -40,12 +40,11 @@ func TestLocalesCache(t *testing.T) { assert.Equal(t, vl1[0], vl2[0], "Ожидается что при повторном запросе объекты будут получены из кэша.") assert.NotSame(t, vl1[0], vl2[0]) - loc.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After Delete", func(t *testing.T) { - loc := &locmocks.Locales{} + loc := locmocks.NewLocales(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(loc) @@ -70,11 +69,10 @@ func TestLocalesCache(t *testing.T) { require.NoError(t, err) assert.Len(t, vl3, 0, "Ожидается что после удаление объекты будут удалены из кеша.") - loc.AssertExpectations(t) }) t.Run("After Create", func(t *testing.T) { - loc := &locmocks.Locales{} + loc := locmocks.NewLocales(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(loc) @@ -103,11 +101,10 @@ func TestLocalesCache(t *testing.T) { require.NoError(t, err) assert.Len(t, vl3, 2, "Ожидается что после создания нового объекта данные будут удалены из кеша и получены из сервиса.") - loc.AssertExpectations(t) }) t.Run("After Update", func(t *testing.T) { - loc := &locmocks.Locales{} + loc := locmocks.NewLocales(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(loc) @@ -136,11 +133,10 @@ func TestLocalesCache(t *testing.T) { require.NoError(t, err) assert.Len(t, vl3, 2, "Ожидается что после обновления объекта данные будут удалены из кеша и получены из сервиса.") - loc.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - loc := &locmocks.Locales{} + loc := locmocks.NewLocales(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(loc) @@ -163,7 +159,6 @@ func TestLocalesCache(t *testing.T) { assert.Equal(t, vl2[0], vl3[0]) assert.NotSame(t, vl2[0], vl3[0]) - loc.AssertExpectations(t) }) }) } diff --git a/pkg/members/middleware/caching_middleware_test.go b/pkg/members/middleware/caching_middleware_test.go index ea09d522..afb37c2e 100644 --- a/pkg/members/middleware/caching_middleware_test.go +++ b/pkg/members/middleware/caching_middleware_test.go @@ -25,7 +25,7 @@ func TestMembersCache(t *testing.T) { ctx := context.Background() t.Run("Get from cache", func(t *testing.T) { - mbrs := &mocksmembers.Members{} + mbrs := mocksmembers.NewMembers(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(mbrs) mbrs.On("Get", mock.Anything, orgId, userId).Return(members.RoleOwner, nil).Once() @@ -37,12 +37,11 @@ func TestMembersCache(t *testing.T) { require.NoError(t, err) assert.Equal(t, v1, v2, "Ожидается получение объекта из кэша, после повторного запроса get.") - mbrs.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After Set", func(t *testing.T) { - mbrs := &mocksmembers.Members{} + mbrs := mocksmembers.NewMembers(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(mbrs) mbrs.On("Get", mock.Anything, orgId, userId).Return(members.RoleOwner, nil).Once() @@ -64,11 +63,10 @@ func TestMembersCache(t *testing.T) { v3, err := svc.Get(ctx, orgId, userId) require.NoError(t, err) assert.NotEqual(t, v2, v3, "Ожидается удаление объекта из кэша и получение заново из сервиса.") - mbrs.AssertExpectations(t) }) t.Run("After Remove", func(t *testing.T) { - mbrs := &mocksmembers.Members{} + mbrs := mocksmembers.NewMembers(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(mbrs) mbrs.On("Get", mock.Anything, orgId, userId).Return(members.RoleOwner, nil).Once() @@ -91,11 +89,10 @@ func TestMembersCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v2, v3, "Ожидается удаление объекта из кэша после удаления из хранилища и получение заново из сервиса.") - mbrs.AssertExpectations(t) }) t.Run("After RemoveAll", func(t *testing.T) { - mbrs := &mocksmembers.Members{} + mbrs := mocksmembers.NewMembers(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(mbrs) mbrs.On("Get", mock.Anything, orgId, userId).Return(members.RoleOwner, nil).Once() @@ -119,11 +116,10 @@ func TestMembersCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v2, v3, "Ожидается удаление объекта из кэша после удаления из хранилища и получение заново из сервиса.") - mbrs.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - mbrs := &mocksmembers.Members{} + mbrs := mocksmembers.NewMembers(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(mbrs) mbrs.On("Get", mock.Anything, orgId, userId).Return(members.RoleOwner, nil).Once() @@ -142,7 +138,6 @@ func TestMembersCache(t *testing.T) { v3, err := svc.Get(ctx, orgId, userId) require.NoError(t, err) assert.NotEqual(t, v2, v3, "Ожидается удаление объекта из кэша после истечения ttl и получение заново из сервиса.") - mbrs.AssertExpectations(t) }) }) } diff --git a/pkg/operation/operation_test.go b/pkg/operation/operation_test.go index b5973170..e34ae655 100644 --- a/pkg/operation/operation_test.go +++ b/pkg/operation/operation_test.go @@ -26,6 +26,7 @@ func TestOperation(t *testing.T) { assert.Less(t, time.Since(op.CreatedAt()), time.Second) op.SetRetention(time.Nanosecond) + time.Sleep(time.Nanosecond) assert.True(t, op.IsExpired()) op.SetCancelFunc(func() { @@ -35,7 +36,7 @@ func TestOperation(t *testing.T) { func TestOperation_Wait(t *testing.T) { var count int - client := &mocks.OperationServiceClient{} + client := mocks.NewOperationServiceClient(t) call := client.On("Get", mock.Anything, mock.Anything, mock.Anything) call.Run(func(args mock.Arguments) { r := args.Get(1).(*common.GetOperationRequest) diff --git a/pkg/organizations/middleware/caching_middleware_test.go b/pkg/organizations/middleware/caching_middleware_test.go index f9999cfc..0c1877cc 100644 --- a/pkg/organizations/middleware/caching_middleware_test.go +++ b/pkg/organizations/middleware/caching_middleware_test.go @@ -27,7 +27,7 @@ func TestOrganizationsCache(t *testing.T) { ctx := context.Background() t.Run("Get from cache", func(t *testing.T) { - orgs := &mocksorgs.Organizations{} + orgs := mocksorgs.NewOrganizations(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(orgs) orgs.On("Get", mock.Anything, orgId).Return(&organizations.Organization{ID: orgId, Name: "Organization"}, nil).Once() @@ -40,12 +40,11 @@ func TestOrganizationsCache(t *testing.T) { assert.Equal(t, v1, v2, "Ожидается получение объекта из кэша.") assert.NotSame(t, v1, v2) - orgs.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After Update", func(t *testing.T) { - orgs := &mocksorgs.Organizations{} + orgs := mocksorgs.NewOrganizations(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(orgs) orgs.On("Get", mock.Anything, orgId).Return(&organizations.Organization{ID: orgId, Name: "Organization"}, nil).Once() @@ -68,11 +67,10 @@ func TestOrganizationsCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, v2, v3, "Ожидается удаление объекта из кэша после обновления и получение заново из сервиса.") - orgs.AssertExpectations(t) }) t.Run("After Delete", func(t *testing.T) { - orgs := &mocksorgs.Organizations{} + orgs := mocksorgs.NewOrganizations(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(orgs) orgs.On("Get", mock.Anything, orgId).Return(&organizations.Organization{ID: orgId, Name: "Organization"}, nil).Once() @@ -98,7 +96,7 @@ func TestOrganizationsCache(t *testing.T) { }) t.Run("After TTL expired", func(t *testing.T) { - orgs := &mocksorgs.Organizations{} + orgs := mocksorgs.NewOrganizations(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(orgs) orgs.On("Get", mock.Anything, orgId).Return(&organizations.Organization{ID: orgId, Name: "Organization"}, nil).Once() @@ -121,7 +119,6 @@ func TestOrganizationsCache(t *testing.T) { assert.Equal(t, v2, v3) assert.NotSame(t, v2, v3) - orgs.AssertExpectations(t) }) }) } diff --git a/pkg/references/field_test.go b/pkg/references/field_test.go index ac9d5c03..d5d34226 100644 --- a/pkg/references/field_test.go +++ b/pkg/references/field_test.go @@ -170,26 +170,23 @@ func TestReferenceField_PreSave(t *testing.T) { rt := NewReferenceType() t.Run("Nil Value", func(t *testing.T) { - svc := &mocks.Items{} + svc := mocks.NewItems(t) itemCtx := &items.Context{Items: svc, SpaceID: "sp", EnvID: "env"} f := Field(nil) _, _, err := rt.PreSave(ctx, f, nil, itemCtx) require.NoError(t, err) - svc.AssertExpectations(t) }) t.Run("Nil Context", func(t *testing.T) { - svc := &mocks.Items{} f := Field(nil) ref := &Reference{ ID: "111", CollectionID: "media", } _, _, err := rt.PreSave(ctx, f, ref, nil) require.NoError(t, err) - svc.AssertExpectations(t) }) t.Run("Referenced Items Exist", func(t *testing.T) { t.Run("Correct", func(t *testing.T) { - svc := &mocks.Items{} + svc := mocks.NewItems(t) itemCtx := &items.Context{Items: svc, SpaceID: "sp", EnvID: "env"} f := Field(nil) @@ -198,10 +195,9 @@ func TestReferenceField_PreSave(t *testing.T) { } _, _, err := rt.PreSave(ctx, f, ref, itemCtx) require.NoError(t, err) - svc.AssertExpectations(t) }) t.Run("Item Not Found", func(t *testing.T) { - svc := &mocks.Items{} + svc := mocks.NewItems(t) itemCtx := &items.Context{Items: svc, SpaceID: "sp", EnvID: "env"} @@ -211,12 +207,11 @@ func TestReferenceField_PreSave(t *testing.T) { } _, _, err := rt.PreSave(ctx, f, ref, itemCtx) require.NoError(t, err) - svc.AssertExpectations(t) }) }) t.Run("Allowed Types", func(t *testing.T) { t.Run("Correct", func(t *testing.T) { - svc := &mocks.Items{} + svc := mocks.NewItems(t) itemCtx := &items.Context{Items: svc, SpaceID: "sp", EnvID: "env"} @@ -228,10 +223,9 @@ func TestReferenceField_PreSave(t *testing.T) { _, _, err := rt.PreSave(ctx, f, ref, itemCtx) require.NoError(t, err) - svc.AssertExpectations(t) }) t.Run("Not Allowed", func(t *testing.T) { - svc := &mocks.Items{} + svc := mocks.NewItems(t) f := Field([]string{"cars", "motorbikes"}) itemCtx := &items.Context{Items: svc, SpaceID: "sp", EnvID: "env"} ref := &Reference{ @@ -240,7 +234,6 @@ func TestReferenceField_PreSave(t *testing.T) { _, _, err := rt.PreSave(ctx, f, ref, itemCtx) require.Error(t, err) assert.Equal(t, "usage of collection \"media\" not allowed", err.Error()) - svc.AssertExpectations(t) }) }) } diff --git a/pkg/roles/middleware/caching_middleware_test.go b/pkg/roles/middleware/caching_middleware_test.go index b9ac8ec8..6f741281 100644 --- a/pkg/roles/middleware/caching_middleware_test.go +++ b/pkg/roles/middleware/caching_middleware_test.go @@ -28,7 +28,7 @@ func TestRolesCache(t *testing.T) { ctx := context.Background() t.Run("Get from cache", func(t *testing.T) { - rl := &rsmocks.Roles{} + rl := rsmocks.NewRoles(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(rl) @@ -42,11 +42,10 @@ func TestRolesCache(t *testing.T) { assert.Equal(t, v1, v2, "Ожидается при повторном запросе получение объекта из кэша.") assert.NotSame(t, v1, v2) - rl.AssertExpectations(t) }) t.Run("List from cache", func(t *testing.T) { - rl := &rsmocks.Roles{} + rl := rsmocks.NewRoles(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(rl) @@ -60,12 +59,11 @@ func TestRolesCache(t *testing.T) { assert.Equal(t, vl1[0], vl2[0], "Ожидается при повторном запросе получение объектов из кэша.") assert.NotSame(t, vl1[0], vl2[0]) - rl.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After Update", func(t *testing.T) { - rl := &rsmocks.Roles{} + rl := rsmocks.NewRoles(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(rl) @@ -104,11 +102,10 @@ func TestRolesCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидается что кеш объектов был удален после обновления объекта.") - rl.AssertExpectations(t) }) t.Run("After Delete", func(t *testing.T) { - rl := &rsmocks.Roles{} + rl := rsmocks.NewRoles(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(rl) @@ -149,11 +146,10 @@ func TestRolesCache(t *testing.T) { assert.EqualError(t, err, "not found", "Ожидается что после удаления кеш объекта был удален и получена ошибка сервиса.") assert.Nil(t, vl3) - rl.AssertExpectations(t) }) t.Run("After Create", func(t *testing.T) { - rl := &rsmocks.Roles{} + rl := rsmocks.NewRoles(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(rl) @@ -178,11 +174,10 @@ func TestRolesCache(t *testing.T) { require.NoError(t, err) assert.Len(t, vl3, 2, "Ожидает что после создания нового объекта, кеш будет очищен и объекты запрошены заново из сервиса.") - rl.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - rl := &rsmocks.Roles{} + rl := rsmocks.NewRoles(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(rl) @@ -205,7 +200,6 @@ func TestRolesCache(t *testing.T) { assert.Equal(t, v2, v3) assert.NotSame(t, v2, v3) - rl.AssertExpectations(t) }) }) } diff --git a/pkg/roles/role_test.go b/pkg/roles/role_test.go index ca794b18..81f95a60 100644 --- a/pkg/roles/role_test.go +++ b/pkg/roles/role_test.go @@ -39,13 +39,6 @@ func TestRoleCanAccessEnvironment(t *testing.T) { name: "glob env in role test: e*", args: args{ ctx: context.Background(), - envscall: func(envsservice *mocksenvs.Environments) { - envsservice.On("Get", mock.Anything, mock.Anything, mock.Anything).Return(&environments.Environment{ - ID: "env1", - SpaceID: "space", - Aliases: []string{"master"}, - }, nil).Once() - }, role: &Role{ ID: "1", SpaceID: "space", @@ -60,13 +53,6 @@ func TestRoleCanAccessEnvironment(t *testing.T) { name: "glob env in role test: *n*", args: args{ ctx: context.Background(), - envscall: func(envsservice *mocksenvs.Environments) { - envsservice.On("Get", mock.Anything, mock.Anything, mock.Anything).Return(&environments.Environment{ - ID: "env1", - SpaceID: "space", - Aliases: []string{"master"}, - }, nil).Once() - }, role: &Role{ ID: "1", SpaceID: "space", @@ -123,13 +109,6 @@ func TestRoleCanAccessEnvironment(t *testing.T) { name: "glob env in role test: *", args: args{ ctx: context.Background(), - envscall: func(envsservice *mocksenvs.Environments) { - envsservice.On("Get", mock.Anything, mock.Anything, mock.Anything).Return(&environments.Environment{ - ID: "env1", - SpaceID: "space", - Aliases: []string{"master"}, - }, nil).Once() - }, role: &Role{ ID: "1", SpaceID: "space", @@ -164,7 +143,7 @@ func TestRoleCanAccessEnvironment(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - envsservice := &mocksenvs.Environments{} + envsservice := mocksenvs.NewEnvironments(t) if tt.args.envscall != nil { tt.args.envscall(envsservice) } diff --git a/pkg/setup/collection_test.go b/pkg/setup/collection_test.go index f1d9e4da..8e0537c7 100644 --- a/pkg/setup/collection_test.go +++ b/pkg/setup/collection_test.go @@ -112,9 +112,6 @@ func TestCollections_InstallCollections(t *testing.T) { 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", View: &collections.View{SpaceID: "sp", EnvID: "env", CollectionID: "3"}}).Return(&collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", View: &collections.View{SpaceID: "sp", EnvID: "env", CollectionID: "3"}}, nil).Once() }, - envsCall: func(svc *envmocks.Environments) { - svc.On("Migrate", mock.Anything, "sp", "env").Return(nil).Once() - }, wantErr: func(t *testing.T, err error) { assert.NoError(t, err) }, @@ -146,7 +143,7 @@ func TestCollections_InstallCollections(t *testing.T) { svc.On("SetSchema", mock.Anything, "sp", "env", "2", schema.New("name", field.String())).Return(nil).Once() }, envsCall: func(svc *envmocks.Environments) { - svc.On("Migrate", mock.Anything, "sp", "env").Return(nil).Twice() + svc.On("Migrate", mock.Anything, "sp", "env").Return(nil).Once() }, wantErr: func(t *testing.T, err error) { assert.NoError(t, err) @@ -172,9 +169,6 @@ func TestCollections_InstallCollections(t *testing.T) { svc.On("Get", mock.Anything, "sp", "env", "1").Return(&collections.Collection{ID: "1", SpaceID: "sp", EnvID: "env", View: &collections.View{SpaceID: "sp2", EnvID: environments.DefaultEnvironment, CollectionID: "2"}}, nil).Once() svc.On("Update", mock.Anything, &collections.Collection{ID: "1", SpaceID: "sp", EnvID: "env", View: &collections.View{SpaceID: "sp3", EnvID: environments.DefaultEnvironment, CollectionID: "3"}}).Return(nil).Once() }, - envsCall: func(svc *envmocks.Environments) { - svc.On("Migrate", mock.Anything, "sp", "env").Return(nil).Once() - }, wantErr: func(t *testing.T, err error) { assert.NoError(t, err) }, @@ -204,8 +198,8 @@ func TestCollections_InstallCollections(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - c := &mockscollections.Collections{} - e := &envmocks.Environments{} + c := mockscollections.NewCollections(t) + e := envmocks.NewEnvironments(t) if tt.collectionsCall != nil { tt.collectionsCall(c) } diff --git a/pkg/setup/setup_test.go b/pkg/setup/setup_test.go index ff73b745..fb191680 100644 --- a/pkg/setup/setup_test.go +++ b/pkg/setup/setup_test.go @@ -99,12 +99,11 @@ func TestSetupInstall(t *testing.T) { t.Run("Success, nothing to install", func(t *testing.T) { logger := zaptest.NewLogger(t, zaptest.WrapOptions()) - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := NewSetup(&content.Content{Spaces: spcMock}, spaceID, envID, logger) err := setup.Install(context.Background()) require.NoError(t, err) - spcMock.AssertExpectations(t) }) t.Run("Success, no force", func(t *testing.T) { @@ -160,7 +159,7 @@ func TestSetupInstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -177,12 +176,6 @@ func TestSetupInstall(t *testing.T) { require.NoError(t, err) require.False(t, setup.HasErrors()) - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - itmMock.AssertExpectations(t) - envMocks.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Success, update existing records", func(t *testing.T) { @@ -226,7 +219,7 @@ func TestSetupInstall(t *testing.T) { Return(nil). Times(len(itms)) - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -243,12 +236,6 @@ func TestSetupInstall(t *testing.T) { require.NoError(t, err) require.False(t, setup.HasErrors()) - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - itmMock.AssertExpectations(t) - envMocks.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Success, with force", func(t *testing.T) { @@ -285,7 +272,7 @@ func TestSetupInstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -302,11 +289,6 @@ func TestSetupInstall(t *testing.T) { require.NoError(t, err) require.False(t, setup.HasErrors()) - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - itmMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't install role, storage returns error", func(t *testing.T) { @@ -315,7 +297,7 @@ func TestSetupInstall(t *testing.T) { Return(nil, errors.New("can't get role")). Once() - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -328,8 +310,6 @@ func TestSetupInstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to install role") - rMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't install client, storage returns error", func(t *testing.T) { @@ -351,7 +331,7 @@ func TestSetupInstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -365,9 +345,6 @@ func TestSetupInstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to install client") - rMock.AssertExpectations(t) - clMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't get collection, storage returns error", func(t *testing.T) { @@ -400,7 +377,7 @@ func TestSetupInstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -415,10 +392,6 @@ func TestSetupInstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to install collection") - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't create collection, storage returns error", func(t *testing.T) { @@ -455,7 +428,7 @@ func TestSetupInstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -470,10 +443,6 @@ func TestSetupInstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to install collection") - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't update collection, storage returns error", func(t *testing.T) { @@ -503,7 +472,7 @@ func TestSetupInstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -518,10 +487,6 @@ func TestSetupInstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to install collection") - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't set schema, storage returns error", func(t *testing.T) { @@ -562,7 +527,7 @@ func TestSetupInstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -577,10 +542,6 @@ func TestSetupInstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to install collection") - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't migrate, storage returns error", func(t *testing.T) { @@ -626,7 +587,7 @@ func TestSetupInstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -642,10 +603,6 @@ func TestSetupInstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "migrate: can't migrate") - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't find action, storage returns error", func(t *testing.T) { @@ -693,7 +650,7 @@ func TestSetupInstall(t *testing.T) { Return(nil, errors.New("can't create item")). Once() - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -711,17 +668,11 @@ func TestSetupInstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to install item") - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - itmMock.AssertExpectations(t) - envMocks.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Success on retry when space not available", func(t *testing.T) { logger := zaptest.NewLogger(t, zaptest.WrapOptions()) - sp := &mocks.Spaces{} + sp := mocks.NewSpaces(t) sp.On("Get", mock.Anything, mock.Anything).Return(&spaces.Space{ID: spaceID, OrgID: "org", StateInfo: &spaces.StateInfo{State: spaces.StateMigration}}, nil).Twice() sp.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := NewSetup(&content.Content{Spaces: sp}, spaceID, envID, logger) @@ -730,12 +681,11 @@ func TestSetupInstall(t *testing.T) { require.NoError(t, err) - sp.AssertExpectations(t) }) t.Run("Error on retry", func(t *testing.T) { logger := zaptest.NewLogger(t, zaptest.WrapOptions()) - sp := &mocks.Spaces{} + sp := mocks.NewSpaces(t) sp.On("Get", mock.Anything, mock.Anything).Return(&spaces.Space{ID: spaceID, OrgID: "org", StateInfo: &spaces.StateInfo{State: spaces.StateMigration}}, nil).Twice() sp.On("Get", mock.Anything, mock.Anything).Return(nil, errors.New("some error")).Once() setup := NewSetup(&content.Content{Spaces: sp}, spaceID, envID, logger) @@ -743,7 +693,6 @@ func TestSetupInstall(t *testing.T) { require.Error(t, err, "в момент выполнения пришла ошибка отличная от 'space not available'") - sp.AssertExpectations(t) }) t.Run("WithoutWaitSpace", func(t *testing.T) { @@ -842,14 +791,13 @@ func TestSetupUninstall(t *testing.T) { t.Run("Success, nothing to uninstall", func(t *testing.T) { logger := zaptest.NewLogger(t, zaptest.WrapOptions()) - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := NewSetup(&content.Content{Spaces: spcMock}, spaceID, envID, logger) err := setup.Uninstall(context.Background()) require.NoError(t, err) - spcMock.AssertExpectations(t) }) @@ -886,7 +834,7 @@ func TestSetupUninstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -903,11 +851,6 @@ func TestSetupUninstall(t *testing.T) { require.NoError(t, err) require.False(t, setup.HasErrors()) - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - itmMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Remove, with clients NotFound error", func(t *testing.T) { @@ -943,7 +886,7 @@ func TestSetupUninstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -960,11 +903,6 @@ func TestSetupUninstall(t *testing.T) { require.NoError(t, err) require.False(t, setup.HasErrors()) - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - itmMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't uninstall clients, storage returns error", func(t *testing.T) { @@ -982,7 +920,7 @@ func TestSetupUninstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -998,10 +936,6 @@ func TestSetupUninstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to uninstall client") - rMock.AssertExpectations(t) - clMock.AssertExpectations(t) - spcMock.AssertExpectations(t) - }) t.Run("Can't uninstall role, storage returns error", func(t *testing.T) { @@ -1022,7 +956,7 @@ func TestSetupUninstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -1038,8 +972,6 @@ func TestSetupUninstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to uninstall role") - rMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't uninstall collections, storage returns error", func(t *testing.T) { @@ -1067,7 +999,7 @@ func TestSetupUninstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -1084,10 +1016,6 @@ func TestSetupUninstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to uninstall collection") - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't uninstall actions, storage returns error", func(t *testing.T) { @@ -1121,7 +1049,7 @@ func TestSetupUninstall(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -1138,14 +1066,12 @@ func TestSetupUninstall(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "failed to uninstall item") - itmMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Success on retry when space not available", func(t *testing.T) { logger := zaptest.NewLogger(t, zaptest.WrapOptions()) - sp := &mocks.Spaces{} + sp := mocks.NewSpaces(t) sp.On("Get", mock.Anything, mock.Anything).Return(&spaces.Space{ID: spaceID, OrgID: "org", StateInfo: &spaces.StateInfo{State: spaces.StateMigration}}, nil).Twice() sp.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() @@ -1155,13 +1081,12 @@ func TestSetupUninstall(t *testing.T) { require.NoError(t, err) - sp.AssertExpectations(t) }) t.Run("Error on retry", func(t *testing.T) { logger := zaptest.NewLogger(t, zaptest.WrapOptions()) - sp := &mocks.Spaces{} + sp := mocks.NewSpaces(t) sp.On("Get", mock.Anything, mock.Anything).Return(&spaces.Space{ID: spaceID, OrgID: "org", StateInfo: &spaces.StateInfo{State: spaces.StateMigration}}, nil).Twice() sp.On("Get", mock.Anything, mock.Anything).Return(nil, errors.New("some error")).Once() @@ -1193,7 +1118,7 @@ func TestSetupCheck(t *testing.T) { t.Run("Success, nothing to check", func(t *testing.T) { logger := zaptest.NewLogger(t, zaptest.WrapOptions()) - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := NewSetup(&content.Content{Spaces: spcMock}, spaceID, envID, logger) @@ -1201,7 +1126,6 @@ func TestSetupCheck(t *testing.T) { err := setup.Check(context.Background()) require.NoError(t, err) - spcMock.AssertExpectations(t) }) t.Run("Success", func(t *testing.T) { @@ -1237,7 +1161,7 @@ func TestSetupCheck(t *testing.T) { mock.MatchedBy(func(opt *items.FindOptions) bool { return opt.Regular && opt.Hidden && opt.Templates }), ).Return(getActions(), 0, nil).Once() - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -1253,11 +1177,6 @@ func TestSetupCheck(t *testing.T) { require.NoError(t, err) require.False(t, setup.HasErrors()) - rMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - clMock.AssertExpectations(t) - itmMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't get role, storage returns error", func(t *testing.T) { @@ -1266,7 +1185,7 @@ func TestSetupCheck(t *testing.T) { Return(nil, errors.New("can't get role")). Once() - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -1279,8 +1198,6 @@ func TestSetupCheck(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "role check error") - rMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't get client, storage returns error", func(t *testing.T) { @@ -1296,7 +1213,7 @@ func TestSetupCheck(t *testing.T) { Return(nil, errors.New("can't get client")). Once() - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -1310,9 +1227,6 @@ func TestSetupCheck(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "clients check error") - rMock.AssertExpectations(t) - clMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't get collection, storage returns error", func(t *testing.T) { @@ -1335,7 +1249,7 @@ func TestSetupCheck(t *testing.T) { Once() } - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -1350,10 +1264,6 @@ func TestSetupCheck(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "collections check error") - rMock.AssertExpectations(t) - clMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Can't get action, storage returns error", func(t *testing.T) { @@ -1383,7 +1293,7 @@ func TestSetupCheck(t *testing.T) { Return(nil, 0, nil). Once() - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() setup := newSetup(&content.Content{ @@ -1399,16 +1309,12 @@ func TestSetupCheck(t *testing.T) { require.Error(t, err) assert.ErrorContains(t, err, "items check error") - rMock.AssertExpectations(t) - clMock.AssertExpectations(t) - collsMock.AssertExpectations(t) - spcMock.AssertExpectations(t) }) t.Run("Success on retry when space is preparing", func(t *testing.T) { logger := zaptest.NewLogger(t, zaptest.WrapOptions()) - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(&spaces.Space{ID: spaceID, OrgID: "org", StateInfo: &spaces.StateInfo{State: spaces.StatePreparing}}, nil).Twice() spcMock.On("Get", mock.Anything, mock.Anything).Return(sps, nil).Once() @@ -1418,13 +1324,12 @@ func TestSetupCheck(t *testing.T) { require.NoError(t, err) - spcMock.AssertExpectations(t) }) t.Run("Error on retry", func(t *testing.T) { logger := zaptest.NewLogger(t, zaptest.WrapOptions()) - spcMock := &mocks.Spaces{} + spcMock := mocks.NewSpaces(t) spcMock.On("Get", mock.Anything, mock.Anything).Return(&spaces.Space{ID: spaceID, OrgID: "org", StateInfo: &spaces.StateInfo{State: spaces.StatePreparing}}, nil).Twice() spcMock.On("Get", mock.Anything, mock.Anything).Return(nil, errors.New("some error")).Once() diff --git a/pkg/spaces/middleware/caching_middleware_test.go b/pkg/spaces/middleware/caching_middleware_test.go index 0674c932..6fdb6df8 100644 --- a/pkg/spaces/middleware/caching_middleware_test.go +++ b/pkg/spaces/middleware/caching_middleware_test.go @@ -29,7 +29,7 @@ func TestRolesCache(t *testing.T) { ctx := context.Background() t.Run("Get from cache", func(t *testing.T) { - sp := &spmocks.Spaces{} + sp := spmocks.NewSpaces(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(sp) @@ -43,11 +43,10 @@ func TestRolesCache(t *testing.T) { assert.Equal(t, v1, v2, "Ожидается при повторном запросе получение объекта из кэша.") assert.NotSame(t, v1, v2) - sp.AssertExpectations(t) }) t.Run("List from cache", func(t *testing.T) { - sp := &spmocks.Spaces{} + sp := spmocks.NewSpaces(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(sp) @@ -61,12 +60,11 @@ func TestRolesCache(t *testing.T) { assert.Equal(t, vl1[0], vl2[0], "Ожидается при повторном запросе получение объектов из кэша.") assert.NotSame(t, vl1[0], vl2[0]) - sp.AssertExpectations(t) }) t.Run("Invalidate cache", func(t *testing.T) { t.Run("After Update", func(t *testing.T) { - sp := &spmocks.Spaces{} + sp := spmocks.NewSpaces(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(sp) @@ -105,11 +103,10 @@ func TestRolesCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидается что кеш объектов был удален после обновления объекта.") - sp.AssertExpectations(t) }) t.Run("After UpdateConfig", func(t *testing.T) { - sp := &spmocks.Spaces{} + sp := spmocks.NewSpaces(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(sp) @@ -148,11 +145,10 @@ func TestRolesCache(t *testing.T) { require.NoError(t, err) assert.NotEqual(t, vl2[0], vl3[0], "Ожидается что кеш объектов был удален после обновления объекта.") - sp.AssertExpectations(t) }) t.Run("After Delete", func(t *testing.T) { - sp := &spmocks.Spaces{} + sp := spmocks.NewSpaces(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(sp) @@ -191,11 +187,10 @@ func TestRolesCache(t *testing.T) { require.NoError(t, err) assert.Len(t, vl3, 0, "Ожидается что после удаления кеш объектов был удален.") - sp.AssertExpectations(t) }) t.Run("After Create", func(t *testing.T) { - sp := &spmocks.Spaces{} + sp := spmocks.NewSpaces(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(sp) @@ -222,11 +217,10 @@ func TestRolesCache(t *testing.T) { assert.Equal(t, vl2[0], vl3[0]) assert.NotSame(t, vl2[0], vl3[0]) - sp.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - sp := &spmocks.Spaces{} + sp := spmocks.NewSpaces(t) svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(sp) @@ -249,7 +243,6 @@ func TestRolesCache(t *testing.T) { assert.Equal(t, v2, v3) assert.NotSame(t, v2, v3) - sp.AssertExpectations(t) }) }) } diff --git a/pkg/users/middleware/caching_middleware_test.go b/pkg/users/middleware/caching_middleware_test.go index c5755407..73057030 100644 --- a/pkg/users/middleware/caching_middleware_test.go +++ b/pkg/users/middleware/caching_middleware_test.go @@ -26,7 +26,7 @@ func TestUsersCache(t *testing.T) { errNotFound := errors.NotFound(errors.New("not found")) t.Run("Get from cache", func(t *testing.T) { - usrs := &mocks.Users{} + usrs := mocks.NewUsers(t) ctx := context.Background() svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(usrs) @@ -46,11 +46,10 @@ func TestUsersCache(t *testing.T) { assert.Equal(t, v2, v3, "Ожидается получение объекта из кэша при запросе по Identity.") assert.NotSame(t, v2, v3) - usrs.AssertExpectations(t) }) t.Run("GetByIdentity from cache", func(t *testing.T) { - usrs := &mocks.Users{} + usrs := mocks.NewUsers(t) ctx := context.Background() svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(usrs) @@ -70,12 +69,11 @@ func TestUsersCache(t *testing.T) { assert.Equal(t, v2, v3, "Ожидается получение объекта из кэша при запросе по userID.") assert.NotSame(t, v2, v3) - usrs.AssertExpectations(t) }) t.Run("Invalidate Cache", func(t *testing.T) { t.Run("After Update", func(t *testing.T) { - usrs := &mocks.Users{} + usrs := mocks.NewUsers(t) ctx := context.Background() svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(usrs) @@ -106,11 +104,10 @@ func TestUsersCache(t *testing.T) { assert.Equal(t, v4, v3, "Ожидается получение нового обьекта из кеша.") assert.NotSame(t, v4, v3) - usrs.AssertExpectations(t) }) t.Run("After Delete", func(t *testing.T) { - usrs := &mocks.Users{} + usrs := mocks.NewUsers(t) ctx := context.Background() svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(usrs) @@ -140,11 +137,10 @@ func TestUsersCache(t *testing.T) { require.Error(t, err) assert.EqualErrorf(t, err, "not found", "Ожидается удаление объекта из кеша после удаления из хранилища и получение ошибки от сервиса.") - usrs.AssertExpectations(t) }) t.Run("After TTL expired", func(t *testing.T) { - usrs := &mocks.Users{} + usrs := mocks.NewUsers(t) ctx := context.Background() svc := CachingMiddleware(cache.NewMemoryCache(size, ttl))(usrs) @@ -169,7 +165,6 @@ func TestUsersCache(t *testing.T) { assert.Equal(t, v2, v3) assert.NotSame(t, v2, v3) - usrs.AssertExpectations(t) }) }) } diff --git a/template/builder_test.go b/template/builder_test.go index 128f7064..cd6a0807 100644 --- a/template/builder_test.go +++ b/template/builder_test.go @@ -28,7 +28,7 @@ func TestBuilder_Execute(t *testing.T) { want any wantErr bool - getCnt func() (cnt *content.Content, assertExpectations func(t *testing.T)) + getCnt func(t *testing.T) *content.Content }{ {name: "error", str: "hello {{ .a }}", data: "world", want: "", wantErr: true}, {name: "empty", str: "", data: "", want: "", wantErr: false}, @@ -36,90 +36,148 @@ func TestBuilder_Execute(t *testing.T) { {name: "#2", str: "{{ . }}", data: "world", want: "world", wantErr: false}, {name: "#3 ", str: "", data: "world", want: "", wantErr: false}, {name: "#4 ", str: "hello", data: "world", want: "hello", wantErr: false}, - {name: "lookup", SpaceID: "space", EnvID: "env", str: "hello, {{ lookup \"secrets.dev.key\" }}", data: "", want: "hello, Luk", wantErr: false, getCnt: func() (*content.Content, func(t *testing.T)) { - itemsSvc := &mocksitems.Items{} - itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "dev").Return(&items.Item{ - ID: "dev", - SpaceID: "space", - EnvID: "env", - CollectionID: "secrets", - Data: map[string]interface{}{ - "id": "dev", - "key": "Luk", - }, - }, nil).Once() - return &content.Content{Items: itemsSvc}, func(t *testing.T) { itemsSvc.AssertExpectations(t) } - }}, - {name: "lookup with slice", SpaceID: "space", EnvID: "env", str: "numbers {{ lookup \"secrets.dev.slice\" }}", data: "", want: "numbers [1 2 3]", wantErr: false, getCnt: func() (*content.Content, func(t *testing.T)) { - itemsSvc := &mocksitems.Items{} - itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "dev").Return(&items.Item{ - ID: "dev", - SpaceID: "space", - EnvID: "env", - CollectionID: "secrets", - Data: map[string]interface{}{ - "id": "dev", - "slice": []int{1, 2, 3}, - }, - }, nil).Once() - return &content.Content{Items: itemsSvc}, func(t *testing.T) { itemsSvc.AssertExpectations(t) } - }}, - {name: "lookup with empty Data", SpaceID: "space", EnvID: "env", str: "numbers {{ lookup \"secrets.dev.slice\" }}", data: "", want: "numbers <no value>", wantErr: false, getCnt: func() (*content.Content, func(t *testing.T)) { - itemsSvc := &mocksitems.Items{} - itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "dev").Return(&items.Item{ - ID: "dev", - SpaceID: "space", - EnvID: "env", - CollectionID: "secrets", - Data: map[string]interface{}{}, - }, nil).Once() - return &content.Content{Items: itemsSvc}, func(t *testing.T) { itemsSvc.AssertExpectations(t) } - }}, - {name: "lookup with incorrect field", SpaceID: "space", EnvID: "env", str: "hello {{ lookup \"secrets.dev.incorrect\" }}", data: "", want: "hello <no value>", wantErr: false, getCnt: func() (*content.Content, func(t *testing.T)) { - itemsSvc := &mocksitems.Items{} - itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "dev").Return(&items.Item{ - ID: "dev", - SpaceID: "space", - EnvID: "env", - CollectionID: "secrets", - Data: map[string]interface{}{ - "id": "dev", - "key": "1234", - }, - }, nil).Once() - return &content.Content{Items: itemsSvc}, func(t *testing.T) { itemsSvc.AssertExpectations(t) } - }}, - {name: "lookup not found", SpaceID: "space", EnvID: "env", str: "hello {{ lookup \"secrets.prod.pass\" }}", data: "", want: "", wantErr: true, getCnt: func() (*content.Content, func(t *testing.T)) { - itemsSvc := &mocksitems.Items{} - itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "prod").Return(nil, errors.New("not found")).Once() - return &content.Content{Items: itemsSvc}, func(t *testing.T) { itemsSvc.AssertExpectations(t) } - }}, + { + name: "lookup", + SpaceID: "space", + EnvID: "env", + str: "hello, {{ lookup \"secrets.dev.key\" }}", + data: "", + want: "hello, Luk", + wantErr: false, + getCnt: func(t *testing.T) *content.Content { + itemsSvc := mocksitems.NewItems(t) + itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "dev"). + Return(&items.Item{ + ID: "dev", + SpaceID: "space", + EnvID: "env", + CollectionID: "secrets", + Data: map[string]interface{}{ + "id": "dev", + "key": "Luk", + }, + }, nil).Once() + return &content.Content{Items: itemsSvc} + }, + }, + { + name: "lookup with slice", + SpaceID: "space", + EnvID: "env", + str: "numbers {{ lookup \"secrets.dev.slice\" }}", + data: "", + want: "numbers [1 2 3]", + wantErr: false, + getCnt: func(t *testing.T) *content.Content { + itemsSvc := mocksitems.NewItems(t) + itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "dev"). + Return(&items.Item{ + ID: "dev", + SpaceID: "space", + EnvID: "env", + CollectionID: "secrets", + Data: map[string]interface{}{ + "id": "dev", + "slice": []int{1, 2, 3}, + }, + }, nil).Once() + return &content.Content{Items: itemsSvc} + }, + }, + { + name: "lookup with empty Data", + SpaceID: "space", + EnvID: "env", + str: "numbers {{ lookup \"secrets.dev.slice\" }}", + data: "", + want: "numbers <no value>", + wantErr: false, + getCnt: func(t *testing.T) *content.Content { + itemsSvc := mocksitems.NewItems(t) + itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "dev"). + Return(&items.Item{ + ID: "dev", + SpaceID: "space", + EnvID: "env", + CollectionID: "secrets", + Data: map[string]interface{}{}, + }, nil).Once() + return &content.Content{Items: itemsSvc} + }, + }, + { + name: "lookup with incorrect field", + SpaceID: "space", + EnvID: "env", + str: "hello {{ lookup \"secrets.dev.incorrect\" }}", + data: "", + want: "hello <no value>", + wantErr: false, + getCnt: func(t *testing.T) *content.Content { + itemsSvc := mocksitems.NewItems(t) + itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "dev"). + Return(&items.Item{ + ID: "dev", + SpaceID: "space", + EnvID: "env", + CollectionID: "secrets", + Data: map[string]interface{}{ + "id": "dev", + "key": "1234", + }, + }, nil).Once() + return &content.Content{Items: itemsSvc} + }, + }, + { + name: "lookup not found", + SpaceID: "space", + EnvID: "env", + str: "hello {{ lookup \"secrets.prod.pass\" }}", + data: "", + want: "", + wantErr: true, + getCnt: func(t *testing.T) *content.Content { + itemsSvc := mocksitems.NewItems(t) + itemsSvc.On("Get", context.Background(), "space", "env", "secrets", "prod"). + Return(nil, errors.New("not found")).Once() + return &content.Content{Items: itemsSvc} + }, + }, {name: "lookup without itemID", SpaceID: "space", EnvID: "env", str: "hello {{ lookup \"secrets.pass\" }}", data: "", want: "", wantErr: true}, {name: "system#1", SpaceID: "space", str: "hello {{ system.SpaceID }}", data: "", want: "hello space", wantErr: false}, - {name: "system space", SpaceID: "space", getCnt: func() (cnt *content.Content, assertExpectations func(t *testing.T)) { - spsSvc := &spsmocks.Spaces{} + {name: "system space", SpaceID: "space", getCnt: func(t *testing.T) *content.Content { + spsSvc := spsmocks.NewSpaces(t) spsSvc.On("Get", context.Background(), "space").Return(&spaces.Space{Description: "description"}, nil).Once() - return &content.Content{Spaces: spsSvc}, func(t *testing.T) { spsSvc.AssertExpectations(t) } + return &content.Content{Spaces: spsSvc} }, str: "{{ system.Space.Description }}", want: "description", wantErr: false}, - {name: "system environment", SpaceID: "space", EnvID: "env", getCnt: func() (cnt *content.Content, assertExpectations func(t *testing.T)) { - envsSvc := &envsmocks.Environments{} + {name: "system environment", SpaceID: "space", EnvID: "env", getCnt: func(t *testing.T) *content.Content { + envsSvc := envsmocks.NewEnvironments(t) envsSvc.On("Get", context.Background(), "space", "env").Return(&environments.Environment{Aliases: []string{"master"}}, nil).Once() - return &content.Content{Environments: envsSvc}, func(t *testing.T) { envsSvc.AssertExpectations(t) } + return &content.Content{Environments: envsSvc} }, str: "{{ system.Environment.Aliases }}", want: "[master]", wantErr: false}, - {name: "system collection", SpaceID: "space", EnvID: "env", CollID: "col", getCnt: func() (cnt *content.Content, assertExpectations func(t *testing.T)) { - collsSvc := &colsmocks.Collections{} - collsSvc.On("Get", context.Background(), "space", "env", "col").Return(&collections.Collection{Name: "cars"}, nil).Once() - return &content.Content{Collections: collsSvc}, func(t *testing.T) { collsSvc.AssertExpectations(t) } - }, str: "{{ system.Collection.Name }}", want: "cars", wantErr: false}, + { + name: "system collection", + SpaceID: "space", + EnvID: "env", + CollID: "col", + getCnt: func(t *testing.T) *content.Content { + collsSvc := colsmocks.NewCollections(t) + collsSvc.On("Get", context.Background(), "space", "env", "col"). + Return(&collections.Collection{Name: "cars"}, nil).Once() + return &content.Content{Collections: collsSvc} + }, + str: "{{ system.Collection.Name }}", + want: "cars", + wantErr: false, + }, {name: "system without account", SpaceID: "space", str: "hello {{ system.Organization.Name }}", want: "", wantErr: true}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var cnt *content.Content if tt.getCnt != nil { - var checkFn func(*testing.T) - cnt, checkFn = tt.getCnt() - defer checkFn(t) + cnt = tt.getCnt(t) } b := &Builder{ @@ -187,7 +245,7 @@ func TestBuilder_ExecuteList(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - itemsSvc := &mocksitems.Items{} + itemsSvc := mocksitems.NewItems(t) if tt.itemsCall != nil { tt.itemsCall(itemsSvc) } @@ -205,7 +263,6 @@ func TestBuilder_ExecuteList(t *testing.T) { assert.NoError(t, err) } assert.Equal(t, tt.want, got) - itemsSvc.AssertExpectations(t) }) } } @@ -256,7 +313,7 @@ func TestBuilder_ExecuteMap(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - itemsSvc := &mocksitems.Items{} + itemsSvc := mocksitems.NewItems(t) if tt.itemsCall != nil { tt.itemsCall(itemsSvc) } @@ -274,7 +331,6 @@ func TestBuilder_ExecuteMap(t *testing.T) { assert.NoError(t, err) } assert.Equal(t, tt.want, got) - itemsSvc.AssertExpectations(t) }) } } -- GitLab