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.
45 lines
1.2 KiB
45 lines
1.2 KiB
/*
|
|
* Copyright © 2020-2021 Musing Studio LLC.
|
|
*
|
|
* This file is part of WriteFreely.
|
|
*
|
|
* WriteFreely is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License, included
|
|
* in the LICENSE file in this source code package.
|
|
*/
|
|
|
|
package writefreely_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/guregu/null/zero"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/writefreely/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}
|
|
}
|
|
|