summaryrefslogtreecommitdiff
path: root/spec/requests/api/repositories_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/repositories_spec.rb')
-rw-r--r--spec/requests/api/repositories_spec.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/spec/requests/api/repositories_spec.rb b/spec/requests/api/repositories_spec.rb
index 31f0d7cec2a..a12b4dc9848 100644
--- a/spec/requests/api/repositories_spec.rb
+++ b/spec/requests/api/repositories_spec.rb
@@ -6,6 +6,7 @@ require 'mime/types'
RSpec.describe API::Repositories do
include RepoHelpers
include WorkhorseHelpers
+ include ProjectForksHelper
let(:user) { create(:user) }
let(:guest) { create(:user).tap { |u| create(:project_member, :guest, user: u, project: project) } }
@@ -392,6 +393,28 @@ RSpec.describe API::Repositories do
expect(json_response['diffs']).to be_present
end
+ it "compare commits between different projects with non-forked relation" do
+ public_project = create(:project, :repository, :public)
+
+ get api(route, current_user), params: { from: sample_commit.parent_id, to: sample_commit.id, from_project_id: public_project.id }
+
+ expect(response).to have_gitlab_http_status(:bad_request)
+ end
+
+ it "compare commits between different projects" do
+ group = create(:group)
+ group.add_owner(current_user)
+
+ forked_project = fork_project(project, current_user, repository: true, namespace: group)
+ forked_project.repository.create_ref('refs/heads/improve/awesome', 'refs/heads/improve/more-awesome')
+
+ get api(route, current_user), params: { from: 'improve/awesome', to: 'feature', from_project_id: forked_project.id }
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(json_response['commits']).to be_present
+ expect(json_response['diffs']).to be_present
+ end
+
it "compares same refs" do
get api(route, current_user), params: { from: 'master', to: 'master' }