github.com/drone/runner-go@v1.12.0/manifest/secret_test.go (about) 1 // Copyright 2019 Drone.IO Inc. All rights reserved. 2 // Use of this source code is governed by the Polyform License 3 // that can be found in the LICENSE file. 4 5 package manifest 6 7 import ( 8 "testing" 9 10 "github.com/buildkite/yaml" 11 "github.com/google/go-cmp/cmp" 12 ) 13 14 var mockSecretYaml = []byte(` 15 --- 16 kind: secret 17 name: username 18 19 data: b2N0b2NhdA== 20 `) 21 22 var mockSecret = &Secret{ 23 Kind: "secret", 24 Name: "username", 25 Data: "b2N0b2NhdA==", 26 } 27 28 func TestSecretUnmarshal(t *testing.T) { 29 a := new(Secret) 30 b := mockSecret 31 yaml.Unmarshal(mockSecretYaml, a) 32 if diff := cmp.Diff(a, b); diff != "" { 33 t.Error("Failed to parse secret") 34 t.Log(diff) 35 } 36 } 37 38 func TestSecretValidate(t *testing.T) { 39 secret := new(Secret) 40 41 secret.Data = "some-data" 42 if err := secret.Validate(); err != nil { 43 t.Error(err) 44 return 45 } 46 47 secret.Get.Path = "secret/data/docker" 48 if err := secret.Validate(); err != nil { 49 t.Error(err) 50 return 51 } 52 53 secret.Data = "" 54 secret.Get.Path = "" 55 if err := secret.Validate(); err == nil { 56 t.Errorf("Expect invalid secret error") 57 } 58 }