chore: perauset customer project
This commit is contained in:
122
e2e/tests/features/boats.feature
Normal file
122
e2e/tests/features/boats.feature
Normal file
@@ -0,0 +1,122 @@
|
||||
Feature: Boat Management
|
||||
|
||||
Scenario: Create route, boat, and trip as coordinator
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a boat route with name "Main Ferry" origin "Mainland" destination "Island"
|
||||
Then the response status should be 200
|
||||
And I store the response field "routeId" as "routeId"
|
||||
When I create a boat with name "Sea Spirit" capacity 20
|
||||
Then the response status should be 200
|
||||
And I store the response field "boatId" as "boatId"
|
||||
When I create a boat trip for the route and boat departing "2026-06-15T08:00:00Z"
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "planned"
|
||||
And I store the response field "tripId" as "tripId"
|
||||
|
||||
Scenario: Open trip for requests
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a boat route with name "Express Route" origin "Port A" destination "Port B"
|
||||
Then the response status should be 200
|
||||
And I store the response field "routeId" as "routeId"
|
||||
When I create a boat with name "Wave Runner" capacity 15
|
||||
Then the response status should be 200
|
||||
And I store the response field "boatId" as "boatId"
|
||||
When I create a boat trip for the route and boat departing "2026-07-01T09:00:00Z"
|
||||
Then the response status should be 200
|
||||
And I store the response field "tripId" as "tripId"
|
||||
When I open the boat trip
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "open"
|
||||
|
||||
Scenario: Request seat as community member
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a boat route with name "Shuttle" origin "Dock A" destination "Dock B"
|
||||
Then the response status should be 200
|
||||
And I store the response field "routeId" as "routeId"
|
||||
When I create a boat with name "Island Hopper" capacity 10
|
||||
Then the response status should be 200
|
||||
And I store the response field "boatId" as "boatId"
|
||||
When I create a boat trip for the route and boat departing "2026-08-01T07:00:00Z"
|
||||
Then the response status should be 200
|
||||
And I store the response field "tripId" as "tripId"
|
||||
When I open the boat trip
|
||||
Then the response status should be 200
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I request a seat on the boat trip
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "submitted"
|
||||
And I store the response field "requestId" as "boatRequestId"
|
||||
|
||||
Scenario: Confirm boat request as coordinator
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a boat route with name "Confirm Route" origin "Harbor" destination "Cove"
|
||||
Then the response status should be 200
|
||||
And I store the response field "routeId" as "routeId"
|
||||
When I create a boat with name "Coral Cruiser" capacity 12
|
||||
Then the response status should be 200
|
||||
And I store the response field "boatId" as "boatId"
|
||||
When I create a boat trip for the route and boat departing "2026-09-01T10:00:00Z"
|
||||
Then the response status should be 200
|
||||
And I store the response field "tripId" as "tripId"
|
||||
When I open the boat trip
|
||||
Then the response status should be 200
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I request a seat on the boat trip
|
||||
Then the response status should be 200
|
||||
And I store the response field "requestId" as "boatRequestId"
|
||||
Given I login as "admin@perauset.org"
|
||||
When I confirm the boat request
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "confirmed"
|
||||
|
||||
Scenario: Cancel a trip
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a boat route with name "Cancel Route" origin "Pier" destination "Bay"
|
||||
Then the response status should be 200
|
||||
And I store the response field "routeId" as "routeId"
|
||||
When I create a boat with name "Sunset Sailor" capacity 8
|
||||
Then the response status should be 200
|
||||
And I store the response field "boatId" as "boatId"
|
||||
When I create a boat trip for the route and boat departing "2026-10-01T06:00:00Z"
|
||||
Then the response status should be 200
|
||||
And I store the response field "tripId" as "tripId"
|
||||
When I open the boat trip
|
||||
Then the response status should be 200
|
||||
When I cancel the boat trip
|
||||
Then the response status should be 200
|
||||
And the response body field "status" should be "cancelled"
|
||||
|
||||
Scenario: Unpermissioned user cannot create trips
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a boat route with name "Forbidden Route" origin "X" destination "Y"
|
||||
Then the response status should be 200
|
||||
And I store the response field "routeId" as "routeId"
|
||||
Given a user "guest@test.org" exists with roles "guest"
|
||||
And I login as "guest@test.org"
|
||||
When I create a boat trip for the route without boat departing "2026-06-15T08:00:00Z"
|
||||
Then the response status should be 403
|
||||
|
||||
Scenario: Unpermissioned user cannot confirm requests
|
||||
Given I login as "admin@perauset.org"
|
||||
When I create a boat route with name "Perm Route" origin "North" destination "South"
|
||||
Then the response status should be 200
|
||||
And I store the response field "routeId" as "routeId"
|
||||
When I create a boat with name "Perm Boat" capacity 10
|
||||
Then the response status should be 200
|
||||
And I store the response field "boatId" as "boatId"
|
||||
When I create a boat trip for the route and boat departing "2026-11-01T08:00:00Z"
|
||||
Then the response status should be 200
|
||||
And I store the response field "tripId" as "tripId"
|
||||
When I open the boat trip
|
||||
Then the response status should be 200
|
||||
Given a user "member@test.org" exists with roles "community_member"
|
||||
And I login as "member@test.org"
|
||||
When I request a seat on the boat trip
|
||||
Then the response status should be 200
|
||||
And I store the response field "requestId" as "boatRequestId"
|
||||
Given a user "guest@test.org" exists with roles "guest"
|
||||
And I login as "guest@test.org"
|
||||
When I confirm the boat request
|
||||
Then the response status should be 403
|
||||
Reference in New Issue
Block a user