Issuable consern uses StateMachine now
This commit is contained in:
		
							parent
							
								
									8db3920c01
								
							
						
					
					
						commit
						f97296597c
					
				| 
						 | 
					@ -17,10 +17,9 @@ module Issuable
 | 
				
			||||||
    validates :project, presence: true
 | 
					    validates :project, presence: true
 | 
				
			||||||
    validates :author, presence: true
 | 
					    validates :author, presence: true
 | 
				
			||||||
    validates :title, presence: true, length: { within: 0..255 }
 | 
					    validates :title, presence: true, length: { within: 0..255 }
 | 
				
			||||||
    validates :closed, inclusion: { in: [true, false] }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    scope :opened, -> { where(closed: false) }
 | 
					    scope :opened, -> { with_state(:opened) }
 | 
				
			||||||
    scope :closed, -> { where(closed: true) }
 | 
					    scope :closed, -> { with_state(:closed) }
 | 
				
			||||||
    scope :of_group, ->(group) { where(project_id: group.project_ids) }
 | 
					    scope :of_group, ->(group) { where(project_id: group.project_ids) }
 | 
				
			||||||
    scope :of_user_team, ->(team) { where(project_id: team.project_ids, assignee_id: team.member_ids) }
 | 
					    scope :of_user_team, ->(team) { where(project_id: team.project_ids, assignee_id: team.member_ids) }
 | 
				
			||||||
    scope :assigned, ->(u) { where(assignee_id: u.id)}
 | 
					    scope :assigned, ->(u) { where(assignee_id: u.id)}
 | 
				
			||||||
| 
						 | 
					@ -62,14 +61,6 @@ module Issuable
 | 
				
			||||||
    assignee_id_changed?
 | 
					    assignee_id_changed?
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def is_being_closed?
 | 
					 | 
				
			||||||
    closed_changed? && closed
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def is_being_reopened?
 | 
					 | 
				
			||||||
    closed_changed? && !closed
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  #
 | 
					  #
 | 
				
			||||||
  # Votes
 | 
					  # Votes
 | 
				
			||||||
  #
 | 
					  #
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,7 +15,6 @@ describe Issue, "Issuable" do
 | 
				
			||||||
    it { should validate_presence_of(:author) }
 | 
					    it { should validate_presence_of(:author) }
 | 
				
			||||||
    it { should validate_presence_of(:title) }
 | 
					    it { should validate_presence_of(:title) }
 | 
				
			||||||
    it { should ensure_length_of(:title).is_at_least(0).is_at_most(255) }
 | 
					    it { should ensure_length_of(:title).is_at_least(0).is_at_most(255) }
 | 
				
			||||||
    it { should ensure_inclusion_of(:closed).in_array([true, false]) }
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe "Scope" do
 | 
					  describe "Scope" do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,35 +43,4 @@ describe Issue do
 | 
				
			||||||
      subject.is_being_reassigned?.should be_false
 | 
					      subject.is_being_reassigned?.should be_false
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					 | 
				
			||||||
  describe '#is_being_closed?' do
 | 
					 | 
				
			||||||
    it 'returns true if the closed attribute has changed and is now true' do
 | 
					 | 
				
			||||||
      subject.closed = true
 | 
					 | 
				
			||||||
      subject.is_being_closed?.should be_true
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    it 'returns false if the closed attribute has changed and is now false' do
 | 
					 | 
				
			||||||
      issue = create(:closed_issue)
 | 
					 | 
				
			||||||
      issue.closed = false
 | 
					 | 
				
			||||||
      issue.is_being_closed?.should be_false
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    it 'returns false if the closed attribute has not changed' do
 | 
					 | 
				
			||||||
      subject.is_being_closed?.should be_false
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  describe '#is_being_reopened?' do
 | 
					 | 
				
			||||||
    it 'returns true if the closed attribute has changed and is now false' do
 | 
					 | 
				
			||||||
      issue = create(:closed_issue)
 | 
					 | 
				
			||||||
      issue.closed = false
 | 
					 | 
				
			||||||
      issue.is_being_reopened?.should be_true
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    it 'returns false if the closed attribute has changed and is now true' do
 | 
					 | 
				
			||||||
      subject.closed = true
 | 
					 | 
				
			||||||
      subject.is_being_reopened?.should be_false
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    it 'returns false if the closed attribute has not changed' do
 | 
					 | 
				
			||||||
      subject.is_being_reopened?.should be_false
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,35 +62,4 @@ describe MergeRequest do
 | 
				
			||||||
      subject.is_being_reassigned?.should be_false
 | 
					      subject.is_being_reassigned?.should be_false
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					 | 
				
			||||||
  describe '#is_being_closed?' do
 | 
					 | 
				
			||||||
    it 'returns true if the closed attribute has changed and is now true' do
 | 
					 | 
				
			||||||
      subject.closed = true
 | 
					 | 
				
			||||||
      subject.is_being_closed?.should be_true
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    it 'returns false if the closed attribute has changed and is now false' do
 | 
					 | 
				
			||||||
      merge_request = create(:closed_merge_request)
 | 
					 | 
				
			||||||
      merge_request.closed = false
 | 
					 | 
				
			||||||
      merge_request.is_being_closed?.should be_false
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    it 'returns false if the closed attribute has not changed' do
 | 
					 | 
				
			||||||
      subject.is_being_closed?.should be_false
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  describe '#is_being_reopened?' do
 | 
					 | 
				
			||||||
    it 'returns true if the closed attribute has changed and is now false' do
 | 
					 | 
				
			||||||
      merge_request = create(:closed_merge_request)
 | 
					 | 
				
			||||||
      merge_request.closed = false
 | 
					 | 
				
			||||||
      merge_request.is_being_reopened?.should be_true
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    it 'returns false if the closed attribute has changed and is now true' do
 | 
					 | 
				
			||||||
      subject.closed = true
 | 
					 | 
				
			||||||
      subject.is_being_reopened?.should be_false
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    it 'returns false if the closed attribute has not changed' do
 | 
					 | 
				
			||||||
      subject.is_being_reopened?.should be_false
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue