@@ -466,6 +466,32 @@ func (o *SomeStruct) WithAlias(in Alias) *SomeStruct {
466466 assert .Equal (t , want , b .String ())
467467}
468468
469+ func TestGenerateSetterForStringEnum (t * testing.T ) {
470+ t .Parallel ()
471+
472+ ctx , err := newTestGeneratorContext ()
473+ require .NoError (t , err )
474+
475+ someStruct := newTestType (t , "SomeStruct" )
476+ anEnumType := newTestType (t , "AnEnum" )
477+ root := someStruct
478+ member := getMemberFromType (t , someStruct , "SomeStruct" , "AnEnum" )
479+ parent := getMemberFromType (t , someStruct , "SomeStruct" )
480+ want := `// WithAnEnum is an autogenerated function
481+ func (o *SomeStruct) WithAnEnum(in AnEnum) *SomeStruct {
482+ o.SomeStruct.AnEnum = b.AliasOfString(in)
483+ return o
484+ }
485+
486+ `
487+ var b bytes.Buffer
488+ setter := NewSetter (root , parent .Type , true )
489+ sw := generator .NewSnippetWriter (& b , ctx , "$" , "$" )
490+ sw .Do (setter .GenerateSetterForTypeEnum (member , anEnumType ))
491+ assert .NoError (t , sw .Error ())
492+ assert .Equal (t , want , b .String ())
493+ }
494+
469495func TestMemberAccessor (t * testing.T ) {
470496 t .Parallel ()
471497
0 commit comments