fix: don't set empty strings for IDs in permission resources (#232)

This commit is contained in:
Daniel Moran
2021-08-20 10:58:51 -04:00
committed by GitHub
parent 285103df13
commit 3a6dfe7102
3 changed files with 61 additions and 4 deletions

View File

@ -4,6 +4,7 @@
1. [221](https://github.com/influxdata/influx-cli/pull/221): Fix shell completion for top-level `influx` commands.
1. [228](https://github.com/influxdata/influx-cli/pull/228): Make global `--http-debug` flag visible in help text.
1. [232](https://github.com/influxdata/influx-cli/pull/232): Don't set empty strings for IDs in permission resources.
## v2.1.0 [2021-07-29]

View File

@ -413,11 +413,14 @@ func (c Client) printAuth(opts printParams) error {
}
func makePermResource(permType string, id string, orgId string) api.PermissionResource {
return api.PermissionResource{
Type: permType,
Id: &id,
OrgID: &orgId,
pr := api.PermissionResource{Type: permType}
if id != "" {
pr.Id = &id
}
if orgId != "" {
pr.OrgID = &orgId
}
return pr
}
func (c Client) getOrgID(ctx context.Context, params clients.OrgParams) (string, error) {

View File

@ -0,0 +1,53 @@
package auth
import (
"testing"
"github.com/influxdata/influx-cli/v2/api"
"github.com/stretchr/testify/require"
)
func Test_makePermResource(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
inType string
inId string
inOrgId string
expected api.PermissionResource
}{
{
name: "only type",
inType: "foo",
expected: api.PermissionResource{Type: "foo"},
},
{
name: "type and ID",
inType: "bar",
inId: "12345",
expected: api.PermissionResource{Type: "bar", Id: api.PtrString("12345")},
},
{
name: "type and org ID",
inType: "baz",
inOrgId: "45678",
expected: api.PermissionResource{Type: "baz", OrgID: api.PtrString("45678")},
},
{
name: "type, ID, and org ID",
inType: "qux",
inId: "12345",
inOrgId: "45678",
expected: api.PermissionResource{Type: "qux", Id: api.PtrString("12345"), OrgID: api.PtrString("45678")},
},
}
for _, tc := range testCases {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
require.Equal(t, tc.expected, makePermResource(tc.inType, tc.inId, tc.inOrgId))
})
}
}