github.com/mongodb/grip@v0.0.0-20240213223901-f906268d82b9/message/slack_test.go (about) 1 package message 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/slack-go/slack" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestSlackAttachmentFieldConvert(t *testing.T) { 12 assert := assert.New(t) //nolint 13 14 gripField := SlackAttachmentField{ 15 Title: "1", 16 Value: "2", 17 Short: true, 18 } 19 slackField := gripField.convert() 20 21 assert.Equal("1", slackField.Title) 22 assert.Equal("2", slackField.Value) 23 assert.True(slackField.Short) 24 } 25 26 func TestSlackAttachmentConvert(t *testing.T) { 27 assert := assert.New(t) //nolint 28 29 af := SlackAttachmentField{ 30 Title: "1", 31 Value: "2", 32 Short: true, 33 } 34 35 at := SlackAttachment{ 36 Color: "1", 37 Fallback: "2", 38 AuthorName: "3", 39 AuthorIcon: "6", 40 Title: "7", 41 TitleLink: "8", 42 Text: "10", 43 Fields: []*SlackAttachmentField{&af}, 44 MarkdownIn: []string{"15", "16"}, 45 } 46 slackAttachment := at.convert() 47 48 assert.Equal("1", slackAttachment.Color) 49 assert.Equal("2", slackAttachment.Fallback) 50 assert.Equal("3", slackAttachment.AuthorName) 51 assert.Equal("6", slackAttachment.AuthorIcon) 52 assert.Equal("7", slackAttachment.Title) 53 assert.Equal("8", slackAttachment.TitleLink) 54 assert.Equal("10", slackAttachment.Text) 55 assert.Equal([]string{"15", "16"}, slackAttachment.MarkdownIn) 56 assert.Len(slackAttachment.Fields, 1) 57 assert.Equal("1", slackAttachment.Fields[0].Title) 58 assert.Equal("2", slackAttachment.Fields[0].Value) 59 assert.True(slackAttachment.Fields[0].Short) 60 } 61 62 func TestSlackAttachmentIsSame(t *testing.T) { 63 assert := assert.New(t) //nolint 64 65 grip := SlackAttachment{} 66 slack := slack.Attachment{} 67 68 vGrip := reflect.TypeOf(grip) 69 vSlack := reflect.TypeOf(slack) 70 71 for i := 0; i < vSlack.NumField(); i++ { 72 slackField := vSlack.Field(i) 73 gripField, found := vGrip.FieldByName(slackField.Name) 74 if !found { 75 continue 76 } 77 78 referenceTag := slackField.Tag.Get("json") 79 assert.NotEmpty(referenceTag) 80 jsonTag := gripField.Tag.Get("json") 81 assert.Equal(referenceTag, jsonTag, "SlackAttachment.%s should have json tag with value: \"%s\"", gripField.Name, referenceTag) 82 bsonTag := gripField.Tag.Get("bson") 83 assert.Equal(referenceTag, bsonTag, "SlackAttachment.%s should have bson tag with value: \"%s\"", gripField.Name, referenceTag) 84 yamlTag := gripField.Tag.Get("yaml") 85 assert.Equal(referenceTag, yamlTag, "SlackAttachment.%s should have yaml tag with value: \"%s\"", gripField.Name, referenceTag) 86 } 87 88 } 89 90 func TestSlackAttachmentFieldIsSame(t *testing.T) { 91 assert := assert.New(t) //nolint 92 93 gripStruct := SlackAttachmentField{} 94 slackStruct := slack.AttachmentField{} 95 96 vGrip := reflect.TypeOf(gripStruct) 97 vSlack := reflect.TypeOf(slackStruct) 98 99 assert.Equal(vSlack.NumField(), vGrip.NumField()) 100 for i := 0; i < vSlack.NumField(); i++ { 101 slackField := vSlack.Field(i) 102 gripField, found := vGrip.FieldByName(slackField.Name) 103 assert.True(found, "field %s found in slack.AttachmentField, but not in message.SlackAttachmentField", slackField.Name) 104 if !found { 105 continue 106 } 107 108 referenceTag := slackField.Tag.Get("json") 109 assert.NotEmpty(referenceTag) 110 jsonTag := gripField.Tag.Get("json") 111 assert.Equal(referenceTag, jsonTag, "SlackAttachmentField.%s should have json tag with value: \"%s\"", gripField.Name, referenceTag) 112 bsonTag := gripField.Tag.Get("bson") 113 assert.Equal(referenceTag, bsonTag, "SlackAttachmentField.%s should have bson tag with value: \"%s\"", gripField.Name, referenceTag) 114 yamlTag := gripField.Tag.Get("yaml") 115 assert.Equal(referenceTag, yamlTag, "SlackAttachmentField.%s should have yaml tag with value: \"%s\"", gripField.Name, referenceTag) 116 117 assert.Equal(slackField.Type.Kind(), gripField.Type.Kind()) 118 } 119 }