MCPcopy Create free account
hub / github.com/DoNewsCode/core / TestNewEsFactory

Function TestNewEsFactory

otes/dependency_test.go:32–147  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

30}
31
32func TestNewEsFactory(t *testing.T) {
33 if os.Getenv("ELASTICSEARCH_ADDR") == "" {
34 t.Skip("set env ELASTICSEARCH_ADDR to run TestNewEsFactory")
35 return
36 }
37 addrs := strings.Split(os.Getenv("ELASTICSEARCH_ADDR"), ",")
38 t.Run("normal construction", func(t *testing.T) {
39 esFactory, cleanup := provideEsFactory(&providersOption{})(factoryIn{
40 Conf: config.MapAdapter{"es": map[string]interface{}{
41 "default": map[string]interface{}{"url": addrs},
42 "alternative": map[string]interface{}{"url": addrs},
43 }},
44 Logger: log.NewNopLogger(),
45 Populator: Populator{},
46 })
47 def, err := esFactory.Make("default")
48 assert.NoError(t, err)
49 assert.NotNil(t, def)
50 alt, err := esFactory.Make("alternative")
51 assert.NoError(t, err)
52 assert.NotNil(t, alt)
53 assert.NotNil(t, cleanup)
54 cleanup()
55 })
56 t.Run("with options", func(t *testing.T) {
57 var calledConstructor bool
58 var calledConfig bool
59 esFactory, cleanup := provideEsFactory(
60
61 &providersOption{
62 clientConstructor: func(args ClientArgs) (*elastic.Client, error) {
63 calledConstructor = true
64 return newClient(args)
65 },
66 interceptor: func(name string, opt *Config) {
67 calledConfig = true
68 },
69 },
70 )(
71 factoryIn{
72 Conf: config.MapAdapter{"es": map[string]Config{
73 "default": {URL: addrs},
74 }},
75 Logger: log.NewNopLogger(),
76 Populator: Populator{},
77 },
78 )
79 def, err := esFactory.Make("default")
80 assert.NoError(t, err)
81 assert.NotNil(t, def)
82 assert.True(t, calledConstructor)
83 assert.True(t, calledConfig)
84 cleanup()
85 })
86
87 t.Run("should not connect to ES", func(t *testing.T) {
88 esFactory, cleanup := provideEsFactory(&providersOption{})(factoryIn{
89 Conf: config.MapAdapter{"es": map[string]interface{}{

Callers

nothing calls this directly

Calls 6

DispatchMethod · 0.95
provideEsFactoryFunction · 0.85
cleanupFuncType · 0.85
newClientFunction · 0.85
MakeMethod · 0.65
RunMethod · 0.45

Tested by

no test coverage detected