You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
runner-go/secret/combine_test.go

85 lines
1.9 KiB
Go

// 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")
}
}