MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / TestDoLoad

Function TestDoLoad

app/controlplane/plugins/plugins_test.go:31–111  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

29)
30
31func TestDoLoad(t *testing.T) {
32 pluginA := mocks.NewFanOut(t)
33 pluginAFactory := func(l log.Logger) (sdk.FanOut, error) {
34 pluginA.On("Describe").Return(&sdk.IntegrationInfo{ID: "a"})
35 pluginA.On("String").Return("a").Maybe()
36 return pluginA, nil
37 }
38
39 pluginB := mocks.NewFanOut(t)
40 pluginBFactory := func(l log.Logger) (sdk.FanOut, error) {
41 pluginB.On("Describe").Return(&sdk.IntegrationInfo{ID: "b"})
42 pluginB.On("String").Return("b").Maybe()
43 return pluginB, nil
44 }
45
46 pluginC := mocks.NewFanOut(t)
47 pluginCFactory := func(l log.Logger) (sdk.FanOut, error) {
48 pluginB.On("Describe").Return(&sdk.IntegrationInfo{ID: "c"})
49 pluginB.On("String").Return("c").Maybe()
50 return pluginB, nil
51 }
52
53 testCases := []struct {
54 name string
55 pluginsFromMemory []sdk.FanOutFactory
56 pluginsFromDir []sdk.FanOutFactory
57 wantErr bool
58 want sdk.AvailablePlugins
59 }{
60 {
61 name: "no plugins in dir and no duplicates",
62 pluginsFromMemory: []sdk.FanOutFactory{pluginAFactory, pluginBFactory},
63 wantErr: false,
64 want: []*sdk.FanOutP{
65 {FanOut: pluginA}, {FanOut: pluginB},
66 },
67 },
68 {
69 name: "no plugins in dir and duplicates skipped",
70 pluginsFromMemory: []sdk.FanOutFactory{pluginAFactory, pluginBFactory, pluginAFactory},
71 wantErr: false,
72 want: []*sdk.FanOutP{
73 {FanOut: pluginA}, {FanOut: pluginB},
74 },
75 },
76 {
77 name: "plugins in dir and memory and no duplicates",
78 pluginsFromMemory: []sdk.FanOutFactory{pluginAFactory, pluginBFactory, pluginAFactory},
79 pluginsFromDir: []sdk.FanOutFactory{pluginCFactory},
80 wantErr: false,
81 want: []*sdk.FanOutP{
82 {FanOut: pluginA}, {FanOut: pluginB}, {FanOut: pluginC},
83 },
84 },
85 {
86 name: "plugins in dir and memory but duplicates",
87 pluginsFromMemory: []sdk.FanOutFactory{pluginAFactory, pluginBFactory, pluginCFactory},
88 pluginsFromDir: []sdk.FanOutFactory{pluginCFactory},

Callers

nothing calls this directly

Calls 6

NewFanOutFunction · 0.92
doLoadFunction · 0.85
CleanupMethod · 0.65
ErrorMethod · 0.65
ReturnMethod · 0.45
RunMethod · 0.45

Tested by

no test coverage detected