diff options
author | Izaak Alpert <ihalpert@blackberry.com> | 2013-04-25 10:15:33 -0400 |
---|---|---|
committer | Izaak Alpert <ialpert@blackberry.com> | 2013-07-17 22:41:30 -0400 |
commit | 3d7194f0112da12e8732df9ffe8b34fe7d0a9f6b (patch) | |
tree | 9b3c68c04b5ead5e35456595a07453b036b2dbc8 /spec/features | |
parent | fd033671933fcc0f472480d98c907aefde357416 (diff) | |
download | gitlab-ce-3d7194f0112da12e8732df9ffe8b34fe7d0a9f6b.tar.gz |
Merge Request on forked projects
The good:
- You can do a merge request for a forked commit and it will merge properly (i.e. it does work).
- Push events take into account merge requests on forked projects
- Tests around merge_actions now present, spinach, and other rspec tests
- Satellites now clean themselves up rather then recreate
The questionable:
- Events only know about target projects
- Project's merge requests only hold on to MR's where they are the target
- All operations performed in the satellite
The bad:
- Duplication between project's repositories and satellites (e.g. commits_between)
(for reference: http://feedback.gitlab.com/forums/176466-general/suggestions/3456722-merge-requests-between-projects-repos)
Fixes:
Make test repos/satellites only create when needed
-Spinach/Rspec now only initialize test directory, and setup stubs (things that are relatively cheap)
-project_with_code, source_project_with_code, and target_project_with_code now create/destroy their repos individually
-fixed remote removal
-How to merge renders properly
-Update emails to show project/branches
-Edit MR doesn't set target branch
-Fix some failures on editing/creating merge requests, added a test
-Added back a test around merge request observer
-Clean up project_transfer_spec, Remove duplicate enable/disable observers
-Ensure satellite lock files are cleaned up, Attempted to add some testing around these as well
-Signifant speed ups for tests
-Update formatting ordering in notes_on_merge_requests
-Remove wiki schema update
Fixes for search/search results
-Search results was using by_project for a list of projects, updated this to use in_projects
-updated search results to reference the correct (target) project
-udpated search results to print both sides of the merge request
Change-Id: I19407990a0950945cc95d62089cbcc6262dab1a8
Diffstat (limited to 'spec/features')
-rw-r--r-- | spec/features/gitlab_flavored_markdown_spec.rb | 12 | ||||
-rw-r--r-- | spec/features/notes_on_merge_requests_spec.rb | 72 | ||||
-rw-r--r-- | spec/features/profile_spec.rb | 1 | ||||
-rw-r--r-- | spec/features/projects_spec.rb | 1 | ||||
-rw-r--r-- | spec/features/security/project_access_spec.rb | 19 |
5 files changed, 53 insertions, 52 deletions
diff --git a/spec/features/gitlab_flavored_markdown_spec.rb b/spec/features/gitlab_flavored_markdown_spec.rb index e67df7c1fb0..349d68399fc 100644 --- a/spec/features/gitlab_flavored_markdown_spec.rb +++ b/spec/features/gitlab_flavored_markdown_spec.rb @@ -3,11 +3,11 @@ require 'spec_helper' describe "GitLab Flavored Markdown" do let(:project) { create(:project_with_code) } let(:issue) { create(:issue, project: project) } - let(:merge_request) { create(:merge_request, project: project) } + let(:merge_request) { create(:merge_request, source_project: project, target_project: project) } let(:fred) do - u = create(:user, name: "fred") - project.team << [u, :master] - u + u = create(:user, name: "fred") + project.team << [u, :master] + u end before do @@ -83,9 +83,7 @@ describe "GitLab Flavored Markdown" do describe "for merge requests" do before do - @merge_request = create(:merge_request, - project: project, - title: "fix ##{issue.id}") + @merge_request = create(:merge_request, source_project: project, target_project: project, title: "fix ##{issue.id}") end it "should render title in merge_requests#index" do diff --git a/spec/features/notes_on_merge_requests_spec.rb b/spec/features/notes_on_merge_requests_spec.rb index 4aa8937926c..34e07e72056 100644 --- a/spec/features/notes_on_merge_requests_spec.rb +++ b/spec/features/notes_on_merge_requests_spec.rb @@ -2,8 +2,8 @@ require 'spec_helper' describe "On a merge request", js: true do let!(:project) { create(:project_with_code) } - let!(:merge_request) { create(:merge_request, project: project) } - let!(:note) { create(:note_on_merge_request_with_attachment, project: project) } + let!(:merge_request) { create(:merge_request, source_project: project, target_project: project) } + let!(:note) { create(:note_on_merge_request_with_attachment, source_project: project, target_project: project) } before do login_as :user @@ -62,7 +62,7 @@ describe "On a merge request", js: true do it 'should be added and form reset' do should have_content("This is awsome!") - within(".js-main-target-form") { should have_no_field("note[note]", with: "This is awesome!") } + within(".js-main-target-form") { should have_no_field("note[note]", with: "This is awesome!") } within(".js-main-target-form") { should have_css(".js-note-preview", visible: false) } within(".js-main-target-form") { should have_css(".js-note-text", visible: true) } end @@ -135,8 +135,8 @@ describe "On a merge request", js: true do end describe "On a merge request diff", js: true, focus: true do - let!(:project) { create(:project_with_code) } - let!(:merge_request) { create(:merge_request_with_diffs, project: project) } + let!(:project) { create(:source_project_with_code) } + let!(:merge_request) { create(:merge_request_with_diffs, source_project: project, target_project: project) } before do login_as :user @@ -144,6 +144,7 @@ describe "On a merge request diff", js: true, focus: true do visit diffs_project_merge_request_path(project, merge_request) end + subject { page } describe "when adding a note" do @@ -205,13 +206,13 @@ describe "On a merge request diff", js: true, focus: true do # TODO: fix #it 'should check if previews were rendered separately' do - #within("tr[id='4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185'] + .js-temp-notes-holder") do - #should have_css(".js-note-preview", text: "One comment on line 185") - #end + #within("tr[id='4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185'] + .js-temp-notes-holder") do + #should have_css(".js-note-preview", text: "One comment on line 185") + #end - #within("tr[id='342e16cbbd482ac2047dc679b2749d248cc1428f_18_17'] + .js-temp-notes-holder") do - #should have_css(".js-note-preview", text: "Another comment on line 17") - #end + #within("tr[id='342e16cbbd482ac2047dc679b2749d248cc1428f_18_17'] + .js-temp-notes-holder") do + #should have_css(".js-note-preview", text: "Another comment on line 17") + #end #end end @@ -238,39 +239,38 @@ describe "On a merge request diff", js: true, focus: true do # TODO: fix #it "should remove last note of a discussion" do - #within("tr[id='342e16cbbd482ac2047dc679b2749d248cc1428f_18_17'] + .notes-holder") do - #find(".js-note-delete").click - #end - - #should_not have_css(".note_holder") + # within("tr[id='342e16cbbd482ac2047dc679b2749d248cc1428f_18_17'] + .notes-holder") do + # find(".js-note-delete").click + # end + # should_not have_css(".note_holder") #end end end # TODO: fix #describe "when replying to a note" do - #before do - ## create first note - #find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184"]').click + #before do + ## create first note + # find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184"]').click - #within(".js-temp-notes-holder") do - #fill_in "note[note]", with: "One comment on line 184" - #click_button("Add Comment") - #end + # within(".js-temp-notes-holder") do + # fill_in "note[note]", with: "One comment on line 184" + # click_button("Add Comment") + #end - #within(".js-temp-notes-holder") do - #find(".js-discussion-reply-button").click - #fill_in "note[note]", with: "An additional comment in reply" - #click_button("Add Comment") - #end - #end - - #it 'should be inserted and form removed from reply' do - #should have_content("An additional comment in reply") - #within(".notes_holder") { should have_css(".note", count: 2) } - #within(".notes_holder") { should have_no_css("form") } - #within(".notes_holder") { should have_link("Reply") } - #end + # within(".js-temp-notes-holder") do + # find(".js-discussion-reply-button").click + # fill_in "note[note]", with: "An additional comment in reply" + # click_button("Add Comment") + # end + #end + + #it 'should be inserted and form removed from reply' do + # should have_content("An additional comment in reply") + # within(".notes_holder") { should have_css(".note", count: 2) } + # within(".notes_holder") { should have_no_css("form") } + # within(".notes_holder") { should have_link("Reply") } + # end #end end diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb index d46882d4e42..7fa474d0ea1 100644 --- a/spec/features/profile_spec.rb +++ b/spec/features/profile_spec.rb @@ -2,6 +2,7 @@ require 'spec_helper' describe "Profile account page" do before(:each) { enable_observers } + after(:each) {disable_observers} let(:user) { create(:user) } before do diff --git a/spec/features/projects_spec.rb b/spec/features/projects_spec.rb index f0a1f75e1e0..9d5f9d5a2e2 100644 --- a/spec/features/projects_spec.rb +++ b/spec/features/projects_spec.rb @@ -2,6 +2,7 @@ require 'spec_helper' describe "Projects" do before(:each) { enable_observers } + after(:each) {disable_observers} before { login_as :user } describe "DELETE /projects/:id" do diff --git a/spec/features/security/project_access_spec.rb b/spec/features/security/project_access_spec.rb index 6bc04726a9d..e426e40bb5d 100644 --- a/spec/features/security/project_access_spec.rb +++ b/spec/features/security/project_access_spec.rb @@ -14,13 +14,14 @@ describe "Application access" do end describe "Project" do - let(:project) { create(:project_with_code) } + let(:project) { create(:project_with_code) } - let(:master) { create(:user) } - let(:guest) { create(:user) } + let(:master) { create(:user) } + let(:guest) { create(:user) } let(:reporter) { create(:user) } before do + # full access project.team << [master, :master] @@ -108,7 +109,7 @@ describe "Application access" do describe "GET /project_code/blob" do before do commit = project.repository.commit - path = commit.tree.contents.select { |i| i.is_a?(Grit::Blob)}.first.name + path = commit.tree.contents.select { |i| i.is_a?(Grit::Blob) }.first.name @blob_path = project_blob_path(project, File.join(commit.id, path)) end @@ -232,13 +233,13 @@ describe "Application access" do describe "PublicProject" do - let(:project) { create(:project_with_code) } + let(:project) { create(:project_with_code) } - let(:master) { create(:user) } - let(:guest) { create(:user) } + let(:master) { create(:user) } + let(:guest) { create(:user) } let(:reporter) { create(:user) } - let(:admin) { create(:user) } + let(:admin) { create(:user) } before do # public project @@ -339,7 +340,7 @@ describe "Application access" do describe "GET /project_code/blob" do before do commit = project.repository.commit - path = commit.tree.contents.select { |i| i.is_a?(Grit::Blob)}.first.name + path = commit.tree.contents.select { |i| i.is_a?(Grit::Blob) }.first.name @blob_path = project_blob_path(project, File.join(commit.id, path)) end |