MCPcopy
hub / github.com/weaviate/weaviate / TestModulesProvider

Function TestModulesProvider

usecases/modules/modules_test.go:34–356  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

32)
33
34func TestModulesProvider(t *testing.T) {
35 t.Run("should register simple module", func(t *testing.T) {
36 // given
37 logger, _ := test.NewNullLogger()
38 modulesProvider := NewProvider(logger, config.Config{})
39 class := &models.Class{
40 Class: "ClassOne",
41 Vectorizer: "mod1",
42 }
43 schema := &models.Schema{
44 Classes: []*models.Class{class},
45 }
46 schemaGetter := getFakeSchemaGetter()
47 modulesProvider.SetSchemaGetter(schemaGetter)
48
49 params := map[string]interface{}{}
50 params["nearArgumentSomeParam"] = string("doesn't matter here")
51 arguments := map[string]interface{}{}
52 arguments["nearArgument"] = params
53
54 // when
55 modulesProvider.Register(newGraphQLModule("mod1").withArg("nearArgument"))
56 err := modulesProvider.Init(context.Background(), nil, logger)
57 registered := modulesProvider.GetAll()
58 getArgs := modulesProvider.GetArguments(class)
59 exploreArgs := modulesProvider.ExploreArguments(schema)
60 extractedArgs, _ := modulesProvider.ExtractSearchParams(arguments, class.Class)
61
62 // then
63 mod1 := registered[0]
64 assert.Nil(t, err)
65 assert.Equal(t, "mod1", mod1.Name())
66 assert.NotNil(t, getArgs["nearArgument"])
67 assert.NotNil(t, exploreArgs["nearArgument"])
68 assert.NotNil(t, extractedArgs["nearArgument"])
69 })
70
71 t.Run("should not register modules providing the same search param", func(t *testing.T) {
72 // given
73 logger, _ := test.NewNullLogger()
74 modulesProvider := NewProvider(logger, config.Config{})
75 schemaGetter := getFakeSchemaGetter()
76 modulesProvider.SetSchemaGetter(schemaGetter)
77
78 // when
79 modulesProvider.Register(newGraphQLModule("mod1").withArg("nearArgument"))
80 modulesProvider.Register(newGraphQLModule("mod2").withArg("nearArgument"))
81 err := modulesProvider.Init(context.Background(), nil, logger)
82
83 // then
84 assert.Nil(t, err)
85 })
86
87 t.Run("should not register modules providing internal search param", func(t *testing.T) {
88 // given
89 logger, _ := test.NewNullLogger()
90 modulesProvider := NewProvider(logger, config.Config{})
91 schemaGetter := getFakeSchemaGetter()

Callers

nothing calls this directly

Calls 15

SetSchemaGetterMethod · 0.95
RegisterMethod · 0.95
InitMethod · 0.95
GetAllMethod · 0.95
GetArgumentsMethod · 0.95
ExploreArgumentsMethod · 0.95
ExtractSearchParamsMethod · 0.95
GetByNameMethod · 0.95
getFakeSchemaGetterFunction · 0.85
newGraphQLModuleFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…