chore: perauset customer project
This commit is contained in:
102
e2e/tests/features/stays.feature
Normal file
102
e2e/tests/features/stays.feature
Normal file
@@ -0,0 +1,102 @@
|
||||
Feature: Stay Management
|
||||
|
||||
Scenario: Submit a stay request as community member
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I submit a stay request with type "volunteer" from "2026-06-01" to "2026-06-15"
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "submitted"
|
||||
And I store the response field "requestId" as "requestId"
|
||||
|
||||
Scenario: Approve a stay request as coordinator
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I submit a stay request with type "volunteer" from "2026-07-01" to "2026-07-15"
|
||||
Then the response status should be 200
|
||||
And I store the response field "requestId" as "requestId"
|
||||
Given I login as "admin@perauset.org"
|
||||
When I approve the stay request
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "approved"
|
||||
|
||||
Scenario: Create stay from approved request
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I submit a stay request with type "guest" from "2026-08-01" to "2026-08-10"
|
||||
Then the response status should be 200
|
||||
And I store the response field "requestId" as "requestId"
|
||||
Given I login as "admin@perauset.org"
|
||||
When I approve the stay request
|
||||
Then the response status should be 200
|
||||
When I create a stay from the approved request
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "pending"
|
||||
And I store the response field "stayId" as "stayId"
|
||||
|
||||
Scenario: Check in and check out a stay
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I submit a stay request with type "volunteer" from "2026-09-01" to "2026-09-10"
|
||||
Then the response status should be 200
|
||||
And I store the response field "requestId" as "requestId"
|
||||
Given I login as "admin@perauset.org"
|
||||
When I approve the stay request
|
||||
Then the response status should be 200
|
||||
When I create a stay from the approved request
|
||||
Then the response status should be 200
|
||||
And I store the response field "stayId" as "stayId"
|
||||
Given the stay is confirmed in the database
|
||||
When I check in the stay
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "checked_in"
|
||||
When I check out the stay
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "checked_out"
|
||||
|
||||
Scenario: Reject a stay request
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I submit a stay request with type "day_visit" from "2026-10-01" to "2026-10-01"
|
||||
Then the response status should be 200
|
||||
And I store the response field "requestId" as "requestId"
|
||||
Given I login as "admin@perauset.org"
|
||||
When I reject the stay request with reason "Not available"
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "rejected"
|
||||
|
||||
Scenario: Invalid transition - reject an already approved request
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I submit a stay request with type "volunteer" from "2026-11-01" to "2026-11-10"
|
||||
Then the response status should be 200
|
||||
And I store the response field "requestId" as "requestId"
|
||||
Given I login as "admin@perauset.org"
|
||||
When I approve the stay request
|
||||
Then the response status should be 200
|
||||
When I reject the stay request with reason "Changed mind"
|
||||
Then the response status should be 409
|
||||
|
||||
Scenario: Unpermissioned user cannot approve requests
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I submit a stay request with type "volunteer" from "2026-12-01" to "2026-12-10"
|
||||
Then the response status should be 200
|
||||
And I store the response field "requestId" as "requestId"
|
||||
Given a user "guest@test.org" exists with roles "guest"
|
||||
And I login as "guest@test.org"
|
||||
When I approve the stay request
|
||||
Then the response status should be 403
|
||||
|
||||
Scenario: Unpermissioned user cannot create stays
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I submit a stay request with type "volunteer" from "2027-01-01" to "2027-01-10"
|
||||
Then the response status should be 200
|
||||
And I store the response field "requestId" as "requestId"
|
||||
Given I login as "admin@perauset.org"
|
||||
When I approve the stay request
|
||||
Then the response status should be 200
|
||||
Given a user "guest@test.org" exists with roles "guest"
|
||||
And I login as "guest@test.org"
|
||||
When I create a stay from the approved request
|
||||
Then the response status should be 403
|
||||
Reference in New Issue
Block a user