wmio import: also trim name and add extra tests

This commit is contained in:
Wouter Groeneveld 2022-06-22 21:28:55 +02:00
parent 6503037098
commit 92252f8bc9
2 changed files with 51 additions and 2 deletions

View File

@ -118,10 +118,11 @@ func sourceOf(wmio WebmentionIOMention) string {
}
func nameOf(wmio WebmentionIOMention, iType mf.MfType) string {
name := wmio.Data.Name
if (iType == mf.TypeReply || iType == mf.TypeLike) && wmio.Data.Name == "" {
return wmio.Data.Content
name = wmio.Data.Content
}
return wmio.Data.Name
return common.Shorten(name)
}
func contentOf(wmio WebmentionIOMention, iType mf.MfType) string {

View File

@ -7,6 +7,54 @@ import (
"time"
)
func TestTryImportName(t *testing.T) {
wmio := &WebmentionIOImporter{}
cases := []struct {
label string
mention string
expectedDate string
}{
{
"Just use name",
`{ "links": [ { "data": { "name": "jefke" } } ] }`,
"jefke",
},
{
"Trim name if longer than 250 chars",
`{ "links": [ { "data": { "name": "a;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfj" } } ] }`,
"a;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;askdfj;alskdfja;dslfkja;dlfkja;ldkfja;ldkfjla;dkfja;ldkjfa;ldkjfl;...",
},
{
"Use content if name is empty in case of reply",
`{ "links": [ { "activity": { "type": "reply" }, "data": { "name": "", "content": "wouter" } } ] }`,
"wouter",
},
{
"Use content if name is empty in case of like",
`{ "links": [ { "activity": { "type": "like" }, "data": { "name": "", "content": "wouter" } } ] }`,
"wouter",
},
{
"Use name if name is not empty in case of reply",
`{ "links": [ { "activity": { "type": "reply" }, "data": { "name": "jef", "content": "wouter" } } ] }`,
"jef",
}, {
"Use name if name is not empty in case of like",
`{ "links": [ { "activity": { "type": "like" }, "data": { "name": "jef", "content": "wouter" } } ] }`,
"jef",
},
}
for _, tc := range cases {
t.Run(tc.label, func(t *testing.T) {
res, err := wmio.TryImport([]byte(tc.mention))
assert.NoError(t, err)
assert.Equal(t, tc.expectedDate, res[0].Name)
})
}
}
func TestTryImportBridgyUrl(t *testing.T) {
wmio := &WebmentionIOImporter{}
cases := []struct {