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 }