36 lines
658 B
Go
36 lines
658 B
Go
package posts
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
type titleTest struct {
|
|
in, title, body string
|
|
}
|
|
|
|
func TestExtractTitle(t *testing.T) {
|
|
tests := []titleTest{
|
|
{`# Hello World
|
|
This is my post`, "Hello World", "This is my post"},
|
|
{"No title", "", "No title"},
|
|
{`Not explicit title
|
|
|
|
It's not explicit.
|
|
Yep.`, "", `Not explicit title
|
|
|
|
It's not explicit.
|
|
Yep.`},
|
|
{"# Only a title", "", "# Only a title"},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
title, body := ExtractTitle(test.in)
|
|
if title != test.title {
|
|
t.Fatalf("Wanted title '%s', got '%s'", test.title, title)
|
|
}
|
|
if body != test.body {
|
|
t.Fatalf("Wanted body '%s', got '%s'", test.body, body)
|
|
}
|
|
}
|
|
}
|