github.com/drone/runner-go@v1.12.0/secret/static_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  	"context"
     9  	"testing"
    10  
    11  	"github.com/drone/drone-go/drone"
    12  )
    13  
    14  var noContext = context.Background()
    15  
    16  func TestStatic(t *testing.T) {
    17  	secrets := []*drone.Secret{
    18  		{Name: "docker_username"},
    19  		{Name: "docker_password"},
    20  	}
    21  	args := &Request{
    22  		Name:  "docker_password",
    23  		Build: &drone.Build{Event: drone.EventPush},
    24  	}
    25  	service := Static(secrets)
    26  	secret, err := service.Find(noContext, args)
    27  	if err != nil {
    28  		t.Error(err)
    29  		return
    30  	}
    31  	if secret != secrets[1] {
    32  		t.Errorf("expect docker_password")
    33  	}
    34  }
    35  
    36  func TestStaticVars(t *testing.T) {
    37  	secrets := map[string]string{
    38  		"docker_username": "octocat",
    39  		"docker_password": "correct-horse-battery-staple",
    40  	}
    41  	args := &Request{
    42  		Name:  "docker_password",
    43  		Build: &drone.Build{Event: drone.EventPush},
    44  	}
    45  	service := StaticVars(secrets)
    46  	secret, err := service.Find(noContext, args)
    47  	if err != nil {
    48  		t.Error(err)
    49  		return
    50  	}
    51  	if secret.Data != secrets["docker_password"] {
    52  		t.Errorf("expect docker_password")
    53  	}
    54  }
    55  
    56  func TestStaticNotFound(t *testing.T) {
    57  	secrets := []*drone.Secret{
    58  		{Name: "docker_username"},
    59  		{Name: "docker_password"},
    60  	}
    61  	args := &Request{
    62  		Name:  "slack_token",
    63  		Build: &drone.Build{Event: drone.EventPush},
    64  	}
    65  	service := Static(secrets)
    66  	secret, err := service.Find(noContext, args)
    67  	if err != nil {
    68  		t.Error(err)
    69  		return
    70  	}
    71  	if secret != nil {
    72  		t.Errorf("Expect secret not found")
    73  	}
    74  }
    75  
    76  func TestStaticPullRequestDisabled(t *testing.T) {
    77  	secrets := []*drone.Secret{
    78  		{Name: "docker_username"},
    79  		{Name: "docker_password", PullRequest: false},
    80  	}
    81  	args := &Request{
    82  		Name:  "docker_password",
    83  		Build: &drone.Build{Event: drone.EventPullRequest},
    84  	}
    85  	service := Static(secrets)
    86  	secret, err := service.Find(noContext, args)
    87  	if err != nil {
    88  		t.Error(err)
    89  		return
    90  	}
    91  	if secret != nil {
    92  		t.Errorf("Expect secret not found")
    93  	}
    94  }
    95  
    96  func TestStaticPullRequestEnabled(t *testing.T) {
    97  	secrets := []*drone.Secret{
    98  		{Name: "docker_username"},
    99  		{Name: "docker_password", PullRequest: true},
   100  	}
   101  	args := &Request{
   102  		Name:  "docker_password",
   103  		Build: &drone.Build{Event: drone.EventPullRequest},
   104  	}
   105  	service := Static(secrets)
   106  	secret, err := service.Find(noContext, args)
   107  	if err != nil {
   108  		t.Error(err)
   109  		return
   110  	}
   111  	if err != nil {
   112  		t.Error(err)
   113  		return
   114  	}
   115  	if secret != secrets[1] {
   116  		t.Errorf("expect docker_username")
   117  	}
   118  }