Skip to content

Commit fe26d76

Browse files
committed
nicer errors
1 parent 38e7d06 commit fe26d76

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

internal/js/modules/k6/secrets/secrets_test.go

+13-1
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,22 @@ func TestSecrets(t *testing.T) {
8989
script: "await secrets.source('second').get('secret2')",
9090
expectedValue: "value2",
9191
},
92+
"multiple get wrong": {
93+
secretsources: map[string]secretsource.Source{
94+
"default": mock.NewMockSecretSource("some", map[string]string{
95+
"secret": "value",
96+
}),
97+
"second": mock.NewMockSecretSource("some", map[string]string{
98+
"secret2": "value2",
99+
}),
100+
},
101+
script: "await secrets.source('third').get('secret2')",
102+
expectedError: "no secret source with name \"third\" is configured",
103+
},
92104
"get secret without source": {
93105
secretsources: map[string]secretsource.Source{},
94106
script: "await secrets.get('secret')",
95-
expectedError: "no source with name default",
107+
expectedError: "no secret sources are configured",
96108
},
97109
"get none existing source": {
98110
secretsources: map[string]secretsource.Source{

secretsource/manager.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package secretsource
22

33
import (
4+
"errors"
45
"fmt"
56
"sync"
67

@@ -53,9 +54,12 @@ func NewManager(sources map[string]Source) (*Manager, logrus.Hook, error) {
5354
// It can be used with the [DefaultSourceName].
5455
// This automatically starts redacting the secret before returning it.
5556
func (sm *Manager) Get(sourceName, key string) (string, error) {
57+
if len(sm.cache) == 0 {
58+
return "", errors.New("no secret sources are configured")
59+
}
5660
sourceCache, ok := sm.cache[sourceName]
5761
if !ok {
58-
return "", fmt.Errorf("no source with name %s", sourceName)
62+
return "", UnknownSourceError(sourceName)
5963
}
6064
v, ok := sourceCache.Load(key)
6165
if ok {
@@ -70,3 +74,10 @@ func (sm *Manager) Get(sourceName, key string) (string, error) {
7074
sm.hook.add(value)
7175
return value, err
7276
}
77+
78+
// UnknownSourceError is returned when a unknown source is requested
79+
type UnknownSourceError string
80+
81+
func (u UnknownSourceError) Error() string {
82+
return fmt.Sprintf("no secret source with name %q is configured", (string)(u))
83+
}

0 commit comments

Comments
 (0)