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/static_test.go

119 lines
2.5 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 (
"context"
"testing"
"git.awesome-for.me/liuzhiguo/drone-go/drone"
)
var noContext = context.Background()
func TestStatic(t *testing.T) {
secrets := []*drone.Secret{
{Name: "docker_username"},
{Name: "docker_password"},
}
args := &Request{
Name: "docker_password",
Build: &drone.Build{Event: drone.EventPush},
}
service := Static(secrets)
secret, err := service.Find(noContext, args)
if err != nil {
t.Error(err)
return
}
if secret != secrets[1] {
t.Errorf("expect docker_password")
}
}
func TestStaticVars(t *testing.T) {
secrets := map[string]string{
"docker_username": "octocat",
"docker_password": "correct-horse-battery-staple",
}
args := &Request{
Name: "docker_password",
Build: &drone.Build{Event: drone.EventPush},
}
service := StaticVars(secrets)
secret, err := service.Find(noContext, args)
if err != nil {
t.Error(err)
return
}
if secret.Data != secrets["docker_password"] {
t.Errorf("expect docker_password")
}
}
func TestStaticNotFound(t *testing.T) {
secrets := []*drone.Secret{
{Name: "docker_username"},
{Name: "docker_password"},
}
args := &Request{
Name: "slack_token",
Build: &drone.Build{Event: drone.EventPush},
}
service := Static(secrets)
secret, err := service.Find(noContext, args)
if err != nil {
t.Error(err)
return
}
if secret != nil {
t.Errorf("Expect secret not found")
}
}
func TestStaticPullRequestDisabled(t *testing.T) {
secrets := []*drone.Secret{
{Name: "docker_username"},
{Name: "docker_password", PullRequest: false},
}
args := &Request{
Name: "docker_password",
Build: &drone.Build{Event: drone.EventPullRequest},
}
service := Static(secrets)
secret, err := service.Find(noContext, args)
if err != nil {
t.Error(err)
return
}
if secret != nil {
t.Errorf("Expect secret not found")
}
}
func TestStaticPullRequestEnabled(t *testing.T) {
secrets := []*drone.Secret{
{Name: "docker_username"},
{Name: "docker_password", PullRequest: true},
}
args := &Request{
Name: "docker_password",
Build: &drone.Build{Event: drone.EventPullRequest},
}
service := Static(secrets)
secret, err := service.Find(noContext, args)
if err != nil {
t.Error(err)
return
}
if err != nil {
t.Error(err)
return
}
if secret != secrets[1] {
t.Errorf("expect docker_username")
}
}