mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-24 20:16:08 +10:00
Merge branch 'fix-git-push-service-specs' into 'master'
Fixed the GitPushService specs See merge request !3139
This commit is contained in:
@@ -9,6 +9,7 @@ class Ability
|
||||
when CommitStatus then commit_status_abilities(user, subject)
|
||||
when Project then project_abilities(user, subject)
|
||||
when Issue then issue_abilities(user, subject)
|
||||
when ExternalIssue then external_issue_abilities(user, subject)
|
||||
when Note then note_abilities(user, subject)
|
||||
when ProjectSnippet then project_snippet_abilities(user, subject)
|
||||
when PersonalSnippet then personal_snippet_abilities(user, subject)
|
||||
@@ -424,6 +425,10 @@ class Ability
|
||||
end
|
||||
end
|
||||
|
||||
def external_issue_abilities(user, subject)
|
||||
project_abilities(user, subject.project)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def named_abilities(name)
|
||||
|
||||
@@ -271,22 +271,24 @@ describe GitPushService, services: true do
|
||||
|
||||
allow(project.repository).to receive(:commits_between).
|
||||
and_return([closing_commit])
|
||||
|
||||
project.team << [commit_author, :master]
|
||||
end
|
||||
|
||||
context "to default branches" do
|
||||
it "closes issues" do
|
||||
execute_service(project, user, @oldrev, @newrev, @ref )
|
||||
execute_service(project, commit_author, @oldrev, @newrev, @ref )
|
||||
expect(Issue.find(issue.id)).to be_closed
|
||||
end
|
||||
|
||||
it "adds a note indicating that the issue is now closed" do
|
||||
expect(SystemNoteService).to receive(:change_status).with(issue, project, commit_author, "closed", closing_commit)
|
||||
execute_service(project, user, @oldrev, @newrev, @ref )
|
||||
execute_service(project, commit_author, @oldrev, @newrev, @ref )
|
||||
end
|
||||
|
||||
it "doesn't create additional cross-reference notes" do
|
||||
expect(SystemNoteService).not_to receive(:cross_reference)
|
||||
execute_service(project, user, @oldrev, @newrev, @ref )
|
||||
execute_service(project, commit_author, @oldrev, @newrev, @ref )
|
||||
end
|
||||
|
||||
it "doesn't close issues when external issue tracker is in use" do
|
||||
@@ -294,7 +296,7 @@ describe GitPushService, services: true do
|
||||
|
||||
# The push still shouldn't create cross-reference notes.
|
||||
expect do
|
||||
execute_service(project, user, @oldrev, @newrev, 'refs/heads/hurf' )
|
||||
execute_service(project, commit_author, @oldrev, @newrev, 'refs/heads/hurf' )
|
||||
end.not_to change { Note.where(project_id: project.id, system: true).count }
|
||||
end
|
||||
end
|
||||
@@ -316,7 +318,6 @@ describe GitPushService, services: true do
|
||||
end
|
||||
end
|
||||
|
||||
# EE-only tests
|
||||
context "for jira issue tracker" do
|
||||
include JiraServiceHelper
|
||||
|
||||
@@ -366,7 +367,7 @@ describe GitPushService, services: true do
|
||||
}
|
||||
}.to_json
|
||||
|
||||
execute_service(project, user, @oldrev, @newrev, @ref )
|
||||
execute_service(project, commit_author, @oldrev, @newrev, @ref )
|
||||
expect(WebMock).to have_requested(:post, jira_api_transition_url).with(
|
||||
body: transition_body
|
||||
).once
|
||||
@@ -377,7 +378,7 @@ describe GitPushService, services: true do
|
||||
body: "Issue solved with [#{closing_commit.id}|http://localhost/#{project.path_with_namespace}/commit/#{closing_commit.id}]."
|
||||
}.to_json
|
||||
|
||||
execute_service(project, user, @oldrev, @newrev, @ref )
|
||||
execute_service(project, commit_author, @oldrev, @newrev, @ref )
|
||||
expect(WebMock).to have_requested(:post, jira_api_comment_url).with(
|
||||
body: comment_body
|
||||
).once
|
||||
|
||||
Reference in New Issue
Block a user