milestone_spec.rb 1.62 KB
Newer Older
1 2 3 4 5
require 'rails_helper'

feature 'Milestone', feature: true do
  include WaitForAjax

6
  let(:project) { create(:empty_project, :public) }
7 8 9 10 11 12 13 14
  let(:user)   { create(:user) }

  before do
    project.team << [user, :master]
    login_as(user)
  end

  feature 'Create a milestone' do
15
    scenario 'shows an informative message for a new milestone' do
16 17 18 19 20 21 22 23 24 25 26
      visit new_namespace_project_milestone_path(project.namespace, project)
      page.within '.milestone-form' do
        fill_in "milestone_title", with: '8.7'
      end
      find('input[name="commit"]').click

      expect(find('.alert-success')).to have_content('Assign some issues to this milestone.')
    end
  end

  feature 'Open a milestone with closed issues' do
27
    scenario 'shows an informative message' do
28 29
      milestone = create(:milestone, project: project, title: 8.7)

30 31 32 33 34 35
      create(:issue, title: "Bugfix1", project: project, milestone: milestone, state: "closed")
      visit namespace_project_milestone_path(project.namespace, project, milestone)

      expect(find('.alert-success')).to have_content('All issues for this milestone are closed. You may close this milestone now.')
    end
  end
36 37 38 39 40 41 42 43 44 45 46 47 48 49

  feature 'Open a milestone with an existing title' do
    scenario 'displays validation message' do
      milestone = create(:milestone, project: project, title: 8.7)

      visit new_namespace_project_milestone_path(project.namespace, project)
      page.within '.milestone-form' do
        fill_in "milestone_title", with: milestone.title
      end
      find('input[name="commit"]').click

      expect(find('.alert-danger')).to have_content('Title has already been taken')
    end
  end
50
end