milestone_spec.rb 1.8 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
      visit new_namespace_project_milestone_path(project.namespace, project)
17

18 19
      page.within '.milestone-form' do
        fill_in "milestone_title", with: '8.7'
20 21
        fill_in "milestone_start_date", with: '2016-11-16'
        fill_in "milestone_due_date", with: '2016-12-16'
22
      end
23

24 25 26
      find('input[name="commit"]').click

      expect(find('.alert-success')).to have_content('Assign some issues to this milestone.')
27
      expect(page).to have_content('Nov 16, 2016 - Dec 16, 2016')
28 29 30 31
    end
  end

  feature 'Open a milestone with closed issues' do
32
    scenario 'shows an informative message' do
33 34
      milestone = create(:milestone, project: project, title: 8.7)

35 36 37 38 39 40
      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
41 42 43 44 45 46 47 48 49 50 51 52 53 54

  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
55
end