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

Function TestDirectoryLoader

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

Source from the content-addressed store, hash-verified

111}
112
113func TestDirectoryLoader(t *testing.T) {
114 pluginA := mocks.NewFanOut(t)
115 pluginA.On("Describe").Return(&sdk.IntegrationInfo{ID: "a"})
116 pluginA.On("String").Return("a").Maybe()
117
118 pluginB := mocks.NewFanOut(t)
119 pluginB.On("Describe").Return(&sdk.IntegrationInfo{ID: "b"})
120 pluginB.On("String").Return("b").Maybe()
121
122 initializer := loaderMocks.NewPluginInitializer(t)
123
124 dirLoader := &directoryLoader{
125 pluginsDir: "./testdata/plugins",
126 initializer: initializer,
127 logger: log.NewHelper(log.NewStdLogger(io.Discard)),
128 }
129
130 pluginDir, err := filepath.Abs(dirLoader.pluginsDir)
131 require.NoError(t, err)
132
133 initializer.On("Init", filepath.Join(pluginDir, "chainloop-plugin-a")).Return(
134 &sdk.FanOutP{FanOut: pluginA, DisposeFunc: func() {}}, nil,
135 )
136
137 initializer.On("Init", filepath.Join(pluginDir, "chainloop-plugin-a-duplicated")).Return(
138 &sdk.FanOutP{FanOut: pluginA, DisposeFunc: func() {}}, nil,
139 )
140
141 initializer.On("Init", filepath.Join(pluginDir, "chainloop-plugin-b")).Return(
142 &sdk.FanOutP{FanOut: pluginB, DisposeFunc: func() {}}, nil,
143 )
144
145 plugins, err := dirLoader.load()
146 assert.NoError(t, err)
147 assert.Equal(t, 2, len(plugins))
148}

Callers

nothing calls this directly

Calls 3

loadMethod · 0.95
NewFanOutFunction · 0.92
ReturnMethod · 0.45

Tested by

no test coverage detected