Add feature spec for task queue list page

parent 38026e5f
@dashboard
Feature: Dashboard Task Queue
Background:
Given I sign in as a user
And I own project "Shop"
And "John Doe" is a developer of project "Shop"
And I have pending tasks
And I visit dashboard task queue page
@javascript
Scenario: I mark pending tasks as done
Then I should see pending tasks assigned to me
And I mark the pending task as done
And I click on the "Done" tab
Then I should see all tasks marked as done
class Spinach::Features::DashboardTaskQueue < Spinach::FeatureSteps
include SharedAuthentication
include SharedPaths
include SharedProject
include SharedUser
step '"John Doe" is a developer of project "Shop"' do
project.team << [john_doe, :developer]
end
step 'I have pending tasks' do
create(:task, user: current_user, project: project, author: john_doe, target: assigned_issue, action: Task::ASSIGNED)
end
step 'I should see pending tasks assigned to me' do
expect(page).to have_link 'Tasks (1)'
expect(page).to have_link 'Done (0)'
page.within('.tasks') do
expect(page).to have_content project.name_with_namespace
expect(page).to have_content "John Doe assigned issue ##{assigned_issue.iid}"
expect(page).to have_content(assigned_issue.title[0..10])
expect(page).to have_link 'Done'
end
end
step 'I mark the pending task as done' do
click_link 'Done'
expect(page).to have_content 'Task was successfully marked as done.'
expect(page).to have_link 'Tasks (0)'
expect(page).to have_link 'Done (1)'
expect(page).to have_content 'No tasks to show'
end
step 'I click on the "Done" tab' do
click_link 'Done (1)'
end
step 'I should see all tasks marked as done' do
page.within('.tasks') do
expect(page).to have_content project.name_with_namespace
expect(page).to have_content "John Doe assigned issue ##{assigned_issue.iid}"
expect(page).to have_content(assigned_issue.title[0..10])
expect(page).not_to have_link 'Done'
end
end
def assigned_issue
@assigned_issue ||= create(:issue, assignee: current_user, project: project)
end
def john_doe
@john_doe ||= user_exists("John Doe", { username: "john_doe" })
end
def project
@project ||= create(:project, name: "Shop")
end
end
......@@ -103,6 +103,10 @@ module SharedPaths
visit dashboard_groups_path
end
step 'I visit dashboard task queue page' do
visit dashboard_tasks_path
end
step 'I should be redirected to the dashboard groups page' do
expect(current_path).to eq dashboard_groups_path
end
......
# == Schema Information
#
# Table name: tasks
#
# id :integer not null, primary key
# user_id :integer not null
# project_id :integer not null
# target_id :integer not null
# target_type :string not null
# author_id :integer
# action :integer
# state :string not null
# created_at :datetime
# updated_at :datetime
#
FactoryGirl.define do
factory :task do
project
author
user
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment