* post: stub out initial post with outline * fix: add title attribute to lead in feed and add disc to list styles in posts * fix: apply style to artcile * post: work on rough draft * post: work on rough draft * post: work on rought draft * post: work on rought draft * post: more work on rough draft * post: finish post * chore: cleanup usings * chore: run dotnet format * docs: testing README * docs: update README.md
45 lines
985 B
Plaintext
45 lines
985 B
Plaintext
@inherits Bunit.TestContext
|
|
|
|
@code
|
|
{
|
|
private Mock<IPostService> _postServiceMock = new();
|
|
|
|
[Test]
|
|
public void Feed_WhenRendedAndNoPosts_ItShouldRenderNoPostsMessage()
|
|
{
|
|
_postServiceMock
|
|
.Setup(x => x.GetPostsAsync())
|
|
.ReturnsAsync(new List<Post>());
|
|
|
|
var ctx = new TestContext();
|
|
|
|
ctx.Services.AddSingleton(_postServiceMock.Object);
|
|
|
|
var cut = ctx.Render(@<Feed />);
|
|
|
|
cut.Find("p").MarkupMatches("<p>Looks like writers block. Check back later.</p>");
|
|
}
|
|
|
|
[Test]
|
|
public void Feed_WhenRendedAndPosts_ItShouldRenderPosts()
|
|
{
|
|
List<Post> posts = [
|
|
new Post() { Title = "Post 1", },
|
|
new Post() { Title = "Post 2", },
|
|
];
|
|
|
|
_postServiceMock
|
|
.Setup(x => x.GetPostsAsync())
|
|
.ReturnsAsync(posts);
|
|
|
|
var ctx = new TestContext();
|
|
|
|
ctx.Services.AddScoped(_ => _postServiceMock.Object);
|
|
|
|
var cut = ctx.Render(@<Feed />);
|
|
|
|
var articles = cut.FindAll("article");
|
|
|
|
articles.Count.Should().Be(2);
|
|
}
|
|
} |