Skip to content

Commit 18539a5

Browse files
committed
Add nil check for img
1 parent 92152c6 commit 18539a5

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

components/camera/camera.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,10 @@ func GetImageFromGetImages(ctx context.Context, sourceName *string, mimeType str
194194
}
195195
}
196196

197+
if img == nil {
198+
return nil, ImageMetadata{}, errors.New("image is nil")
199+
}
200+
197201
imgBytes, err := rimage.EncodeImage(ctx, img, mimeType)
198202
if err != nil {
199203
return nil, ImageMetadata{}, fmt.Errorf("could not encode image: %w", err)

components/camera/camera_test.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,16 @@ func TestGetImageFromGetImages(t *testing.T) {
357357
test.That(t, err, test.ShouldBeError, errors.New("no images returned from camera"))
358358
})
359359

360-
t.Run("multiple images, specific source name", func(t *testing.T) {
360+
t.Run("nil image case", func(t *testing.T) {
361+
nilImageCam := inject.NewCamera("nil_image_cam")
362+
nilImageCam.ImagesFunc = func(ctx context.Context) ([]camera.NamedImage, resource.ResponseMetadata, error) {
363+
return []camera.NamedImage{{Image: nil, SourceName: source1Name}}, resource.ResponseMetadata{CapturedAt: time.Now()}, nil
364+
}
365+
_, _, err := camera.GetImageFromGetImages(context.Background(), nil, rutils.MimeTypePNG, nilImageCam)
366+
test.That(t, err, test.ShouldBeError, errors.New("image is nil"))
367+
})
368+
369+
t.Run("multiple images, specify source name", func(t *testing.T) {
361370
sourceName := source2Name
362371
img, metadata, err := camera.GetImageFromGetImages(context.Background(), &sourceName, rutils.MimeTypePNG, testCam)
363372
test.That(t, err, test.ShouldBeNil)

0 commit comments

Comments
 (0)