public async Task ReceiveMergeCommand_AllChecksPassed_PrHasPendingReviews_PrNotMerged() { var payloadString = await File.ReadAllTextAsync("../../../DummyEvents/IssueComment.json"); var payload = JsonConvert.DeserializeObject <dynamic>(payloadString); var owner = Guid.NewGuid().ToString(); var repo = Guid.NewGuid().ToString(); await checkListsCollection.InsertWithDefaultChecks(owner, repo); await mergeRequestsCollection.InsertWithTestChecksSuccess(owner, repo, PR_ID); await repoConfigurationCollection.Insert(owner, repo); payload["repository"]["name"] = repo; payload["repository"]["owner"]["login"] = owner; var requestedReviewsMockedResponse = new { teams = Array.Empty <object>(), users = new[] { new { login = "******", id = 3 } } }; // Mock github call await MockReviewGithubCallHelper.MockReviewsResponses(JsonConvert.SerializeObject(requestedReviewsMockedResponse), "[]", owner, repo, PR_ID); var commentPendingReviewsCallId = await MockCommentGithubCallHelper.MockCommentGithubCallPendingReviews(owner, repo, PR_ID, "itay"); await SendWebhookRequest("issue_comment", JsonConvert.SerializeObject(payload)); // ASSERT var commentPendingReviewsCall = await GetCall(commentPendingReviewsCallId); Assert.True(commentPendingReviewsCall.HasBeenMade, "comment should have been written"); var mergeRequest = await mergeRequestsCollection.Collection.Find(d => d["Owner"] == owner && d["Repo"] == repo && d["PrId"] == PR_ID && d["ReceivedMergeCommand"] == true).FirstAsync(); Assert.NotNull(mergeRequest); }
public async Task ReceiveInfoCommand_AllChecksPassed_PrHasPendingReviews_WriteErrorComment() { var payloadString = await File.ReadAllTextAsync("../../../DummyEvents/IssueComment.json"); var payload = JsonConvert.DeserializeObject <dynamic>(payloadString); var owner = Guid.NewGuid().ToString(); var repo = Guid.NewGuid().ToString(); // Insert Checkslist and PR to DB await checkListsCollection.InsertWithDefaultChecks(owner, repo); await mergeRequestsCollection.InsertWithTestChecksSuccess(owner, repo, PR_ID); payload["repository"]["name"] = repo; payload["repository"]["owner"]["login"] = owner; payload["issue"]["number"] = PR_ID; payload["comment"]["body"] = "Miro info"; var requestedReviewsMockedResponse = new { teams = Array.Empty <object>(), users = new[] { new { login = "******", id = 3 } } }; // Mock Github Calls await MockReviewGithubCallHelper.MockReviewsResponses(JsonConvert.SerializeObject(requestedReviewsMockedResponse), "[]", owner, repo, PR_ID); var failureCommentCallId = await MockCommentGithubCallHelper.MockCommentGithubCallPendingReviews(owner, repo, PR_ID, "itay"); // ACTION await SendWebhookRequest("issue_comment", JsonConvert.SerializeObject(payload)); // ASSERT var failureCommentCall = await GetCall(failureCommentCallId); Assert.True(failureCommentCall.HasBeenMade, "Should have recieved a failure comment"); }