diff --git a/builder.go b/builder.go index fab2b2b..a2c4a0a 100644 --- a/builder.go +++ b/builder.go @@ -235,11 +235,11 @@ func (s *Builder) Options() []*agentv0.Question { Message: "Name of the database?", Description: "Ensure encapsulation of your data", }, s.Base.Identity.Module), - communicate.NewChoice(&agentv0.Message{ + communicate.NewChoiceWithDefault(&agentv0.Message{ Name: MigrationFormat, Message: "Choose migration format", Description: "Select the database migration tool you prefer", - }, + }, "gomigrate", &agentv0.Message{ Name: "gomigrate", Message: "Golang Migrate", diff --git a/headless_test.go b/headless_test.go new file mode 100644 index 0000000..df297fe --- /dev/null +++ b/headless_test.go @@ -0,0 +1,25 @@ +package main + +import ( + "testing" + + "github.com/codefly-dev/core/agents/communicate" + "github.com/codefly-dev/core/resources" + "github.com/stretchr/testify/require" +) + +func TestCreationQuestionsDeclareHeadlessDefaults(t *testing.T) { + builder := NewBuilder() + builder.Base.Identity = &resources.ServiceIdentity{Module: "app", Name: "database"} + foundMigration := false + for _, question := range builder.Options() { + answer, err := communicate.AnswerDefault(question) + require.NoError(t, err, "question %s", question.GetMessage().GetName()) + if question.GetMessage().GetName() == MigrationFormat { + foundMigration = true + require.Equal(t, builder.Settings.MigrationFormat, answer.GetChoice().GetOption()) + require.Equal(t, "gomigrate", answer.GetChoice().GetOption()) + } + } + require.True(t, foundMigration) +}