From 9e6c61372fe0f7f2199f4e8f72b3c4e4a4219020 Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Wed, 6 Apr 2016 11:02:22 -0300 Subject: [PATCH 1/2] Fix milestone removal problem when editing issues --- app/helpers/issues_helper.rb | 1 + spec/helpers/issues_helper_spec.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 24b90fef4fe..414056c809f 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -52,6 +52,7 @@ module IssuesHelper def milestone_options(object) milestones = object.project.milestones.active.reorder(due_date: :asc, title: :asc).to_a + milestones.unshift(object.milestone) if object.milestone.present? && object.milestone.closed? milestones.unshift(Milestone::None) options_from_collection_for_select(milestones, 'id', 'title', object.milestone_id) diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb index ffd8ebae029..df0eb22d6f6 100644 --- a/spec/helpers/issues_helper_spec.rb +++ b/spec/helpers/issues_helper_spec.rb @@ -148,4 +148,19 @@ describe IssuesHelper do expect(awards_sort(data).keys).to eq(["thumbsup", "thumbsdown", "lifter"]) end end + + describe "#milestone options" do + let!(:closed_milestone) { create :closed_milestone, title: "closed milestone", project: project } + let!(:milestone1) { create :milestone, title: "open milestone 1", project: project } + let!(:milestone2) { create :milestone, title: "open milestone 2", project: project } + + before { issue.update_attributes(milestone_id: closed_milestone.id) } + + it "gets closed milestone from current issue" do + options = milestone_options(issue) + expect(options).to have_selector('option[selected]', text: closed_milestone.title) + expect(options).to have_selector('option', text: milestone1.title) + expect(options).to have_selector('option', text: milestone2.title) + end + end end From 8d5ad4e3c9973ed34742b543cc3a5466c32b9d5b Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Thu, 7 Apr 2016 17:04:09 -0300 Subject: [PATCH 2/2] improve specs code syntax --- spec/helpers/issues_helper_spec.rb | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb index df0eb22d6f6..543593cf389 100644 --- a/spec/helpers/issues_helper_spec.rb +++ b/spec/helpers/issues_helper_spec.rb @@ -80,7 +80,7 @@ describe IssuesHelper do end end - describe '#url_for_new_issue' do + describe 'url_for_new_issue' do let(:issues_url) { ext_project.external_issue_tracker.new_issue_url } let(:ext_expected) do issues_url.gsub(':project_id', ext_project.id.to_s) @@ -117,7 +117,7 @@ describe IssuesHelper do end end - describe "#merge_requests_sentence" do + describe "merge_requests_sentence" do subject { merge_requests_sentence(merge_requests)} let(:merge_requests) do [ build(:merge_request, iid: 1), build(:merge_request, iid: 2), @@ -127,7 +127,7 @@ describe IssuesHelper do it { is_expected.to eq("!1, !2, or !3") } end - describe "#note_active_class" do + describe "note_active_class" do before do @note = create :note @note1 = create :note @@ -142,22 +142,22 @@ describe IssuesHelper do end end - describe "#awards_sort" do + describe "awards_sort" do it "sorts a hash so thumbsup and thumbsdown are always on top" do data = { "thumbsdown" => "some value", "lifter" => "some value", "thumbsup" => "some value" } expect(awards_sort(data).keys).to eq(["thumbsup", "thumbsdown", "lifter"]) end end - describe "#milestone options" do - let!(:closed_milestone) { create :closed_milestone, title: "closed milestone", project: project } - let!(:milestone1) { create :milestone, title: "open milestone 1", project: project } - let!(:milestone2) { create :milestone, title: "open milestone 2", project: project } - - before { issue.update_attributes(milestone_id: closed_milestone.id) } - + describe "milestone_options" do it "gets closed milestone from current issue" do + closed_milestone = create(:closed_milestone, project: project) + milestone1 = create(:milestone, project: project) + milestone2 = create(:milestone, project: project) + issue.update_attributes(milestone_id: closed_milestone.id) + options = milestone_options(issue) + expect(options).to have_selector('option[selected]', text: closed_milestone.title) expect(options).to have_selector('option', text: milestone1.title) expect(options).to have_selector('option', text: milestone2.title)