1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
package data
import (
"net/url"
"testing"
"github.com/hairyhenderson/gomplate/v3/vault"
"github.com/stretchr/testify/assert"
)
func TestReadVault(t *testing.T) {
expected := "{\"value\":\"foo\"}\n"
server, v := vault.MockServer(200, `{"data":`+expected+`}`)
defer server.Close()
source := &Source{
Alias: "foo",
URL: &url.URL{Scheme: "vault", Path: "/secret/foo"},
mediaType: textMimetype,
vc: v,
}
r, err := readVault(source)
assert.NoError(t, err)
assert.Equal(t, []byte(expected), r)
r, err = readVault(source, "bar")
assert.NoError(t, err)
assert.Equal(t, []byte(expected), r)
r, err = readVault(source, "?param=value")
assert.NoError(t, err)
assert.Equal(t, []byte(expected), r)
source.URL, _ = url.Parse("vault:///secret/foo?param1=value1¶m2=value2")
r, err = readVault(source)
assert.NoError(t, err)
assert.Equal(t, []byte(expected), r)
expected = "[\"one\",\"two\"]\n"
server, source.vc = vault.MockServer(200, `{"data":{"keys":`+expected+`}}`)
defer server.Close()
source.URL, _ = url.Parse("vault:///secret/foo/")
r, err = readVault(source)
assert.NoError(t, err)
assert.Equal(t, []byte(expected), r)
}
|