github.com/drone/runner-go@v1.12.0/secret/combine_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  	"errors"
     9  	"testing"
    10  
    11  	"github.com/drone/drone-go/drone"
    12  )
    13  
    14  func TestCombine(t *testing.T) {
    15  	secrets := []*drone.Secret{
    16  		{Name: "docker_username", Data: "octocat"},
    17  		{Name: "docker_password", Data: "correct-horse-battery-staple"},
    18  	}
    19  	args := &Request{
    20  		Name:  "docker_password",
    21  		Build: &drone.Build{Event: drone.EventPush},
    22  	}
    23  	service := Combine(Static(secrets[:1]), Static(secrets[1:]))
    24  	secret, err := service.Find(noContext, args)
    25  	if err != nil {
    26  		t.Error(err)
    27  		return
    28  	}
    29  	if secret != secrets[1] {
    30  		t.Errorf("expect docker_password")
    31  	}
    32  }
    33  
    34  func TestCombine_Error(t *testing.T) {
    35  	args := &Request{
    36  		Name:  "slack_token",
    37  		Build: &drone.Build{Event: drone.EventPush},
    38  	}
    39  	want := errors.New("cannot find secret")
    40  	mock := &mockProvider{err: want}
    41  	service := Combine(mock)
    42  	_, got := service.Find(noContext, args)
    43  	if got != want {
    44  		t.Errorf("expect error")
    45  	}
    46  }
    47  
    48  func TestCombine_NotFound(t *testing.T) {
    49  	secrets := []*drone.Secret{
    50  		{Name: "docker_username", Data: "octocat"},
    51  		{Name: "docker_password", Data: "correct-horse-battery-staple"},
    52  	}
    53  	args := &Request{
    54  		Name:  "slack_token",
    55  		Build: &drone.Build{Event: drone.EventPush},
    56  	}
    57  	service := Combine(Static(secrets))
    58  	secret, err := service.Find(noContext, args)
    59  	if err != nil {
    60  		t.Error(err)
    61  	}
    62  	if secret != nil {
    63  		t.Errorf("expect nil secret")
    64  	}
    65  }
    66  
    67  func TestCombine_Empty(t *testing.T) {
    68  	secrets := []*drone.Secret{
    69  		{Name: "docker_username", Data: ""},
    70  		{Name: "docker_password", Data: ""},
    71  	}
    72  	args := &Request{
    73  		Name:  "docker_password",
    74  		Build: &drone.Build{Event: drone.EventPush},
    75  	}
    76  	service := Combine(Static(secrets))
    77  	secret, err := service.Find(noContext, args)
    78  	if err != nil {
    79  		t.Error(err)
    80  	}
    81  	if secret != nil {
    82  		t.Errorf("expect nil secret")
    83  	}
    84  }