mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-03 11:05:56 +00:00
added test for update and ensure history is respected when creating PRs
This commit is contained in:
@@ -29,27 +29,57 @@ public class PullRequestsClientTests : IDisposable
|
||||
[IntegrationTest]
|
||||
public async Task CanCreate()
|
||||
{
|
||||
var master = await _client.GitDatabase.Reference.Get(Helper.UserName, _repository.Name, "heads/master");
|
||||
|
||||
// create new commit for master branch
|
||||
var newMasterTree = await CreateTree(new Dictionary<string, string> { { "README.md", "Hello World!" } });
|
||||
var newMaster = await CreateCommit("baseline for pull request", newMasterTree.Sha);
|
||||
var newMaster = await CreateCommit("baseline for pull request", newMasterTree.Sha, master.Object.Sha);
|
||||
// update master
|
||||
await _client.GitDatabase.Reference.Update(Helper.UserName, _repository.Name, "heads/master", new ReferenceUpdate(newMaster.Sha, true));
|
||||
|
||||
// create new commit for feature branch
|
||||
var featureBranchTree = await CreateTree(new Dictionary<string, string> { { "README.md", "I am overwriting this blob with something new" } });
|
||||
var newFeature = await CreateCommit("this is the commit to merge into the pull request", featureBranchTree.Sha);
|
||||
var newFeature = await CreateCommit("this is the commit to merge into the pull request", featureBranchTree.Sha, master.Object.Sha);
|
||||
|
||||
// create branch
|
||||
await _client.GitDatabase.Reference.Create(Helper.UserName, _repository.Name, new NewReference("refs/heads/my-branch", newFeature.Sha));
|
||||
|
||||
// create pull request
|
||||
var head = Helper.UserName + ":my-branch";
|
||||
var newPullRequest = new NewPullRequest("a pull request", head, "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var result = await _pullRequestsClient.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
Assert.Equal("a pull request", result.Title);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanUpdate()
|
||||
{
|
||||
var master = await _client.GitDatabase.Reference.Get(Helper.UserName, _repository.Name, "heads/master");
|
||||
|
||||
// create new commit for master branch
|
||||
var newMasterTree = await CreateTree(new Dictionary<string, string> { { "README.md", "Hello World!" } });
|
||||
var newMaster = await CreateCommit("baseline for pull request", newMasterTree.Sha, master.Object.Sha);
|
||||
// update master
|
||||
await _client.GitDatabase.Reference.Update(Helper.UserName, _repository.Name, "heads/master", new ReferenceUpdate(newMaster.Sha, true));
|
||||
|
||||
// create new commit for feature branch
|
||||
var featureBranchTree = await CreateTree(new Dictionary<string, string> { { "README.md", "I am overwriting this blob with something new" } });
|
||||
var newFeature = await CreateCommit("this is the commit to merge into the pull request", featureBranchTree.Sha, master.Object.Sha);
|
||||
|
||||
// create branch
|
||||
await _client.GitDatabase.Reference.Create(Helper.UserName, _repository.Name, new NewReference("refs/heads/my-branch", newFeature.Sha));
|
||||
|
||||
// create pull request
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var pullRequest = await _pullRequestsClient.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var updatePullRequest = new PullRequestUpdate { Title = "updated title", Body = "Hello New Body" };
|
||||
var result = await _pullRequestsClient.Update(Helper.UserName, _repository.Name, pullRequest.Number, updatePullRequest);
|
||||
|
||||
Assert.Equal(updatePullRequest.Title, result.Title);
|
||||
Assert.Equal(updatePullRequest.Body, result.Body);
|
||||
}
|
||||
|
||||
async Task<TreeResponse> CreateTree(IDictionary<string,string> treeContents)
|
||||
{
|
||||
var collection = new List<NewTreeItem>();
|
||||
@@ -77,14 +107,14 @@ public class PullRequestsClientTests : IDisposable
|
||||
return await _client.GitDatabase.Tree.Create(Helper.UserName, _repository.Name, newTree);
|
||||
}
|
||||
|
||||
async Task<Commit> CreateCommit(string message, string sha)
|
||||
async Task<Commit> CreateCommit(string message, string sha, string parent)
|
||||
{
|
||||
var newCommit = new NewCommit(message, sha);
|
||||
var newCommit = new NewCommit(message, sha, parent);
|
||||
return await _client.GitDatabase.Commit.Create(Helper.UserName, _repository.Name, newCommit);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Helper.DeleteRepo(_repository);
|
||||
//Helper.DeleteRepo(_repository);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user