github.com/drone/runner-go@v1.12.0/secret/combine_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 secret 6 7 import ( 8 "errors" 9 "testing" 10 11 "github.com/drone/drone-go/drone" 12 ) 13 14 func TestCombine(t *testing.T) { 15 secrets := []*drone.Secret{ 16 {Name: "docker_username", Data: "octocat"}, 17 {Name: "docker_password", Data: "correct-horse-battery-staple"}, 18 } 19 args := &Request{ 20 Name: "docker_password", 21 Build: &drone.Build{Event: drone.EventPush}, 22 } 23 service := Combine(Static(secrets[:1]), Static(secrets[1:])) 24 secret, err := service.Find(noContext, args) 25 if err != nil { 26 t.Error(err) 27 return 28 } 29 if secret != secrets[1] { 30 t.Errorf("expect docker_password") 31 } 32 } 33 34 func TestCombine_Error(t *testing.T) { 35 args := &Request{ 36 Name: "slack_token", 37 Build: &drone.Build{Event: drone.EventPush}, 38 } 39 want := errors.New("cannot find secret") 40 mock := &mockProvider{err: want} 41 service := Combine(mock) 42 _, got := service.Find(noContext, args) 43 if got != want { 44 t.Errorf("expect error") 45 } 46 } 47 48 func TestCombine_NotFound(t *testing.T) { 49 secrets := []*drone.Secret{ 50 {Name: "docker_username", Data: "octocat"}, 51 {Name: "docker_password", Data: "correct-horse-battery-staple"}, 52 } 53 args := &Request{ 54 Name: "slack_token", 55 Build: &drone.Build{Event: drone.EventPush}, 56 } 57 service := Combine(Static(secrets)) 58 secret, err := service.Find(noContext, args) 59 if err != nil { 60 t.Error(err) 61 } 62 if secret != nil { 63 t.Errorf("expect nil secret") 64 } 65 } 66 67 func TestCombine_Empty(t *testing.T) { 68 secrets := []*drone.Secret{ 69 {Name: "docker_username", Data: ""}, 70 {Name: "docker_password", Data: ""}, 71 } 72 args := &Request{ 73 Name: "docker_password", 74 Build: &drone.Build{Event: drone.EventPush}, 75 } 76 service := Combine(Static(secrets)) 77 secret, err := service.Find(noContext, args) 78 if err != nil { 79 t.Error(err) 80 } 81 if secret != nil { 82 t.Errorf("expect nil secret") 83 } 84 }