Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 0e69faa

Browse files
Merge pull request #1850 from github/fixes/1847-crash-cancelling-review
Don't crash when cancelling a PR review.
2 parents c3acc5d + cee1610 commit 0e69faa

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

src/GitHub.InlineReviews/Services/PullRequestSession.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -230,13 +230,8 @@ public async Task CancelReview()
230230
throw new InvalidOperationException("There is no pending review to cancel.");
231231
}
232232

233-
await service.CancelPendingReview(LocalRepository, PendingReviewId);
234-
235-
PullRequest.Reviews = PullRequest.Reviews
236-
.Where(x => x.Id != PendingReviewId)
237-
.ToList();
238-
239-
await Update(PullRequest);
233+
var pullRequest = await service.CancelPendingReview(LocalRepository, PendingReviewId);
234+
await Update(pullRequest);
240235
}
241236

242237
/// <inheritdoc/>

test/GitHub.InlineReviews.UnitTests/Services/PullRequestSessionTests.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,11 @@ public async Task IsFalseWhenReviewCancelled()
143143
{
144144
var currentUser = CreateActor();
145145
var review = CreateReview(author: currentUser, state: PullRequestReviewState.Pending);
146+
var service = Substitute.For<IPullRequestSessionService>();
146147
var pr = CreatePullRequest(review);
147148

148149
var target = new PullRequestSession(
149-
Substitute.For<IPullRequestSessionService>(),
150+
service,
150151
currentUser,
151152
pr,
152153
Substitute.For<ILocalRepositoryModel>(),
@@ -155,6 +156,7 @@ public async Task IsFalseWhenReviewCancelled()
155156

156157
Assert.That(target.HasPendingReview, Is.True);
157158

159+
service.CancelPendingReview(null, null).ReturnsForAnyArgs(CreatePullRequest());
158160
await target.CancelReview();
159161

160162
Assert.That(target.HasPendingReview, Is.False);
@@ -329,6 +331,8 @@ public async Task CallsServiceWithNodeId()
329331
var service = Substitute.For<IPullRequestSessionService>();
330332
var target = CreateTargetWithPendingReview(service);
331333

334+
service.CancelPendingReview(null, null).ReturnsForAnyArgs(CreatePullRequest());
335+
332336
await target.CancelReview();
333337

334338
await service.Received(1).CancelPendingReview(
@@ -342,6 +346,8 @@ public async Task RemovesReviewFromModel()
342346
var service = Substitute.For<IPullRequestSessionService>();
343347
var target = CreateTargetWithPendingReview(service);
344348

349+
service.CancelPendingReview(null, null).ReturnsForAnyArgs(CreatePullRequest());
350+
345351
await target.CancelReview();
346352

347353
Assert.IsEmpty(target.PullRequest.Reviews);

0 commit comments

Comments
 (0)