From 635e8e0c5969909248e6d2306f27c43ca709f093 Mon Sep 17 00:00:00 2001 From: Danny Olson Date: Fri, 29 Mar 2024 16:12:59 -0700 Subject: [PATCH 1/2] Create command to get an environment --- cmd/cliflags/flags.go | 13 ++-- cmd/cmdtest.go | 10 ++- cmd/environments/environments.go | 24 +++++++ cmd/environments/get.go | 69 ++++++++++++++++++ cmd/environments/get_test.go | 102 +++++++++++++++++++++++++++ cmd/flags/create_test.go | 12 ++-- cmd/flags/update_test.go | 8 +-- cmd/members/create_test.go | 8 +-- cmd/members/invite_test.go | 12 ++-- cmd/projects/create_test.go | 12 ++-- cmd/projects/list_test.go | 10 +-- cmd/root.go | 18 ++++- cmd/root_test.go | 5 +- internal/environments/client.go | 47 ++++++++++++ internal/environments/mock_client.go | 25 +++++++ 15 files changed, 331 insertions(+), 44 deletions(-) create mode 100644 cmd/environments/environments.go create mode 100644 cmd/environments/get.go create mode 100644 cmd/environments/get_test.go create mode 100644 internal/environments/client.go create mode 100644 internal/environments/mock_client.go diff --git a/cmd/cliflags/flags.go b/cmd/cliflags/flags.go index 41dda435..c84439f6 100644 --- a/cmd/cliflags/flags.go +++ b/cmd/cliflags/flags.go @@ -1,10 +1,11 @@ package cliflags const ( - APITokenFlag = "api-token" - BaseURIFlag = "base-uri" - FlagFlag = "flag" - ProjectFlag = "project" - EmailsFlag = "emails" - RoleFlag = "role" + APITokenFlag = "api-token" + BaseURIFlag = "base-uri" + EmailsFlag = "emails" + EnvironmentFlag = "environment" + FlagFlag = "flag" + ProjectFlag = "project" + RoleFlag = "role" ) diff --git a/cmd/cmdtest.go b/cmd/cmdtest.go index d60cdc85..e2abf68a 100644 --- a/cmd/cmdtest.go +++ b/cmd/cmdtest.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/require" + "ldcli/internal/environments" "ldcli/internal/flags" "ldcli/internal/members" "ldcli/internal/projects" @@ -16,12 +17,19 @@ var ValidResponse = `{"valid": true}` func CallCmd( t *testing.T, + environmentsClient *environments.MockClient, flagsClient *flags.MockClient, membersClient *members.MockClient, projectsClient *projects.MockClient, args []string, ) ([]byte, error) { - rootCmd, err := NewRootCommand(flagsClient, membersClient, projectsClient, "test") + rootCmd, err := NewRootCommand( + environmentsClient, + flagsClient, + membersClient, + projectsClient, + "test", + ) require.NoError(t, err) b := bytes.NewBufferString("") rootCmd.SetOut(b) diff --git a/cmd/environments/environments.go b/cmd/environments/environments.go new file mode 100644 index 00000000..cb2e89f4 --- /dev/null +++ b/cmd/environments/environments.go @@ -0,0 +1,24 @@ +package environments + +import ( + "ldcli/internal/environments" + + "github.com/spf13/cobra" +) + +func NewEnvironmentsCmd(client environments.Client) (*cobra.Command, error) { + cmd := &cobra.Command{ + Use: "environments", + Short: "Make requests (list, create, etc.) on environments", + Long: "Make requests (list, create, etc.) on environments", + } + + getCmd, err := NewGetCmd(client) + if err != nil { + return nil, err + } + + cmd.AddCommand(getCmd) + + return cmd, nil +} diff --git a/cmd/environments/get.go b/cmd/environments/get.go new file mode 100644 index 00000000..92970439 --- /dev/null +++ b/cmd/environments/get.go @@ -0,0 +1,69 @@ +package environments + +import ( + "context" + "fmt" + + "github.com/spf13/cobra" + "github.com/spf13/viper" + + "ldcli/cmd/cliflags" + "ldcli/cmd/validators" + "ldcli/internal/environments" +) + +func NewGetCmd(client environments.Client) (*cobra.Command, error) { + cmd := &cobra.Command{ + Args: validators.Validate(), + Long: "Return an environment", + RunE: runGet(client), + Short: "Return an environment", + Use: "get", + } + + cmd.Flags().StringP(cliflags.EnvironmentFlag, "e", "", "Environment key") + err := cmd.MarkFlagRequired(cliflags.EnvironmentFlag) + if err != nil { + return nil, err + } + + err = viper.BindPFlag(cliflags.EnvironmentFlag, cmd.Flags().Lookup(cliflags.EnvironmentFlag)) + if err != nil { + return nil, err + } + + cmd.Flags().StringP(cliflags.ProjectFlag, "p", "", "Project key") + err = cmd.MarkFlagRequired(cliflags.ProjectFlag) + if err != nil { + return nil, err + } + err = viper.BindPFlag(cliflags.ProjectFlag, cmd.Flags().Lookup(cliflags.ProjectFlag)) + if err != nil { + return nil, err + } + + return cmd, nil +} + +func runGet(client environments.Client) func(*cobra.Command, []string) error { + return func(cmd *cobra.Command, args []string) error { + _ = viper.BindPFlag(cliflags.EnvironmentFlag, cmd.Flags().Lookup(cliflags.EnvironmentFlag)) + _ = viper.BindPFlag(cliflags.ProjectFlag, cmd.Flags().Lookup(cliflags.ProjectFlag)) + + response, err := client.Get( + context.Background(), + viper.GetString(cliflags.APITokenFlag), + viper.GetString(cliflags.BaseURIFlag), + viper.GetString(cliflags.EnvironmentFlag), + viper.GetString(cliflags.ProjectFlag), + ) + if err != nil { + fmt.Println(">>> err1", err) + return err + } + + fmt.Fprintf(cmd.OutOrStdout(), string(response)+"\n") + + return nil + } +} diff --git a/cmd/environments/get_test.go b/cmd/environments/get_test.go new file mode 100644 index 00000000..01adb36e --- /dev/null +++ b/cmd/environments/get_test.go @@ -0,0 +1,102 @@ +package environments_test + +import ( + "ldcli/cmd" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "ldcli/internal/environments" + "ldcli/internal/errors" +) + +func TestGet(t *testing.T) { + errorHelp := ". See `ldcli environments get --help` for supported flags and usage." + mockArgs := []interface{}{ + "testAccessToken", + "https://app.launchdarkly.com", + "test-env", + "test-proj", + } + t.Run("with valid environments calls projects API", func(t *testing.T) { + client := environments.MockClient{} + client. + On("Get", mockArgs...). + Return([]byte(cmd.ValidResponse), nil) + args := []string{ + "environments", "get", + "--api-token", "testAccessToken", + "--environment", "test-env", + "--project", "test-proj", + } + + output, err := cmd.CallCmd(t, &client, nil, nil, nil, args) + + require.NoError(t, err) + assert.JSONEq(t, `{"valid": true}`, string(output)) + }) + + t.Run("with an error response is an error", func(t *testing.T) { + client := environments.MockClient{} + client. + On("Get", mockArgs...). + Return([]byte(`{}`), errors.NewError("An error")) + args := []string{ + "environments", "get", + "--api-token", "testAccessToken", + "--environment", "test-env", + "--project", "test-proj", + } + + _, err := cmd.CallCmd(t, &client, nil, nil, nil, args) + + require.EqualError(t, err, "An error") + }) + + t.Run("with missing required environments is an error", func(t *testing.T) { + args := []string{ + "environments", "get", + } + + _, err := cmd.CallCmd(t, &environments.MockClient{}, nil, nil, nil, args) + + assert.EqualError(t, err, `required flag(s) "api-token", "environment", "project" not set`+errorHelp) + }) + + t.Run("with missing short flag value is an error", func(t *testing.T) { + args := []string{ + "environments", "get", + "-e", + } + + _, err := cmd.CallCmd(t, &environments.MockClient{}, nil, nil, nil, args) + + assert.EqualError(t, err, `flag needs an argument: 'e' in -e`) + }) + + t.Run("with missing long flag value is an error", func(t *testing.T) { + args := []string{ + "environments", "get", + "--environment", + } + + _, err := cmd.CallCmd(t, &environments.MockClient{}, nil, nil, nil, args) + + assert.EqualError(t, err, `flag needs an argument: --environment`) + }) + + t.Run("with invalid base-uri is an error", func(t *testing.T) { + args := []string{ + "environments", "get", + "--api-token", "testAccessToken", + "--base-uri", "invalid", + "--environment", "test-env", + "--project", "test-proj", + } + + _, err := cmd.CallCmd(t, &environments.MockClient{}, nil, nil, nil, args) + + assert.EqualError(t, err, "base-uri is invalid"+errorHelp) + }) +} diff --git a/cmd/flags/create_test.go b/cmd/flags/create_test.go index 1cc7d657..cf22ae51 100644 --- a/cmd/flags/create_test.go +++ b/cmd/flags/create_test.go @@ -33,7 +33,7 @@ func TestCreate(t *testing.T) { "--project", "test-proj-key", } - output, err := cmd.CallCmd(t, &client, nil, nil, args) + output, err := cmd.CallCmd(t, nil, &client, nil, nil, args) require.NoError(t, err) assert.JSONEq(t, `{"valid": true}`, string(output)) @@ -52,7 +52,7 @@ func TestCreate(t *testing.T) { "--project", "test-proj-key", } - _, err := cmd.CallCmd(t, &client, nil, nil, args) + _, err := cmd.CallCmd(t, nil, &client, nil, nil, args) require.EqualError(t, err, "An error") }) @@ -62,7 +62,7 @@ func TestCreate(t *testing.T) { "flags", "create", } - _, err := cmd.CallCmd(t, &flags.MockClient{}, nil, nil, args) + _, err := cmd.CallCmd(t, nil, &flags.MockClient{}, nil, nil, args) assert.EqualError(t, err, `required flag(s) "api-token", "data", "project" not set`+errorHelp) }) @@ -73,7 +73,7 @@ func TestCreate(t *testing.T) { "-d", } - _, err := cmd.CallCmd(t, &flags.MockClient{}, nil, nil, args) + _, err := cmd.CallCmd(t, nil, &flags.MockClient{}, nil, nil, args) assert.EqualError(t, err, `flag needs an argument: 'd' in -d`) }) @@ -84,7 +84,7 @@ func TestCreate(t *testing.T) { "--data", } - _, err := cmd.CallCmd(t, &flags.MockClient{}, nil, nil, args) + _, err := cmd.CallCmd(t, nil, &flags.MockClient{}, nil, nil, args) assert.EqualError(t, err, `flag needs an argument: --data`) }) @@ -98,7 +98,7 @@ func TestCreate(t *testing.T) { "--project", "test-proj-key", } - _, err := cmd.CallCmd(t, &flags.MockClient{}, nil, nil, args) + _, err := cmd.CallCmd(t, nil, &flags.MockClient{}, nil, nil, args) assert.EqualError(t, err, "base-uri is invalid"+errorHelp) }) diff --git a/cmd/flags/update_test.go b/cmd/flags/update_test.go index a1e5a36f..16bcc26a 100644 --- a/cmd/flags/update_test.go +++ b/cmd/flags/update_test.go @@ -41,7 +41,7 @@ func TestUpdate(t *testing.T) { "--project", "test-proj-key", } - output, err := cmd.CallCmd(t, &client, nil, nil, args) + output, err := cmd.CallCmd(t, nil, &client, nil, nil, args) require.NoError(t, err) assert.JSONEq(t, `{"valid": true}`, string(output)) @@ -61,7 +61,7 @@ func TestUpdate(t *testing.T) { "--project", "test-proj-key", } - _, err := cmd.CallCmd(t, &client, nil, nil, args) + _, err := cmd.CallCmd(t, nil, &client, nil, nil, args) require.EqualError(t, err, "An error") }) @@ -71,7 +71,7 @@ func TestUpdate(t *testing.T) { "flags", "update", } - _, err := cmd.CallCmd(t, &flags.MockClient{}, nil, nil, args) + _, err := cmd.CallCmd(t, nil, &flags.MockClient{}, nil, nil, args) assert.EqualError(t, err, `required flag(s) "api-token", "data", "flag", "project" not set`+errorHelp) }) @@ -85,7 +85,7 @@ func TestUpdate(t *testing.T) { "--project", "test-proj-key", } - _, err := cmd.CallCmd(t, &flags.MockClient{}, nil, nil, args) + _, err := cmd.CallCmd(t, nil, &flags.MockClient{}, nil, nil, args) assert.EqualError(t, err, "base-uri is invalid"+errorHelp) }) diff --git a/cmd/members/create_test.go b/cmd/members/create_test.go index b9b49b0e..38a8a095 100644 --- a/cmd/members/create_test.go +++ b/cmd/members/create_test.go @@ -35,7 +35,7 @@ func TestCreate(t *testing.T) { `{"email": "testemail@test.com", "role": "writer"}`, } - output, err := cmd.CallCmd(t, nil, &client, nil, args) + output, err := cmd.CallCmd(t, nil, nil, &client, nil, args) require.NoError(t, err) assert.JSONEq(t, `{"valid": true}`, string(output)) @@ -57,7 +57,7 @@ func TestCreate(t *testing.T) { `{"email": "testemail@test.com", "role": "writer"}`, } - _, err := cmd.CallCmd(t, nil, &client, nil, args) + _, err := cmd.CallCmd(t, nil, nil, &client, nil, args) require.EqualError(t, err, "An error") }) @@ -68,7 +68,7 @@ func TestCreate(t *testing.T) { "create", } - _, err := cmd.CallCmd(t, nil, &members.MockClient{}, nil, args) + _, err := cmd.CallCmd(t, nil, nil, &members.MockClient{}, nil, args) assert.EqualError(t, err, `required flag(s) "api-token", "data" not set`+errorHelp) }) @@ -80,7 +80,7 @@ func TestCreate(t *testing.T) { "--base-uri", "invalid", } - _, err := cmd.CallCmd(t, nil, &members.MockClient{}, nil, args) + _, err := cmd.CallCmd(t, nil, nil, &members.MockClient{}, nil, args) assert.EqualError(t, err, "base-uri is invalid"+errorHelp) }) diff --git a/cmd/members/invite_test.go b/cmd/members/invite_test.go index 617c8e67..6cfc1897 100644 --- a/cmd/members/invite_test.go +++ b/cmd/members/invite_test.go @@ -35,7 +35,7 @@ func TestInvite(t *testing.T) { `testemail1@test.com,testemail2@test.com`, } - output, err := cmd.CallCmd(t, nil, &client, nil, args) + output, err := cmd.CallCmd(t, nil, nil, &client, nil, args) require.NoError(t, err) assert.JSONEq(t, `{"valid": true}`, string(output)) @@ -57,7 +57,7 @@ func TestInvite(t *testing.T) { `testemail1@test.com,testemail2@test.com`, } - _, err := cmd.CallCmd(t, nil, &client, nil, args) + _, err := cmd.CallCmd(t, nil, nil, &client, nil, args) require.EqualError(t, err, "An error") }) @@ -68,7 +68,7 @@ func TestInvite(t *testing.T) { "invite", } - _, err := cmd.CallCmd(t, nil, &members.MockClient{}, nil, args) + _, err := cmd.CallCmd(t, nil, nil, &members.MockClient{}, nil, args) assert.EqualError(t, err, `required flag(s) "api-token", "emails" not set`+errorHelp) }) @@ -80,7 +80,7 @@ func TestInvite(t *testing.T) { "--base-uri", "invalid", } - _, err := cmd.CallCmd(t, nil, &members.MockClient{}, nil, args) + _, err := cmd.CallCmd(t, nil, nil, &members.MockClient{}, nil, args) assert.EqualError(t, err, "base-uri is invalid"+errorHelp) }) @@ -111,7 +111,7 @@ func TestInviteWithOptionalRole(t *testing.T) { "writer", } - output, err := cmd.CallCmd(t, nil, &client, nil, args) + output, err := cmd.CallCmd(t, nil, nil, &client, nil, args) require.NoError(t, err) assert.JSONEq(t, `{"valid": true}`, string(output)) @@ -135,7 +135,7 @@ func TestInviteWithOptionalRole(t *testing.T) { "writer", } - output, err := cmd.CallCmd(t, nil, &client, nil, args) + output, err := cmd.CallCmd(t, nil, nil, &client, nil, args) require.NoError(t, err) assert.JSONEq(t, `{"valid": true}`, string(output)) diff --git a/cmd/projects/create_test.go b/cmd/projects/create_test.go index bad710e7..73a0d2e2 100644 --- a/cmd/projects/create_test.go +++ b/cmd/projects/create_test.go @@ -35,7 +35,7 @@ func TestCreate(t *testing.T) { `{"key": "test-key", "name": "test-name"}`, } - output, err := cmd.CallCmd(t, nil, nil, &client, args) + output, err := cmd.CallCmd(t, nil, nil, nil, &client, args) require.NoError(t, err) assert.JSONEq(t, `{"valid": true}`, string(output)) @@ -57,7 +57,7 @@ func TestCreate(t *testing.T) { `{"key": "test-key", "name": "test-name"}`, } - _, err := cmd.CallCmd(t, nil, nil, &client, args) + _, err := cmd.CallCmd(t, nil, nil, nil, &client, args) require.EqualError(t, err, "An error") }) @@ -68,7 +68,7 @@ func TestCreate(t *testing.T) { "create", } - _, err := cmd.CallCmd(t, nil, nil, &projects.MockClient{}, args) + _, err := cmd.CallCmd(t, nil, nil, nil, &projects.MockClient{}, args) assert.EqualError(t, err, `required flag(s) "api-token", "data" not set`+errorHelp) }) @@ -79,7 +79,7 @@ func TestCreate(t *testing.T) { "-d", } - _, err := cmd.CallCmd(t, nil, nil, &projects.MockClient{}, args) + _, err := cmd.CallCmd(t, nil, nil, nil, &projects.MockClient{}, args) assert.EqualError(t, err, `flag needs an argument: 'd' in -d`) }) @@ -90,7 +90,7 @@ func TestCreate(t *testing.T) { "--data", } - _, err := cmd.CallCmd(t, nil, nil, &projects.MockClient{}, args) + _, err := cmd.CallCmd(t, nil, nil, nil, &projects.MockClient{}, args) assert.EqualError(t, err, `flag needs an argument: --data`) }) @@ -102,7 +102,7 @@ func TestCreate(t *testing.T) { "--base-uri", "invalid", } - _, err := cmd.CallCmd(t, nil, nil, &projects.MockClient{}, args) + _, err := cmd.CallCmd(t, nil, nil, nil, &projects.MockClient{}, args) assert.EqualError(t, err, "base-uri is invalid"+errorHelp) }) diff --git a/cmd/projects/list_test.go b/cmd/projects/list_test.go index 91c256e5..c516ded0 100644 --- a/cmd/projects/list_test.go +++ b/cmd/projects/list_test.go @@ -28,7 +28,7 @@ func TestList(t *testing.T) { "--base-uri", "http://test.com", } - output, err := cmd.CallCmd(t, nil, nil, &client, args) + output, err := cmd.CallCmd(t, nil, nil, nil, &client, args) require.NoError(t, err) assert.JSONEq(t, `{"valid": true}`, string(output)) @@ -45,7 +45,7 @@ func TestList(t *testing.T) { "--base-uri", "http://test.com", } - _, err := cmd.CallCmd(t, nil, nil, &client, args) + _, err := cmd.CallCmd(t, nil, nil, nil, &client, args) require.EqualError(t, err, "an error") }) @@ -55,7 +55,7 @@ func TestList(t *testing.T) { "projects", "list", } - _, err := cmd.CallCmd(t, nil, nil, &projects.MockClient{}, args) + _, err := cmd.CallCmd(t, nil, nil, nil, &projects.MockClient{}, args) assert.EqualError(t, err, `required flag(s) "api-token" not set`+errorHelp) }) @@ -66,7 +66,7 @@ func TestList(t *testing.T) { "--api-token", } - _, err := cmd.CallCmd(t, nil, nil, &projects.MockClient{}, args) + _, err := cmd.CallCmd(t, nil, nil, nil, &projects.MockClient{}, args) assert.EqualError(t, err, `flag needs an argument: --api-token`) }) @@ -78,7 +78,7 @@ func TestList(t *testing.T) { "--base-uri", "invalid", } - _, err := cmd.CallCmd(t, nil, nil, &projects.MockClient{}, args) + _, err := cmd.CallCmd(t, nil, nil, nil, &projects.MockClient{}, args) assert.EqualError(t, err, "base-uri is invalid"+errorHelp) }) diff --git a/cmd/root.go b/cmd/root.go index 4a30d427..aec4755e 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -9,15 +9,23 @@ import ( "github.com/spf13/viper" "ldcli/cmd/cliflags" + envscmd "ldcli/cmd/environments" flagscmd "ldcli/cmd/flags" mbrscmd "ldcli/cmd/members" projcmd "ldcli/cmd/projects" + "ldcli/internal/environments" "ldcli/internal/flags" "ldcli/internal/members" "ldcli/internal/projects" ) -func NewRootCommand(flagsClient flags.Client, membersClient members.Client, projectsClient projects.Client, version string) (*cobra.Command, error) { +func NewRootCommand( + environmentsClient environments.Client, + flagsClient flags.Client, + membersClient members.Client, + projectsClient projects.Client, + version string, +) (*cobra.Command, error) { cmd := &cobra.Command{ Use: "ldcli", Short: "LaunchDarkly CLI", @@ -55,6 +63,10 @@ func NewRootCommand(flagsClient flags.Client, membersClient members.Client, proj return nil, err } + environmentsCmd, err := envscmd.NewEnvironmentsCmd(environmentsClient) + if err != nil { + return nil, err + } flagsCmd, err := flagscmd.NewFlagsCmd(flagsClient) if err != nil { return nil, err @@ -68,10 +80,11 @@ func NewRootCommand(flagsClient flags.Client, membersClient members.Client, proj return nil, err } - cmd.AddCommand(NewQuickStartCmd(flagsClient)) + cmd.AddCommand(environmentsCmd) cmd.AddCommand(flagsCmd) cmd.AddCommand(membersCmd) cmd.AddCommand(projectsCmd) + cmd.AddCommand(NewQuickStartCmd(flagsClient)) cmd.AddCommand(setupCmd) return cmd, nil @@ -79,6 +92,7 @@ func NewRootCommand(flagsClient flags.Client, membersClient members.Client, proj func Execute(version string) { rootCmd, err := NewRootCommand( + environments.NewClient(version), flags.NewClient(version), members.NewClient(version), projects.NewClient(version), diff --git a/cmd/root_test.go b/cmd/root_test.go index b7dac8cc..dfde30b6 100644 --- a/cmd/root_test.go +++ b/cmd/root_test.go @@ -5,18 +5,15 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - - "ldcli/internal/flags" ) func TestCreate(t *testing.T) { t.Run("with valid flags prints version", func(t *testing.T) { - client := flags.MockClient{} args := []string{ "--version", } - output, err := CallCmd(t, &client, nil, nil, args) + output, err := CallCmd(t, nil, nil, nil, nil, args) require.NoError(t, err) assert.Contains(t, string(output), `ldcli version test`) diff --git a/internal/environments/client.go b/internal/environments/client.go new file mode 100644 index 00000000..39af1d41 --- /dev/null +++ b/internal/environments/client.go @@ -0,0 +1,47 @@ +package environments + +import ( + "context" + "encoding/json" + + "ldcli/internal/client" + "ldcli/internal/errors" +) + +type Client interface { + Get(ctx context.Context, accessToken, baseURI, key, projKey string) ([]byte, error) +} + +type EnvironmentsClient struct { + cliVersion string +} + +var _ Client = EnvironmentsClient{} + +func NewClient(cliVersion string) EnvironmentsClient { + return EnvironmentsClient{ + cliVersion: cliVersion, + } +} + +func (c EnvironmentsClient) Get( + ctx context.Context, + accessToken, + baseURI, + key, + projectKey string, +) ([]byte, error) { + client := client.New(accessToken, baseURI, c.cliVersion) + environment, _, err := client.EnvironmentsApi.GetEnvironment(ctx, projectKey, key).Execute() + if err != nil { + return nil, errors.NewLDAPIError(err) + + } + + responseJSON, err := json.Marshal(environment) + if err != nil { + return nil, err + } + + return responseJSON, nil +} diff --git a/internal/environments/mock_client.go b/internal/environments/mock_client.go new file mode 100644 index 00000000..c53ff20c --- /dev/null +++ b/internal/environments/mock_client.go @@ -0,0 +1,25 @@ +package environments + +import ( + "context" + + "github.com/stretchr/testify/mock" +) + +type MockClient struct { + mock.Mock +} + +var _ Client = &MockClient{} + +func (c *MockClient) Get( + ctx context.Context, + accessToken, + baseURI, + key, + projKey string, +) ([]byte, error) { + args := c.Called(accessToken, baseURI, key, projKey) + + return args.Get(0).([]byte), args.Error(1) +} From c4bae136de158c6e7796c349538d15b2ca3131fb Mon Sep 17 00:00:00 2001 From: Danny Olson Date: Fri, 29 Mar 2024 16:18:13 -0700 Subject: [PATCH 2/2] Remove println --- cmd/environments/environments.go | 4 ++-- cmd/environments/get.go | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cmd/environments/environments.go b/cmd/environments/environments.go index cb2e89f4..7f1bf9e9 100644 --- a/cmd/environments/environments.go +++ b/cmd/environments/environments.go @@ -1,9 +1,9 @@ package environments import ( - "ldcli/internal/environments" - "github.com/spf13/cobra" + + "ldcli/internal/environments" ) func NewEnvironmentsCmd(client environments.Client) (*cobra.Command, error) { diff --git a/cmd/environments/get.go b/cmd/environments/get.go index 92970439..fcad88d5 100644 --- a/cmd/environments/get.go +++ b/cmd/environments/get.go @@ -58,7 +58,6 @@ func runGet(client environments.Client) func(*cobra.Command, []string) error { viper.GetString(cliflags.ProjectFlag), ) if err != nil { - fmt.Println(">>> err1", err) return err }