tracks/features/project_list.feature

141 lines
5.8 KiB
Gherkin

Feature: Manage the list of projects
In order to keep track and manage of all my projects
As a Tracks user
I want to manage my list of projects
Background:
Given the following user record
| login | password | is_admin |
| testuser | secret | false |
And there exists a project "manage me" for user "testuser"
And there exists a project "upgrade jquery" for user "testuser"
And there exists a project "a project name starting with a" for user "testuser"
And I have logged in as "testuser" with password "secret"
Scenario: The list of projects contain all projects
When I go to the projects page
Then I should see "manage me"
And I should see "upgrade jquery"
And I should see "a project name starting with a"
And the badge should show 3
Scenario: Clicking on a project takes me to the project page
When I go to the projects page
And I follow "manage me"
Then I should be on the "manage me" project page
@javascript
Scenario: Editing a project name will update the list
When I go to the projects page
And I edit the project name of "manage me" to "manage him"
Then I should see "manage him"
@javascript
Scenario: Deleting a project will remove it from the list
When I go to the projects page
And I delete project "manage me"
Then I should see that a project named "manage me" is not present
And the badge should show 2
And the project list badge for "active" projects should show 2
@javascript
Scenario: Deleting a project after a edit will remove it from the list
# make sure the js is enabled after an edit and another edit
When I go to the projects page
And I edit the project name of "manage me" to "manage him"
Then I should see a project named "manage him"
When I edit the project name of "manage him" to "manage her"
Then I should see a project named "manage her"
When I delete project "manage her"
Then I should not see a project named "manage her"
And the badge should show 2
And the project list badge for "active" projects should show 2
@javascript
Scenario: Changing project state will move project to other state list
When I go to the projects page
Then the project "manage me" should be in state list "active"
And the project list badge for "active" projects should show 3
When I edit the project state of "manage me" to "hidden"
Then the project "manage me" should not be in state list "active"
And the project "manage me" should be in state list "hidden"
And the project list badge for "active" projects should show 2
And the project list badge for "hidden" projects should show 1
@javascript
Scenario: Dragging a project to change list order of projects
When I go to the projects page
Then the project "manage me" should be above the project "upgrade jquery"
When I drag the project "manage me" below "upgrade jquery"
Then the project "upgrade jquery" should be above the project "manage me"
@javascript
Scenario: Hiding and unhiding the new project form
When I go to the projects page
Then the new project form should be visible
When I follow "Hide form"
Then the new project form should not be visible
When I follow "Create a new project"
Then the new project form should be visible
@javascript
Scenario: Adding a new project
When I go to the projects page
And I submit a new project with name "finish cucumber tests"
Then I should see "finish cucumber tests"
And the badge should show 4
And the project list badge for "active" projects should show 4
@javascript
Scenario: Adding a new project and take me to the project page
When I go to the projects page
And I submit a new project with name "finish cucumber tests" and select take me to the project
Then I should be on the "finish cucumber tests" project page
@javascript
Scenario: Sorting the project alphabetically
When I go to the projects page
Then the project "manage me" should be above the project "a project name starting with a"
When I sort the active list alphabetically
Then the project "a project name starting with a" should be above the project "manage me"
@javascript
Scenario: Sorting the project by number of task
Given I have a project "test" with 2 todos
And I have a project "very busy" with 10 todos
When I go to the projects page
Then the project "test" should be above the project "very busy"
When I sort the active list by number of tasks
Then the project "very busy" should be above the project "test"
@javascript
Scenario: Can add a project with comma in the name
When I go to the projects page
And I submit a new project with name "foo,bar"
Then I should see "foo,bar"
And the badge should show 4
And the project list badge for "active" projects should show 4
@javascript
Scenario: Listing projects with only active actions
Given I have a project "do it now" with 2 active todos
When I go to the projects page
Then the project "do it now" should have 2 actions listed
@javascript
Scenario: Listing projects with both active and deferred actions
Given I have a project "now and later" with 2 active actions and 2 deferred actions
When I go to the projects page
Then the project "now and later" should have 2 actions listed
@javascript
Scenario: Listing projects with only deferred actions
Given I have a project "only later" with 3 deferred actions
When I go to the projects page
Then the project "only later" should have 3 deferred actions listed
@javascript
Scenario: Listing projects with no actions
Given I have a project "all done" with 0 active actions and 0 deferred actions
When I go to the projects page
Then the project "all done" should have 0 actions listed