Files
perauset-e2e-mrfz8msi/e2e/tests/features/retreats.feature
2026-07-11 08:21:55 +02:00

69 lines
3.3 KiB
Gherkin

Feature: Retreat Management
Scenario: Create retreat as admin
Given I login as "admin@perauset.org"
When I create a retreat "Summer Solstice" with slug "summer-solstice-2026" from "2026-06-20" to "2026-06-22"
Then the response status should be 200
And the response body field "status" should be "draft"
And I store the response field "retreatId" as "retreatId"
Scenario: List retreats
Given I login as "admin@perauset.org"
When I create a retreat "Autumn Equinox" with slug "autumn-equinox-2026" from "2026-09-22" to "2026-09-24"
Then the response status should be 200
When I list retreats
Then the response status should be 200
And the response body field "items" should be truthy
Scenario: Update retreat
Given I login as "admin@perauset.org"
When I create a retreat "Spring Retreat" with slug "spring-retreat-2026" from "2026-03-20" to "2026-03-22"
Then the response status should be 200
And I store the response field "retreatId" as "retreatId"
When I update the retreat with name "Spring Renewal Retreat" and capacity 30
Then the response status should be 200
And the response body field "success" should be truthy
Scenario: Publish retreat
Given I login as "admin@perauset.org"
When I create a retreat "Winter Solstice" with slug "winter-solstice-2026" from "2026-12-20" to "2026-12-22"
Then the response status should be 200
And I store the response field "retreatId" as "retreatId"
When I publish the retreat
Then the response status should be 200
And the response body field "status" should be "published"
Scenario: Add person to retreat
Given I login as "admin@perauset.org"
When I create a retreat "Meditation Retreat" with slug "meditation-2026" from "2026-08-01" to "2026-08-03"
Then the response status should be 200
And I store the response field "retreatId" as "retreatId"
When I add a person "Jane Doe" with role "participant" to the retreat
Then the response status should be 200
And the response body field "attendanceStatus" should be "registered"
And I store the response field "retreatPersonId" as "retreatPersonId"
Scenario: Add schedule item to retreat
Given I login as "admin@perauset.org"
When I create a retreat "Yoga Retreat" with slug "yoga-retreat-2026" from "2026-10-01" to "2026-10-03"
Then the response status should be 200
And I store the response field "retreatId" as "retreatId"
When I add a schedule item "Morning Yoga" from "2026-10-01T07:00:00Z" to "2026-10-01T08:30:00Z" at "Main Hall"
Then the response status should be 200
And the response body field "itemId" should be truthy
Scenario: Cancel retreat
Given I login as "admin@perauset.org"
When I create a retreat "Cancelled Event" with slug "cancelled-event-2026" from "2026-11-01" to "2026-11-03"
Then the response status should be 200
And I store the response field "retreatId" as "retreatId"
When I cancel the retreat
Then the response status should be 200
And the response body field "status" should be "cancelled"
Scenario: Unpermissioned user cannot create retreats
Given a user "guest@test.org" exists with roles "guest"
And I login as "guest@test.org"
When I create a retreat "Forbidden Retreat" with slug "forbidden-2026" from "2026-07-01" to "2026-07-03"
Then the response status should be 403