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