github.com/m-lab/locate@v0.17.6/secrets/load_local_test.go (about)

     1  package secrets_test
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/m-lab/locate/prometheus"
     8  	"github.com/m-lab/locate/secrets"
     9  )
    10  
    11  func TestLocalConfig_LoadSigner(t *testing.T) {
    12  	tests := []struct {
    13  		name    string
    14  		file    string
    15  		wantErr bool
    16  	}{
    17  		{
    18  			name: "success",
    19  			file: "testdata/jwk_sig_EdDSA_test_20220415",
    20  		},
    21  		{
    22  			name:    "error-badfile",
    23  			file:    "not-testdata/file-does-not-exist",
    24  			wantErr: true,
    25  		},
    26  		{
    27  			name:    "error-given-public-key",
    28  			file:    "testdata/jwk_sig_EdDSA_test_20220415.pub",
    29  			wantErr: true,
    30  		},
    31  	}
    32  	for _, tt := range tests {
    33  		t.Run(tt.name, func(t *testing.T) {
    34  			c := secrets.NewLocalConfig()
    35  			ctx := context.Background()
    36  			_, err := c.LoadSigner(ctx, tt.file)
    37  			if (err != nil) != tt.wantErr {
    38  				t.Errorf("LocalConfig.LoadSigner() error = %v, wantErr %v", err, tt.wantErr)
    39  				return
    40  			}
    41  		})
    42  	}
    43  }
    44  
    45  func TestLocalConfig_LoadVerifier(t *testing.T) {
    46  	tests := []struct {
    47  		name    string
    48  		file    string
    49  		wantErr bool
    50  	}{
    51  		{
    52  			name: "success",
    53  			file: "testdata/jwk_sig_EdDSA_test_20220415.pub",
    54  		},
    55  		{
    56  			name:    "error-badfile",
    57  			file:    "not-testdata/file-does-not-exist",
    58  			wantErr: true,
    59  		},
    60  		{
    61  			name:    "error-given-private-key",
    62  			file:    "testdata/jwk_sig_EdDSA_test_20220415",
    63  			wantErr: true,
    64  		},
    65  	}
    66  	for _, tt := range tests {
    67  		t.Run(tt.name, func(t *testing.T) {
    68  			c := secrets.NewLocalConfig()
    69  			ctx := context.Background()
    70  			_, err := c.LoadVerifier(ctx, tt.file)
    71  			if (err != nil) != tt.wantErr {
    72  				t.Errorf("LocalConfig.LoadVerifier() error = %v, wantErr %v", err, tt.wantErr)
    73  				return
    74  			}
    75  		})
    76  	}
    77  }
    78  
    79  func TestLocalConfig_LoadPrometheus(t *testing.T) {
    80  	tests := []struct {
    81  		name     string
    82  		userFile string
    83  		passFile string
    84  		want     *prometheus.Credentials
    85  		wantErr  bool
    86  	}{
    87  		{
    88  			name:     "success",
    89  			userFile: "testdata/prom-auth-user",
    90  			passFile: "testdata/prom-auth-pass",
    91  			want: &prometheus.Credentials{
    92  				Username: "username",
    93  				Password: "password",
    94  			},
    95  			wantErr: false,
    96  		},
    97  		{
    98  			name:     "error-bad-user-file",
    99  			userFile: "file-does-not-exist",
   100  			passFile: "testdata/prom-auth-pass",
   101  			wantErr:  true,
   102  		},
   103  		{
   104  			name:     "error-bad-pass-file",
   105  			userFile: "testdata/prom-auth-user",
   106  			passFile: "file-does-not-exist",
   107  			wantErr:  true,
   108  		},
   109  		{
   110  			name:     "error-bad-user-and-pass-files",
   111  			userFile: "file-does-not-exist",
   112  			passFile: "file-does-not-exist",
   113  			wantErr:  true,
   114  		},
   115  	}
   116  	for _, tt := range tests {
   117  		t.Run(tt.name, func(t *testing.T) {
   118  			c := secrets.NewLocalConfig()
   119  			ctx := context.Background()
   120  			got, err := c.LoadPrometheus(ctx, tt.userFile, tt.passFile)
   121  			if (err != nil) != tt.wantErr {
   122  				t.Errorf("LocalConfig.LoadPrometheus() error = %v, wantErr %v", err, tt.wantErr)
   123  				return
   124  			}
   125  
   126  			if !tt.wantErr {
   127  				if got.Username != tt.want.Username && got.Password != tt.want.Password {
   128  					t.Errorf("LocalConfig.LoadPrometheus() got = %v, want= %v", got, tt.want)
   129  				}
   130  			}
   131  		})
   132  	}
   133  }