diff --git a/CHANGELOG b/CHANGELOG index 27c595585a964f93d1bf202df70c0b1389a45d3b..a5364178bab20a2a69615204aee213d14314eded 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -31,6 +31,7 @@ v 8.6.0 (unreleased) - Allow to define on which builds the current one depends on - Fix bug where Bitbucket `closed` issues were imported as `opened` (Iuri de Silvio) - Don't show Issues/MRs from archived projects in Groups view + - Fix wrong "iid of max iid" in Issuable sidebar for some merged MRs - Increase the notes polling timeout over time (Roberto Dip) - Add shortcut to toggle markdown preview (Florent Baldino) - Show labels in dashboard and group milestone views diff --git a/app/helpers/issuables_helper.rb b/app/helpers/issuables_helper.rb index 91a3aa371ef541042d35c18a926d1151bd8408ae..2dfeddf7368684c23b47e716d1ee5abd872d638b 100644 --- a/app/helpers/issuables_helper.rb +++ b/app/helpers/issuables_helper.rb @@ -31,7 +31,11 @@ module IssuablesHelper end def issuable_state_scope(issuable) - issuable.open? ? :opened : :closed + if issuable.respond_to?(:merged?) && issuable.merged? + :merged + else + issuable.open? ? :opened : :closed + end end end diff --git a/features/project/merge_requests.feature b/features/project/merge_requests.feature index f8d9fe1854dbbe3872e9e3718911d5ee2e8cb6dd..74685d24a7d86aabd24adab183907a76782383e0 100644 --- a/features/project/merge_requests.feature +++ b/features/project/merge_requests.feature @@ -46,11 +46,18 @@ Feature: Project Merge Requests Then I should see "Feature NS-03" in merge requests And I should see "Bug NS-04" in merge requests - Scenario: I visit merge request page + Scenario: I visit an open merge request page Given I click link "Bug NS-04" Then I should see merge request "Bug NS-04" And I should see "1 of 1" in the sidebar + Scenario: I visit a merged merge request page + Given project "Shop" have "Feature NS-05" merged merge request + And I click link "Merged" + And I click link "Feature NS-05" + Then I should see merge request "Feature NS-05" + And I should see "3 of 3" in the sidebar + Scenario: I close merge request page Given I click link "Bug NS-04" And I click link "Close" diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb index df4259b9ddf2d79a03c8038fb0fc6e02be94aebd..91fe19dd477f36ae55cd7107bbde82e74a0331c7 100644 --- a/features/steps/project/merge_requests.rb +++ b/features/steps/project/merge_requests.rb @@ -16,10 +16,18 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps click_link "Bug NS-04" end + step 'I click link "Feature NS-05"' do + click_link "Feature NS-05" + end + step 'I click link "All"' do click_link "All" end + step 'I click link "Merged"' do + click_link "Merged" + end + step 'I click link "Closed"' do click_link "Closed" end @@ -40,6 +48,10 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps expect(page).to have_content "Bug NS-04" end + step 'I should see merge request "Feature NS-05"' do + expect(page).to have_content "Feature NS-05" + end + step 'I should not see "master" branch' do expect(find('.merge-request-info')).not_to have_content "master" end @@ -120,6 +132,14 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps author: project.users.first) end + step 'project "Shop" have "Feature NS-05" merged merge request' do + create(:merged_merge_request, + title: "Feature NS-05", + source_project: project, + target_project: project, + author: project.users.first) + end + step 'project "Shop" have "Bug NS-07" open merge request with rebased branch' do create(:merge_request, :rebased, title: "Bug NS-07", diff --git a/features/steps/shared/issuable.rb b/features/steps/shared/issuable.rb index e59bfbea9982dce78ac03a3cfdef1b2bce21a7cf..b6d70a26c2163076823223c2c454b40cb725ef92 100644 --- a/features/steps/shared/issuable.rb +++ b/features/steps/shared/issuable.rb @@ -147,6 +147,10 @@ module SharedIssuable expect_sidebar_content('2 of 2') end + step 'I should see "3 of 3" in the sidebar' do + expect_sidebar_content('3 of 3') + end + step 'I click link "Next" in the sidebar' do page.within '.issuable-sidebar' do click_link 'Next' diff --git a/spec/factories/merge_requests.rb b/spec/factories/merge_requests.rb index ca1c636fce4bcdbd385ea59954d16519a0e0f299..a9df5fa1d3a8572cdfc6debdd25d9a112f0bc2da 100644 --- a/spec/factories/merge_requests.rb +++ b/spec/factories/merge_requests.rb @@ -56,6 +56,10 @@ FactoryGirl.define do target_branch "feature" end + trait :merged do + state :merged + end + trait :closed do state :closed end @@ -84,6 +88,7 @@ FactoryGirl.define do merge_user author end + factory :merged_merge_request, traits: [:merged] factory :closed_merge_request, traits: [:closed] factory :reopened_merge_request, traits: [:reopened] factory :merge_request_with_diffs, traits: [:with_diffs]