chore: perauset customer project
This commit is contained in:
87
e2e/tests/features/tasks.feature
Normal file
87
e2e/tests/features/tasks.feature
Normal file
@@ -0,0 +1,87 @@
|
||||
Feature: Task Management
|
||||
|
||||
Scenario: Create task template as coordinator
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a task template with title "Kitchen Cleanup" category "kitchen"
|
||||
Then the response status should be 200
|
||||
And I store the response field "templateId" as "templateId"
|
||||
|
||||
Scenario: Create task instance
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a task instance with title "Morning Dishes" category "kitchen"
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "open"
|
||||
And I store the response field "taskId" as "taskId"
|
||||
|
||||
Scenario: Assign task to a user
|
||||
Given a user "volunteer@test.org" exists with roles "community_member"
|
||||
And I login as "admin@perauset.org"
|
||||
When I create a task instance with title "Fix Faucet" category "maintenance"
|
||||
Then the response status should be 200
|
||||
And I store the response field "taskId" as "taskId"
|
||||
When I assign the task to user "volunteer@test.org"
|
||||
Then the response status should be 200
|
||||
And the response body field "taskStatus" should be "assigned"
|
||||
|
||||
Scenario: Start a task
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a task instance with title "Mow Lawn" category "maintenance"
|
||||
Then the response status should be 200
|
||||
And I store the response field "taskId" as "taskId"
|
||||
Given a user "volunteer@test.org" exists with roles "community_member"
|
||||
When I assign the task to user "volunteer@test.org"
|
||||
Then the response status should be 200
|
||||
When I start the task
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "in_progress"
|
||||
|
||||
Scenario: Complete a task
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a task instance with title "Paint Fence" category "maintenance"
|
||||
Then the response status should be 200
|
||||
And I store the response field "taskId" as "taskId"
|
||||
Given a user "volunteer@test.org" exists with roles "community_member"
|
||||
When I assign the task to user "volunteer@test.org"
|
||||
Then the response status should be 200
|
||||
When I start the task
|
||||
Then the response status should be 200
|
||||
When I complete the task
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "completed"
|
||||
|
||||
Scenario: Claim task as volunteer
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a task instance with title "Sweep Patio" category "housekeeping"
|
||||
Then the response status should be 200
|
||||
And I store the response field "taskId" as "taskId"
|
||||
Given a user "volunteer@test.org" exists with roles "community_member"
|
||||
And I login as "volunteer@test.org"
|
||||
When I claim the task
|
||||
Then the response status should be 200
|
||||
And the response body field "taskStatus" should be "assigned"
|
||||
|
||||
Scenario: Block a task
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a task instance with title "Repair Roof" category "maintenance"
|
||||
Then the response status should be 200
|
||||
And I store the response field "taskId" as "taskId"
|
||||
Given a user "volunteer@test.org" exists with roles "community_member"
|
||||
When I assign the task to user "volunteer@test.org"
|
||||
Then the response status should be 200
|
||||
When I mark the task as blocked with reason "Waiting for materials"
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "blocked"
|
||||
|
||||
Scenario: Invalid transition - complete an open task
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a task instance with title "Invalid Task" category "operations"
|
||||
Then the response status should be 200
|
||||
And I store the response field "taskId" as "taskId"
|
||||
When I complete the task
|
||||
Then the response status should be 409
|
||||
|
||||
Scenario: Unpermissioned user cannot create templates
|
||||
Given a user "guest@test.org" exists with roles "guest"
|
||||
And I login as "guest@test.org"
|
||||
When I create a task template with title "Forbidden Template" category "kitchen"
|
||||
Then the response status should be 403
|
||||
Reference in New Issue
Block a user