diff --git a/internal/cache/cache.go b/internal/cache/cache.go index 92231dae93..41c9e4a345 100644 --- a/internal/cache/cache.go +++ b/internal/cache/cache.go @@ -46,10 +46,7 @@ type cache struct { func New(opts ...Option) (cc Cache, err error) { c := new(cache) for _, opt := range append(defaultOpts, opts...) { - err = opt(c) - if err != nil { - return nil, err - } + opt(c) } switch c.cacher { case cacher.GACHE: diff --git a/internal/cache/cache_test.go b/internal/cache/cache_test.go index 6a056a2371..daf7e431cf 100644 --- a/internal/cache/cache_test.go +++ b/internal/cache/cache_test.go @@ -76,7 +76,7 @@ func TestNew(t *testing.T) { }, }, { - name: "return unknown error", + name: "return unknown error when type is unknown", args: args{ opts: []Option{WithType("unknown")}, }, @@ -84,6 +84,31 @@ func TestNew(t *testing.T) { err: errors.ErrInvalidCacherType, }, }, + { + name: "return cache when type is empty", + args: args{ + opts: []Option{WithType("")}, + }, + checkFunc: func(w want, got Cache, err error) error { + if err != nil { + return err + } + if got == nil { + return errors.New("got cache is nil") + } + + return nil + }, + }, + { + name: "return unknown error when type is dummy string", + args: args{ + opts: []Option{WithType("dummy")}, + }, + want: want{ + err: errors.ErrInvalidCacherType, + }, + }, } for _, test := range tests { diff --git a/internal/cache/option.go b/internal/cache/option.go index b33490e8f1..18136535f7 100644 --- a/internal/cache/option.go +++ b/internal/cache/option.go @@ -21,11 +21,10 @@ import ( "context" "github.com/vdaas/vald/internal/cache/cacher" - "github.com/vdaas/vald/internal/errors" "github.com/vdaas/vald/internal/timeutil" ) -type Option func(*cache) error +type Option func(*cache) var ( defaultOpts = []Option{ @@ -36,52 +35,45 @@ var ( ) func WithExpiredHook(f func(context.Context, string)) Option { - return func(c *cache) error { + return func(c *cache) { if f != nil { c.expiredHook = f } - return nil } } func WithType(mo string) Option { - return func(c *cache) error { + return func(c *cache) { if len(mo) == 0 { - return nil + return } - m := cacher.ToType(mo) - if m == cacher.Unknown { - return errors.ErrInvalidCacherType - } - c.cacher = m - return nil + + c.cacher = cacher.ToType(mo) } } func WithExpireDuration(dur string) Option { - return func(c *cache) error { + return func(c *cache) { if len(dur) == 0 { - return nil + return } d, err := timeutil.Parse(dur) if err != nil { - return nil + return } c.expireDur = d - return nil } } func WithExpireCheckDuration(dur string) Option { - return func(c *cache) error { + return func(c *cache) { if len(dur) == 0 { - return nil + return } d, err := timeutil.Parse(dur) if err != nil { - return nil + return } c.expireCheckDur = d - return nil } }