debian-mirror-gitlab/features/steps/group/milestones.rb

139 lines
3.9 KiB
Ruby
Raw Normal View History

2015-12-23 02:04:40 +05:30
class Spinach::Features::GroupMilestones < Spinach::FeatureSteps
2017-08-17 22:00:37 +05:30
include WaitForAjax
2015-12-23 02:04:40 +05:30
include SharedAuthentication
include SharedPaths
include SharedGroup
include SharedUser
step 'I click on group milestones' do
2017-08-17 22:00:37 +05:30
visit group_milestones_path('owned')
2015-12-23 02:04:40 +05:30
end
step 'I should see group milestones index page has no milestones' do
expect(page).to have_content('No milestones to show')
end
step 'Group has projects with milestones' do
group_milestone
end
step 'I should see group milestones index page with milestones' do
expect(page).to have_content('Version 7.2')
expect(page).to have_content('GL-113')
expect(page).to have_link('3 Issues', href: issues_group_path("owned", milestone_title: "Version 7.2"))
expect(page).to have_link('0 Merge Requests', href: merge_requests_group_path("owned", milestone_title: "GL-113"))
end
step 'I click on one group milestone' do
2016-06-02 11:05:42 +05:30
milestones = Milestone.where(title: 'GL-113')
@global_milestone = GlobalMilestone.new('GL-113', milestones)
2015-12-23 02:04:40 +05:30
click_link 'GL-113'
end
step 'I should see group milestone with descriptions and expiry date' do
expect(page).to have_content('expires on Aug 20, 2114')
2015-12-23 02:04:40 +05:30
end
step 'I should see group milestone with all issues and MRs assigned to that milestone' do
expect(page).to have_content('Milestone GL-113')
2017-08-17 22:00:37 +05:30
expect(page).to have_content('Issues 3 Open: 3 Closed: 0')
2015-12-23 02:04:40 +05:30
issue = Milestone.find_by(name: 'GL-113').issues.first
expect(page).to have_link(issue.title, href: namespace_project_issue_path(issue.project.namespace, issue.project, issue))
end
step 'I fill milestone name' do
fill_in 'milestone_title', with: 'v2.9.0'
end
step 'I click new milestone button' do
2017-08-17 22:00:37 +05:30
click_link "New milestone"
2015-12-23 02:04:40 +05:30
end
step 'I press create mileston button' do
2017-08-17 22:00:37 +05:30
click_button "Create milestone"
2015-12-23 02:04:40 +05:30
end
step 'milestone in each project should be created' do
group = Group.find_by(name: 'Owned')
expect(page).to have_content "Milestone v2.9.0"
expect(group.projects).to be_present
group.projects.each do |project|
expect(page).to have_content project.name
end
end
2016-06-02 11:05:42 +05:30
step 'I should see the "bug" label' do
page.within('#tab-issues') do
expect(page).to have_content 'bug'
end
end
step 'I should see the "feature" label' do
page.within('#tab-issues') do
expect(page).to have_content 'bug'
end
end
step 'I should see the project name in the Issue row' do
page.within('#tab-issues') do
@global_milestone.projects.each do |project|
expect(page).to have_content project.name
end
end
end
step 'I click on the "Labels" tab' do
page.within('.content .nav-links') do
page.find(:xpath, "//a[@href='#tab-labels']").click
end
end
step 'I should see the list of labels' do
2017-08-17 22:00:37 +05:30
wait_for_ajax
2016-06-02 11:05:42 +05:30
page.within('#tab-labels') do
expect(page).to have_content 'bug'
expect(page).to have_content 'feature'
end
end
2015-12-23 02:04:40 +05:30
private
def group_milestone
group = owned_group
%w(gitlabhq gitlab-ci cookbook-gitlab).each do |path|
2017-08-17 22:00:37 +05:30
project = create(:empty_project, path: path, group: group)
2015-12-23 02:04:40 +05:30
milestone = create :milestone, title: "Version 7.2", project: project
2016-06-02 11:05:42 +05:30
create(:label, project: project, title: 'bug')
create(:label, project: project, title: 'feature')
2015-12-23 02:04:40 +05:30
create :issue,
project: project,
2017-08-17 22:00:37 +05:30
assignees: [current_user],
2015-12-23 02:04:40 +05:30
author: current_user,
milestone: milestone
milestone = create :milestone,
title: "GL-113",
project: project,
due_date: '2114-08-20',
description: 'Lorem Ipsum is simply dummy text'
2016-06-02 11:05:42 +05:30
issue = create :issue,
2015-12-23 02:04:40 +05:30
project: project,
2017-08-17 22:00:37 +05:30
assignees: [current_user],
2015-12-23 02:04:40 +05:30
author: current_user,
milestone: milestone
2016-06-02 11:05:42 +05:30
issue.labels << project.labels.find_by(title: 'bug')
issue.labels << project.labels.find_by(title: 'feature')
2015-12-23 02:04:40 +05:30
end
2017-08-17 22:00:37 +05:30
current_user.refresh_authorized_projects
2015-12-23 02:04:40 +05:30
end
end