From b8b417a3de37240e5fea221d4d756210375b81da Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 12 Aug 2021 20:59:09 -0300 Subject: [PATCH] add no message condition to avoid false check --- integration/cmd_map_test.go | 8 ++++++++ starport/services/scaffolder/component.go | 19 +++++++++++-------- starport/services/scaffolder/message.go | 2 +- starport/services/scaffolder/oracle.go | 2 +- starport/services/scaffolder/packet.go | 2 +- starport/services/scaffolder/query.go | 2 +- starport/services/scaffolder/type.go | 2 +- 7 files changed, 24 insertions(+), 13 deletions(-) diff --git a/integration/cmd_map_test.go b/integration/cmd_map_test.go index dd5b65e82c..06652b77fd 100644 --- a/integration/cmd_map_test.go +++ b/integration/cmd_map_test.go @@ -64,6 +64,14 @@ func TestCreateMapWithStargate(t *testing.T) { )), )) + env.Must(env.Exec("create a message and a map with no-message flag to check conflicts", + step.NewSteps(step.New( + step.Exec("starport", "s", "message", "create-scavenge", "description"), + step.Exec("starport", "s", "map", "scavenge", "description", "--no-message"), + step.Workdir(path), + )), + )) + env.Must(env.Exec("should prevent creating a map with duplicated indexes", step.NewSteps(step.New( step.Exec("starport", "s", "map", "map_with_duplicated_index", "email", "--index", "foo,foo"), diff --git a/starport/services/scaffolder/component.go b/starport/services/scaffolder/component.go index f974d0de12..de0e89bad9 100644 --- a/starport/services/scaffolder/component.go +++ b/starport/services/scaffolder/component.go @@ -56,7 +56,7 @@ func isMsgServerDefined(appPath, moduleName string) (bool, error) { } // checkComponentValidity performs various checks common to all components to verify if it can be scaffolded -func checkComponentValidity(appPath, moduleName string, compName multiformatname.Name) error { +func checkComponentValidity(appPath, moduleName string, compName multiformatname.Name, noMessage bool) error { ok, err := moduleExists(appPath, moduleName) if err != nil { return err @@ -71,7 +71,7 @@ func checkComponentValidity(appPath, moduleName string, compName multiformatname } // Check component name is not already used - return checkComponentCreated(appPath, moduleName, compName) + return checkComponentCreated(appPath, moduleName, compName, noMessage) } // checkForbiddenComponentName returns true if the name is forbidden as a component name @@ -144,25 +144,28 @@ func checkGoReservedWord(name string) error { } // checkComponentCreated checks if the component has been already created with Starport in the project -func checkComponentCreated(appPath, moduleName string, compName multiformatname.Name) (err error) { +func checkComponentCreated(appPath, moduleName string, compName multiformatname.Name, noMessage bool) (err error) { // associate the type to check with the component that scaffold this type typesToCheck := map[string]string{ compName.UpperCamel: componentType, - "MsgCreate" + compName.UpperCamel: componentType, - "MsgUpdate" + compName.UpperCamel: componentType, - "MsgDelete" + compName.UpperCamel: componentType, "QueryAll" + compName.UpperCamel + "Request": componentType, "QueryAll" + compName.UpperCamel + "Response": componentType, "QueryGet" + compName.UpperCamel + "Request": componentType, "QueryGet" + compName.UpperCamel + "Response": componentType, - "Msg" + compName.UpperCamel: componentMessage, "Query" + compName.UpperCamel + "Request": componentQuery, "Query" + compName.UpperCamel + "Response": componentQuery, - "MsgSend" + compName.UpperCamel: componentPacket, compName.UpperCamel + "PacketData": componentPacket, } + if !noMessage { + typesToCheck["MsgCreate"+compName.UpperCamel] = componentType + typesToCheck["MsgUpdate"+compName.UpperCamel] = componentType + typesToCheck["MsgDelete"+compName.UpperCamel] = componentType + typesToCheck["Msg"+compName.UpperCamel] = componentMessage + typesToCheck["MsgSend"+compName.UpperCamel] = componentPacket + } + absPath, err := filepath.Abs(filepath.Join(appPath, "x", moduleName, "types")) if err != nil { return err diff --git a/starport/services/scaffolder/message.go b/starport/services/scaffolder/message.go index e90c0ef9b6..767243b000 100644 --- a/starport/services/scaffolder/message.go +++ b/starport/services/scaffolder/message.go @@ -43,7 +43,7 @@ func (s *Scaffolder) AddMessage( return sm, err } - if err := checkComponentValidity(s.path, moduleName, name); err != nil { + if err := checkComponentValidity(s.path, moduleName, name, false); err != nil { return sm, err } diff --git a/starport/services/scaffolder/oracle.go b/starport/services/scaffolder/oracle.go index 5d9b50f610..ddb95e44d1 100644 --- a/starport/services/scaffolder/oracle.go +++ b/starport/services/scaffolder/oracle.go @@ -34,7 +34,7 @@ func (s *Scaffolder) AddOracle( return sm, err } - if err := checkComponentValidity(s.path, moduleName, name); err != nil { + if err := checkComponentValidity(s.path, moduleName, name, false); err != nil { return sm, err } diff --git a/starport/services/scaffolder/packet.go b/starport/services/scaffolder/packet.go index 4514a47fae..346563e341 100644 --- a/starport/services/scaffolder/packet.go +++ b/starport/services/scaffolder/packet.go @@ -43,7 +43,7 @@ func (s *Scaffolder) AddPacket( return sm, err } - if err := checkComponentValidity(s.path, moduleName, name); err != nil { + if err := checkComponentValidity(s.path, moduleName, name, noMessage); err != nil { return sm, err } diff --git a/starport/services/scaffolder/query.go b/starport/services/scaffolder/query.go index 2b931cedd3..83c262319d 100644 --- a/starport/services/scaffolder/query.go +++ b/starport/services/scaffolder/query.go @@ -42,7 +42,7 @@ func (s *Scaffolder) AddQuery( return sm, err } - if err := checkComponentValidity(s.path, moduleName, name); err != nil { + if err := checkComponentValidity(s.path, moduleName, name, true); err != nil { return sm, err } diff --git a/starport/services/scaffolder/type.go b/starport/services/scaffolder/type.go index 68ce5b8df4..4bae076ab2 100644 --- a/starport/services/scaffolder/type.go +++ b/starport/services/scaffolder/type.go @@ -120,7 +120,7 @@ func (s *Scaffolder) AddType( return sm, err } - if err := checkComponentValidity(s.path, moduleName, name); err != nil { + if err := checkComponentValidity(s.path, moduleName, name, o.withoutMessage); err != nil { return sm, err }