@@ -19,7 +19,7 @@ public async Task ShouldShowCounts()
19
19
{
20
20
var blogPost = new BlogPostBuilder ( ) . WithTitle ( "I was clicked" ) . WithLikes ( 2 ) . Build ( ) ;
21
21
await Repository . StoreAsync ( blogPost ) ;
22
- using var ctx = new BunitContext ( ) ;
22
+ await using var ctx = new BunitContext ( ) ;
23
23
RegisterRepositories ( ctx ) ;
24
24
await SaveBlogPostArticleClicked ( blogPost . Id , 10 ) ;
25
25
@@ -52,7 +52,7 @@ public async Task ShouldFilterByDate()
52
52
{ BlogPostId = blogPost1 . Id , DateClicked = new DateOnly ( 2021 , 1 , 1 ) , Clicks = 1 } ;
53
53
await DbContext . BlogPostRecords . AddRangeAsync ( clicked1 , clicked2 , clicked3 , clicked4 ) ;
54
54
await DbContext . SaveChangesAsync ( ) ;
55
- using var ctx = new BunitContext ( ) ;
55
+ await using var ctx = new BunitContext ( ) ;
56
56
ctx . ComponentFactories . AddStub < DateRangeSelector > ( ) ;
57
57
RegisterRepositories ( ctx ) ;
58
58
var cut = ctx . Render < VisitCountPerPage > ( ) ;
@@ -84,7 +84,7 @@ public async Task ShouldShowTotalClickCount()
84
84
{ BlogPostId = blogPost2 . Id , DateClicked = DateOnly . MinValue , Clicks = 1 } ;
85
85
await DbContext . BlogPostRecords . AddRangeAsync ( clicked1 , clicked2 , clicked3 ) ;
86
86
await DbContext . SaveChangesAsync ( ) ;
87
- using var ctx = new BunitContext ( ) ;
87
+ await using var ctx = new BunitContext ( ) ;
88
88
RegisterRepositories ( ctx ) ;
89
89
90
90
var cut = ctx . Render < VisitCountPerPage > ( ) ;
@@ -93,6 +93,28 @@ public async Task ShouldShowTotalClickCount()
93
93
cut . Find ( "#total-clicks" ) . TextContent . Should ( ) . Be ( "4 clicks in total" ) ;
94
94
}
95
95
96
+ [ Fact ]
97
+ public async Task GivenDeletedBlogPostWhenEncounteringBlogPostRecordThenNoError ( )
98
+ {
99
+ var blogPost1 = new BlogPostBuilder ( ) . WithTitle ( "1" ) . WithLikes ( 2 ) . Build ( ) ;
100
+ await Repository . StoreAsync ( blogPost1 ) ;
101
+ var clicked1 = new BlogPostRecord
102
+ { BlogPostId = blogPost1 . Id , DateClicked = new DateOnly ( 2020 , 1 , 1 ) , Clicks = 2 } ;
103
+ var clicked2 = new BlogPostRecord
104
+ { BlogPostId = blogPost1 . Id , DateClicked = DateOnly . MinValue , Clicks = 1 } ;
105
+ var clicked3 = new BlogPostRecord
106
+ { BlogPostId = Guid . NewGuid ( ) . ToString ( ) , DateClicked = DateOnly . MinValue , Clicks = 1 } ;
107
+ await DbContext . BlogPostRecords . AddRangeAsync ( clicked1 , clicked2 , clicked3 ) ;
108
+ await DbContext . SaveChangesAsync ( ) ;
109
+ await using var ctx = new BunitContext ( ) ;
110
+ RegisterRepositories ( ctx ) ;
111
+
112
+ var cut = ctx . Render < VisitCountPerPage > ( ) ;
113
+
114
+ cut . WaitForElement ( "td" ) ;
115
+ cut . Find ( "#total-clicks" ) . TextContent . Should ( ) . Be ( "2 clicks in total" ) ;
116
+ }
117
+
96
118
private void RegisterRepositories ( BunitContext ctx )
97
119
{
98
120
ctx . Services . AddScoped < IRepository < BlogPost > > ( _ => new Repository < BlogPost > ( DbContextFactory , Substitute . For < ILogger < Repository < BlogPost > > > ( ) ) ) ;
0 commit comments