@@ -31,6 +31,7 @@ import (
3131 "github.com/stretchr/testify/require"
3232 "go.opentelemetry.io/collector/component"
3333 "go.opentelemetry.io/collector/component/componentstatus"
34+ "go.opentelemetry.io/collector/consumer/consumertest"
3435 "go.opentelemetry.io/collector/pipeline"
3536 "go.opentelemetry.io/collector/receiver"
3637 "go.opentelemetry.io/collector/receiver/receivertest"
@@ -722,6 +723,29 @@ func TestReceiverHook(t *testing.T) {
722723 oteltest .TestReceiverHook (t , & cfg , NewFactoryWithSettings (Settings {Home : t .TempDir ()}), receiverSettings , 3 )
723724}
724725
726+ func TestStartShouldFailWhenStorageExtensionMissing (t * testing.T ) {
727+ cfg := & Config {Beatconfig : map [string ]any {
728+ "filebeat" : map [string ]any {"inputs" : []map [string ]any {{
729+ "type" : "benchmark" , "enabled" : true , "message" : "x" , "count" : 1 ,
730+ }}},
731+ "storage" : "elasticsearch_storage" ,
732+ "path.home" : t .TempDir (),
733+ }}
734+
735+ factory := NewFactoryWithSettings (Settings {Home : t .TempDir ()})
736+ set := receiver.Settings {
737+ ID : component .NewIDWithName (factory .Type (), "r1" ),
738+ TelemetrySettings : component.TelemetrySettings {Logger : zap .NewNop ()},
739+ }
740+
741+ r , err := factory .CreateLogs (t .Context (), set , cfg , consumertest .NewNop ())
742+ require .NoError (t , err )
743+
744+ err = r .Start (t .Context (), & oteltest.MockHost {})
745+ require .Error (t , err , "expected Start to fail when storage extension is configured but missing" )
746+ _ = r .Shutdown (t .Context ())
747+ }
748+
725749func hostFromSocket (socket string ) string {
726750 if runtime .GOOS == "windows" {
727751 return "npipe:///" + filepath .Base (socket )
0 commit comments