diff --git a/cmd/project/create_samples.go b/cmd/project/create_samples.go index e466dd05..d1ec716d 100644 --- a/cmd/project/create_samples.go +++ b/cmd/project/create_samples.go @@ -43,7 +43,6 @@ func promptSampleSelection(ctx context.Context, clients *shared.ClientFactory, s iostreams.SelectPromptConfig{ Flags: []*pflag.Flag{ clients.Config.Flags.Lookup("language"), - clients.Config.Flags.Lookup("template"), // Skip filtering with a template }, Required: false, }, @@ -69,12 +68,10 @@ func promptSampleSelection(ctx context.Context, clients *shared.ClientFactory, s selectOptions[i] = r.Name } - var selectedTemplate string selection, err = clients.IO.SelectPrompt(ctx, "Select a sample to build upon:", selectOptions, iostreams.SelectPromptConfig{ Description: func(value string, index int) string { return sortedRepos[index].Description }, - Flag: clients.Config.Flags.Lookup("template"), Help: fmt.Sprintf("Guided tutorials can be found at %s", style.LinkText("https://docs.slack.dev/samples")), PageSize: 4, // Supports standard terminal height (24 rows) Required: true, @@ -82,12 +79,8 @@ func promptSampleSelection(ctx context.Context, clients *shared.ClientFactory, s }) if err != nil { return "", err - } else if selection.Flag { - selectedTemplate = selection.Option - } else if selection.Prompt { - selectedTemplate = sortedRepos[selection.Index].FullName } - return selectedTemplate, nil + return sortedRepos[selection.Index].FullName, nil } // filterRepos returns a list of samples matching the provided project type diff --git a/cmd/project/samples.go b/cmd/project/samples.go index 30352d4d..2d680943 100644 --- a/cmd/project/samples.go +++ b/cmd/project/samples.go @@ -28,8 +28,6 @@ import ( ) // Flags -var samplesTemplateURLFlag string -var samplesGitBranchFlag string var samplesListFlag bool var samplesLanguageFlag string @@ -56,13 +54,6 @@ func NewSamplesCommand(clients *shared.ClientFactory) *cobra.Command { }, } - // DEPRECATED(semver:major): Prefer the create command when repository details are known - cmd.Flags().StringVarP(&samplesGitBranchFlag, "branch", "b", "", "name of git branch to checkout") - cmd.Flag("branch").Hidden = true - // DEPRECATED(semver:major): Prefer the create command when repository details are known - cmd.Flags().StringVarP(&samplesTemplateURLFlag, "template", "t", "", "template URL for your app") - cmd.Flag("template").Hidden = true - cmd.Flags().StringVar(&samplesLanguageFlag, "language", "", "runtime for the app framework\n ex: \"deno\", \"node\", \"python\"") cmd.Flags().BoolVar(&samplesListFlag, "list", false, "prints samples without interactivity") @@ -73,11 +64,6 @@ func NewSamplesCommand(clients *shared.ClientFactory) *cobra.Command { func runSamplesCommand(clients *shared.ClientFactory, cmd *cobra.Command, args []string) error { ctx := cmd.Context() - // DEPRECATED(semver:major): Prefer the create command when repository details are known - if cmd.Flag("branch").Changed || cmd.Flag("template").Changed { - clients.IO.PrintWarning(ctx, "DEPRECATED: The `--branch` and `--template` flags are deprecated for the `samples` command; use the `create` command instead") - } - sampler := api.NewHTTPClient(api.HTTPClientOptions{ TotalTimeOut: 60 * time.Second, }) @@ -100,16 +86,11 @@ func runSamplesCommand(clients *shared.ClientFactory, cmd *cobra.Command, args [ // Instantiate the `create` command to call it using programmatically set flags createCmd := NewCreateCommand(clients) - // Prepare template and branch flags with selected or provided repo values + // Prepare the template flag with the selected repo value if err := createCmd.Flag("template").Value.Set(selectedSample); err != nil { return err } createCmd.Flag("template").Changed = true - if err := createCmd.Flag("branch").Value.Set(samplesGitBranchFlag); err != nil { - return err - } - createCmd.Flag("branch").Changed = cmd.Flag("branch").Changed - // If preferred directory name is passed in as an argument to the `create` // command first, honor that preference and use it to create the project createCmd.SetArgs(args) diff --git a/cmd/project/samples_test.go b/cmd/project/samples_test.go index 3cdc3d3d..754de310 100644 --- a/cmd/project/samples_test.go +++ b/cmd/project/samples_test.go @@ -25,10 +25,10 @@ import ( "github.com/spf13/cobra" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" ) func TestSamplesCommand(t *testing.T) { + var capturedArgs createPkg.CreateArgs testutil.TableTestCommand(t, testutil.CommandTests{ "creates a template from a trusted sample": { CmdArgs: []string{"my-sample-app"}, @@ -72,6 +72,7 @@ func TestSamplesCommand(t *testing.T) { nil, ) CreateFunc = func(ctx context.Context, clients *shared.ClientFactory, createArgs createPkg.CreateArgs) (appDirPath string, err error) { + capturedArgs = createArgs return createArgs.AppName, nil } }, @@ -79,22 +80,8 @@ func TestSamplesCommand(t *testing.T) { "cd my-sample-app/", }, ExpectedAsserts: func(t *testing.T, ctx context.Context, cm *shared.ClientsMock) { - for _, call := range cm.IO.Calls { - switch call.Method { - case "SelectPrompt": - args := call.Arguments - opts := args.Get(3).(iostreams.SelectPromptConfig) - flag := opts.Flag - switch args.String(1) { - case "Select a sample to build upon:": - require.Equal(t, "template", flag.Name) - assert.Equal(t, "", flag.Value.String()) - case "Select a template to build from:": - require.Equal(t, "template", flag.Name) - assert.Equal(t, "slack-samples/deno-starter-template", flag.Value.String()) - } - } - } + assert.Equal(t, "my-sample-app", capturedArgs.AppName) + assert.Equal(t, "slack-samples/deno-starter-template", capturedArgs.Template.GetTemplatePath()) }, }, "lists available samples matching a language": {