go-by-test/blogposts/blogposts_test.go

41 lines
797 B
Go
Raw Normal View History

2024-09-23 21:09:10 +00:00
package blogposts
import (
2024-09-24 18:57:28 +00:00
"reflect"
2024-09-23 21:09:10 +00:00
"testing"
"testing/fstest"
)
// NOTE: This should be a black box test outside blogposts package.
2024-09-24 18:57:28 +00:00
// NOTE: If we want to test the return error
//
// type StubFailingFS struct{}
//
// func (s StubFailingFS) Open(name string) (fs.File, error) {
// return nil, errors.New("fail")
// }
2024-09-23 21:09:10 +00:00
func TestNewBlogPosts(t *testing.T) {
fs := fstest.MapFS{
2024-09-24 18:57:28 +00:00
"hello world.md": {Data: []byte("Title: Post 1")},
"hello-world2.md": {Data: []byte("Title: Post 2")},
}
posts, err := NewPostsFromFS(fs)
if err != nil {
t.Fatal(err)
2024-09-23 21:09:10 +00:00
}
if len(posts) != len(fs) {
t.Errorf("got %d posts, wanted %d posts", len(posts), len(fs))
}
2024-09-24 18:57:28 +00:00
got := posts[0]
want := Post{Title: "Post 1"}
if !reflect.DeepEqual(got, want) {
t.Errorf("got %+v, want %+v", got, want)
}
2024-09-23 21:09:10 +00:00
}