github.com/justincormack/cli@v0.0.0-20201215022714-831ebeae9675/cli/trust/trust_test.go (about) 1 package trust 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 8 "github.com/docker/distribution/reference" 9 digest "github.com/opencontainers/go-digest" 10 "github.com/theupdateframework/notary/client" 11 "github.com/theupdateframework/notary/passphrase" 12 "github.com/theupdateframework/notary/trustpinning" 13 "gotest.tools/v3/assert" 14 is "gotest.tools/v3/assert/cmp" 15 ) 16 17 func TestGetTag(t *testing.T) { 18 ref, err := reference.ParseNormalizedNamed("ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2") 19 assert.NilError(t, err) 20 tag := getTag(ref) 21 assert.Check(t, is.Equal("", tag)) 22 23 ref, err = reference.ParseNormalizedNamed("alpine:latest") 24 assert.NilError(t, err) 25 tag = getTag(ref) 26 assert.Check(t, is.Equal(tag, "latest")) 27 28 ref, err = reference.ParseNormalizedNamed("alpine") 29 assert.NilError(t, err) 30 tag = getTag(ref) 31 assert.Check(t, is.Equal(tag, "")) 32 } 33 34 func TestGetDigest(t *testing.T) { 35 ref, err := reference.ParseNormalizedNamed("ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2") 36 assert.NilError(t, err) 37 d := getDigest(ref) 38 assert.Check(t, is.Equal(digest.Digest("sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2"), d)) 39 40 ref, err = reference.ParseNormalizedNamed("alpine:latest") 41 assert.NilError(t, err) 42 d = getDigest(ref) 43 assert.Check(t, is.Equal(digest.Digest(""), d)) 44 45 ref, err = reference.ParseNormalizedNamed("alpine") 46 assert.NilError(t, err) 47 d = getDigest(ref) 48 assert.Check(t, is.Equal(digest.Digest(""), d)) 49 } 50 51 func TestGetSignableRolesError(t *testing.T) { 52 tmpDir, err := ioutil.TempDir("", "notary-test-") 53 assert.NilError(t, err) 54 defer os.RemoveAll(tmpDir) 55 56 notaryRepo, err := client.NewFileCachedRepository(tmpDir, "gun", "https://localhost", nil, passphrase.ConstantRetriever("password"), trustpinning.TrustPinConfig{}) 57 assert.NilError(t, err) 58 target := client.Target{} 59 _, err = GetSignableRoles(notaryRepo, &target) 60 assert.Error(t, err, "client is offline") 61 }