package service import ( "github.com/golang-jwt/jwt/v5" "github.com/redis/go-redis/v9" "github.com/stretchr/testify/assert" "go.uber.org/mock/gomock" "sync" "testing" "git.urec56.ru/urec/chat_back_go/config" "git.urec56.ru/urec/chat_back_go/internal/logger" mock_repository "git.urec56.ru/urec/chat_back_go/internal/repository/mocks" ) func Test_NewService(t *testing.T) { c := gomock.NewController(t) defer c.Finish() repo := mock_repository.NewMockRepo(c) log := logger.NewLogger(config.Config{Mode: "TEST"}) cfg := config.Config{} rdb := &redis.Client{} serv := NewService(repo, cfg, log, rdb) cache := &cacheService{l: log, r: rdb, storage: &sync.Map{}} auth := &authService{cfg: cfg.JWT, parser: jwt.NewParser(), l: log} user := &userService{ur: repo, auth: auth, l: log, cache: cache} expectedServ := &Service{ User: user, Auth: auth, Chat: &chatService{repo: repo, l: log}, Messages: &messageService{repo: repo, u: user, l: log}, } assert.EqualValues(t, expectedServ, serv) }