mirror of https://github.com/writeas/writefreely
A focused writing and publishing space.
https://write.with.parts
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
928 B
36 lines
928 B
4 years ago
|
package writefreely_test
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/guregu/null/zero"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/writeas/writefreely"
|
||
|
)
|
||
|
|
||
|
func TestPostSummary(t *testing.T) {
|
||
|
testCases := map[string]struct {
|
||
|
given writefreely.Post
|
||
|
expected string
|
||
|
}{
|
||
|
"no special chars": {givenPost("Content."), "Content."},
|
||
|
"HTML content": {givenPost("Content <p>with a</p> paragraph."), "Content with a paragraph."},
|
||
|
"content with escaped char": {givenPost("Content's all OK."), "Content's all OK."},
|
||
|
"multiline content": {givenPost(`Content
|
||
|
in
|
||
|
multiple
|
||
|
lines.`), "Content in multiple lines."},
|
||
|
}
|
||
|
|
||
|
for name, test := range testCases {
|
||
|
t.Run(name, func(t *testing.T) {
|
||
|
actual := test.given.Summary()
|
||
|
assert.Equal(t, test.expected, actual)
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func givenPost(content string) writefreely.Post {
|
||
|
return writefreely.Post{Title: zero.StringFrom("Title"), Content: content}
|
||
|
}
|