// Copyright 2019 Drone.IO Inc. All rights reserved. // Use of this source code is governed by the Polyform License // that can be found in the LICENSE file. package secret import ( "errors" "testing" "git.awesome-for.me/liuzhiguo/drone-go/drone" ) func TestCombine(t *testing.T) { secrets := []*drone.Secret{ {Name: "docker_username", Data: "octocat"}, {Name: "docker_password", Data: "correct-horse-battery-staple"}, } args := &Request{ Name: "docker_password", Build: &drone.Build{Event: drone.EventPush}, } service := Combine(Static(secrets[:1]), Static(secrets[1:])) secret, err := service.Find(noContext, args) if err != nil { t.Error(err) return } if secret != secrets[1] { t.Errorf("expect docker_password") } } func TestCombine_Error(t *testing.T) { args := &Request{ Name: "slack_token", Build: &drone.Build{Event: drone.EventPush}, } want := errors.New("cannot find secret") mock := &mockProvider{err: want} service := Combine(mock) _, got := service.Find(noContext, args) if got != want { t.Errorf("expect error") } } func TestCombine_NotFound(t *testing.T) { secrets := []*drone.Secret{ {Name: "docker_username", Data: "octocat"}, {Name: "docker_password", Data: "correct-horse-battery-staple"}, } args := &Request{ Name: "slack_token", Build: &drone.Build{Event: drone.EventPush}, } service := Combine(Static(secrets)) secret, err := service.Find(noContext, args) if err != nil { t.Error(err) } if secret != nil { t.Errorf("expect nil secret") } } func TestCombine_Empty(t *testing.T) { secrets := []*drone.Secret{ {Name: "docker_username", Data: ""}, {Name: "docker_password", Data: ""}, } args := &Request{ Name: "docker_password", Build: &drone.Build{Event: drone.EventPush}, } service := Combine(Static(secrets)) secret, err := service.Find(noContext, args) if err != nil { t.Error(err) } if secret != nil { t.Errorf("expect nil secret") } }