github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/fanal/image/daemon/docker_test.go (about)

     1  package daemon
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/docker/docker/api/types"
     7  	"github.com/google/go-containerregistry/pkg/name"
     8  	v1 "github.com/google/go-containerregistry/pkg/v1"
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestDockerImage(t *testing.T) {
    14  	type fields struct {
    15  		Image   v1.Image
    16  		opener  opener
    17  		inspect types.ImageInspect
    18  	}
    19  	tests := []struct {
    20  		name      string
    21  		imageName string
    22  		fields    fields
    23  		want      *v1.ConfigFile
    24  		wantErr   bool
    25  	}{
    26  		{
    27  			name:      "happy path",
    28  			imageName: "alpine:3.11",
    29  			wantErr:   false,
    30  		},
    31  		{
    32  			name:      "unknown image",
    33  			imageName: "alpine:unknown",
    34  			wantErr:   true,
    35  		},
    36  	}
    37  	for _, tt := range tests {
    38  		t.Run(tt.name, func(t *testing.T) {
    39  			ref, err := name.ParseReference(tt.imageName)
    40  			require.NoError(t, err)
    41  
    42  			_, cleanup, err := DockerImage(ref, "")
    43  			assert.Equal(t, tt.wantErr, err != nil, err)
    44  			defer func() {
    45  				if cleanup != nil {
    46  					cleanup()
    47  				}
    48  			}()
    49  		})
    50  	}
    51  }