github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/cnbutils/report_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package cnbutils_test 5 6 import ( 7 "testing" 8 9 "github.com/SAP/jenkins-library/pkg/cnbutils" 10 "github.com/SAP/jenkins-library/pkg/mock" 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestDigestFromReport(t *testing.T) { 15 t.Run("return a digest from the report.toml", func(t *testing.T) { 16 mockUtils := &cnbutils.MockUtils{ 17 FilesMock: &mock.FilesMock{}, 18 } 19 mockUtils.AddFile("/layers/report.toml", []byte(`[build] 20 [image] 21 digest = "sha256:52eac630560210e5ae13eb10797c4246d6f02d425f32b9430ca00bde697c79ec" 22 `)) 23 digest, err := cnbutils.DigestFromReport(mockUtils) 24 assert.NoError(t, err) 25 assert.Equal(t, "sha256:52eac630560210e5ae13eb10797c4246d6f02d425f32b9430ca00bde697c79ec", digest) 26 }) 27 28 t.Run("fails if digest is empty", func(t *testing.T) { 29 mockUtils := &cnbutils.MockUtils{ 30 ExecMockRunner: &mock.ExecMockRunner{}, 31 FilesMock: &mock.FilesMock{}, 32 } 33 mockUtils.AddFile("/layers/report.toml", []byte(``)) 34 35 digest, err := cnbutils.DigestFromReport(mockUtils) 36 assert.Empty(t, digest) 37 assert.EqualError(t, err, "image digest is empty") 38 }) 39 40 t.Run("fails to unmarshal corrupted file", func(t *testing.T) { 41 mockUtils := &cnbutils.MockUtils{ 42 ExecMockRunner: &mock.ExecMockRunner{}, 43 FilesMock: &mock.FilesMock{}, 44 } 45 mockUtils.AddFile("/layers/report.toml", []byte(`{}`)) 46 47 digest, err := cnbutils.DigestFromReport(mockUtils) 48 assert.Empty(t, digest) 49 assert.EqualError(t, err, "toml: line 1: expected '.' or '=', but got '{' instead") 50 }) 51 }