-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsecrets_test.go
116 lines (89 loc) · 2.88 KB
/
secrets_test.go
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package symbiosis
import (
"encoding/json"
"testing"
"github.com/jarcoal/httpmock"
"github.com/stretchr/testify/assert"
)
const secretsJSON = `
{
"super": {
"developmentValue": "secret221",
"previewValue": "secret222",
"productionValue": "secret223"
},
"super2": {
"developmentValue": "secret222",
"previewValue": "secret222",
"productionValue": "secret222"
},
"super3": {
"developmentValue": "dfsdscf",
"previewValue": "dfsdscf",
"productionValue": "dfsdscf"
}
}
`
const previewValuesJSON = `
{
"super3": "super-3-dev-secret"
}
`
func TestCreateSecret(t *testing.T) {
c := getMocketClient()
defer httpmock.DeactivateAndReset()
fakeURL := "/rest/v1/project/test/secret/test"
responder := httpmock.NewStringResponder(200, "")
httpmock.RegisterResponder("PUT", fakeURL, responder)
err := c.Secret.Create("test", "test", Secret{
DevelopmentValue: "123",
PreviewValue: "123",
ProductionValue: "123",
})
assert.Nil(t, err)
responder = httpmock.NewErrorResponder(assert.AnError)
httpmock.RegisterResponder("PUT", fakeURL, responder)
err = c.Secret.Create("test", "test", Secret{
DevelopmentValue: "123",
PreviewValue: "123",
ProductionValue: "123",
})
assert.Error(t, err)
}
func TestGetSecretsByProject(t *testing.T) {
c := getMocketClient()
defer httpmock.DeactivateAndReset()
fakeURL := "/rest/v1/project/test/secret"
var fakeSecrets SecretCollection
json.Unmarshal([]byte(secretsJSON), &fakeSecrets)
responder := httpmock.NewStringResponder(200, secretsJSON)
httpmock.RegisterResponder("GET", fakeURL, responder)
secrets, err := c.Secret.GetSecretsByProject("test")
assert.Nil(t, err)
assert.Equal(t, fakeSecrets, secrets)
assert.Equal(t, secrets["super"].DevelopmentValue, "secret221")
assert.Equal(t, secrets["super"].PreviewValue, "secret222")
assert.Equal(t, secrets["super"].ProductionValue, "secret223")
responder = httpmock.NewErrorResponder(assert.AnError)
httpmock.RegisterResponder("GET", fakeURL, responder)
_, err = c.Secret.GetSecretsByProject("test")
assert.Error(t, err)
}
func TestGetSecretsByProjectAndEnvironment(t *testing.T) {
c := getMocketClient()
defer httpmock.DeactivateAndReset()
fakeURL := "/rest/v1/project/test/secret?environment=preview"
var fakeSecrets map[string]string
json.Unmarshal([]byte(previewValuesJSON), &fakeSecrets)
responder := httpmock.NewStringResponder(200, previewValuesJSON)
httpmock.RegisterResponder("GET", fakeURL, responder)
secrets, err := c.Secret.GetSecretsByProjectAndEnvironment("test", ENVIRONMENT_PREVIEW)
assert.Nil(t, err)
assert.Equal(t, fakeSecrets, secrets)
assert.Equal(t, len(secrets), 1)
assert.Equal(t, secrets["super3"], "super-3-dev-secret")
responder = httpmock.NewErrorResponder(assert.AnError)
httpmock.RegisterResponder("GET", fakeURL, responder)
_, err = c.Secret.GetSecretsByProjectAndEnvironment("test", ENVIRONMENT_PREVIEW)
assert.Error(t, err)
}