Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions e2e/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.features-gen/
node_modules/
test-results/
playwright-report/
23 changes: 23 additions & 0 deletions e2e/features/agents/agent-chat.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
@api
Feature: Agent chat interactions

As a developer
I want to send messages to a running agent
So that I can verify it responds with correct capabilities and handles tasks

Background:
Given I set the API role to "admin"
And an agent named "bdd-chat-agent" exists

@smoke
Scenario: Agent responds with its capabilities
When I send "What can you do?" to agent "bdd-chat-agent"
Then the agent reply should contain "capabilities"

Scenario: Agent handles a task submission
When I send "Summarize the latest deployment logs" to agent "bdd-chat-agent"
Then the chat response should have steps

Scenario: Agent responds to a cost check
When I send "How much budget do I have left?" to agent "bdd-chat-agent"
Then the agent reply should contain "budget"
27 changes: 27 additions & 0 deletions e2e/features/agents/agent-detail.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
@ui
Feature: Agent detail page

As a developer
I want to view an agent's detail page
So that I can inspect its configuration, memory, and guardrails

Background:
Given I am logged in as "admin"
And an agent named "bdd-detail-agent" exists

@smoke
Scenario: Agent detail page loads and displays agent name
When I open the agent detail page for "bdd-detail-agent"
Then the agent detail should show "bdd-detail-agent"

Scenario: Agent detail page shows Open Chat button
When I open the agent detail page for "bdd-detail-agent"
Then I should see the "Open Chat" button

Scenario: Agent detail page shows Memory section
When I open the agent detail page for "bdd-detail-agent"
Then the agent detail should show "Memory"

Scenario: Agent detail page shows Guardrails section
When I open the agent detail page for "bdd-detail-agent"
Then the agent detail should show "Guardrails"
34 changes: 34 additions & 0 deletions e2e/features/agents/agent-list.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
@ui
Feature: Agent list and templates

As a developer
I want to see a list of my agents and available templates
So that I can manage existing agents and quickly deploy from pre-built configurations

Background:
Given I am logged in as "admin"

@smoke
Scenario: Agents page loads and displays heading
When I navigate to "/agents"
Then I should see the "Agents" page

Scenario: Agents page shows the Deploy button
When I navigate to "/agents"
Then I should see the "Deploy" button

Scenario: Agents page displays agent templates
When I navigate to "/agents"
Then I should see "Templates"

Scenario: Agent templates section shows pre-built options
When I navigate to "/agents"
Then I should see "Templates"
And I should see the "Deploy" button

@api
Scenario: Agents API returns agent list
Given I set the API role to "admin"
When I send a GET request to "/api/v1/agents"
Then the response should be successful
And the response JSON should have property "agents"
49 changes: 49 additions & 0 deletions e2e/features/agents/create-agent-chat.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
@api @slow
Feature: Create standard agent via chat flow

As a developer
I want to create a standard agent through the conversational chat interface
So that I can deploy an AI agent without navigating complex forms

Background:
Given I set the API role to "admin"

@smoke
Scenario: Create a standard agent through the full chat flow
When I start creating an agent via chat with name "bdd-standard-agent"
Then the agent reply should contain "type"

When I respond with "1" in the chat
Then the agent reply should contain "connector"

When I respond with "none" in the chat
Then the agent reply should contain "budget"

When I respond with "10" in the chat
Then the agent reply should contain "confirm"

When I respond with "yes" in the chat
Then the agent reply should contain "created"
And the agent "bdd-standard-agent" should be active
And the agent "bdd-standard-agent" should have type "standard"

Scenario: Chat flow prompts for agent type after name
When I start creating an agent via chat with name "bdd-type-prompt-test"
Then the agent reply should contain "type"

Scenario: Chat flow prompts for connectors after type selection
When I start creating an agent via chat with name "bdd-connector-prompt-test"
And I respond with "1" in the chat
Then the agent reply should contain "connector"

Scenario: Chat flow prompts for budget after connectors
When I start creating an agent via chat with name "bdd-budget-prompt-test"
And I respond with "1" in the chat
And I respond with "none" in the chat
Then the agent reply should contain "budget"

Scenario: Verify created agent appears in agent list via API
Given an agent named "bdd-listed-agent" exists
When I send a GET request to "/api/v1/agents"
Then the response should be successful
And the response should contain "bdd-listed-agent"
40 changes: 40 additions & 0 deletions e2e/features/agents/create-deep-agent.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
@api @slow
Feature: Create deep agent via chat flow

As a developer
I want to create a deep agent through the conversational chat interface
So that I can deploy an agent with advanced capabilities like world model and skill graph

Background:
Given I set the API role to "admin"

@smoke
Scenario: Create a deep agent by selecting type 2
When I start creating an agent via chat with name "bdd-deep-agent"
Then the agent reply should contain "type"

When I respond with "2" in the chat
Then the agent reply should contain "connector"

When I respond with "none" in the chat
Then the agent reply should contain "budget"

When I respond with "25" in the chat
Then the agent reply should contain "confirm"

When I respond with "yes" in the chat
Then the agent reply should contain "created"
And the agent "bdd-deep-agent" should be active
And the agent "bdd-deep-agent" should have type "deep"

Scenario: Deep agent type is persisted correctly
Given an agent named "bdd-deep-verify" exists
When I send a GET request to "/api/v1/agents"
Then the response should be successful
And the response should contain "bdd-deep-verify"

Scenario: Deep agent properties are returned via API
Given an agent named "bdd-deep-props" exists
When I send a GET request to "/api/v1/agents"
Then the response should be successful
And the response JSON should have property "agents"
26 changes: 26 additions & 0 deletions e2e/features/agents/deploy-modal.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
@ui
Feature: Agent deploy modal

As a developer
I want to open the deploy modal from the Agents page
So that I can create an agent using a visual form instead of the chat flow

Background:
Given I am logged in as "admin"
When I navigate to "/agents"

@smoke
Scenario: Deploy button is visible on the Agents page
Then I should see the "Deploy" button

Scenario: Deploy modal opens when clicking Deploy
When I click the "Deploy" button
Then I should see "Deploy Agent"

Scenario: Deploy modal shows agent name field
When I click the "Deploy" button
Then I should see "Name"

Scenario: Deploy modal shows agent type selection
When I click the "Deploy" button
Then I should see "Type"
62 changes: 62 additions & 0 deletions e2e/features/auth/api-keys.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
@api
Feature: API key management

As a platform administrator
I want to manage API keys for programmatic access
So that services and automation can authenticate without interactive login

Background:
Given I set the API role to "admin"

@smoke
Scenario: List API keys returns a successful response
When I send a GET request to "/api/v1/api-keys"
Then the response should be successful

Scenario: Create a new API key
When I send a POST request to "/api/v1/api-keys" with body:
"""
{
"name": "bdd-test-key",
"description": "Key created by BDD test suite",
"role": "developer"
}
"""
Then the response should be successful
And the response JSON should have property "name"
And the response JSON should have property "key"
And the response JSON should have property "role"
And the response JSON at "name" should be "bdd-test-key"
And the response JSON at "role" should be "developer"

Scenario: Created API key contains required metadata fields
When I send a POST request to "/api/v1/api-keys" with body:
"""
{
"name": "bdd-metadata-key",
"description": "Verify metadata fields",
"role": "user"
}
"""
Then the response should be successful
And the response JSON should have property "id"
And the response JSON should have property "name"
And the response JSON should have property "key"
And the response JSON should have property "created_at"

Scenario: Non-admin role is denied API key creation
Given I set the API role to "developer"
When I send a POST request to "/api/v1/api-keys" with body:
"""
{
"name": "unauthorized-key",
"description": "Should be rejected",
"role": "user"
}
"""
Then the response status should be 403

Scenario: Non-admin role is denied API key listing
Given I set the API role to "user"
When I send a GET request to "/api/v1/api-keys"
Then the response status should be 403
39 changes: 39 additions & 0 deletions e2e/features/auth/login.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
@ui @smoke
Feature: Login and session management

As a platform user
I want to sign in with my assigned role
So that I can access the features permitted for my persona

Background:
Given I am not logged in

Scenario: Login page displays all six role cards
Then I should be on the login page
And the login page should show 6 role cards

Scenario Outline: Sign in as each persona and verify identity
Given I am logged in as "<role>"
When I navigate to "/dashboard"
Then I should see "<display_name>"

Examples:
| role | display_name |
| admin | Administrator |
| developer | Developer |
| data-engineer | Data Engineer |
| sre | SRE |
| auditor | Auditor |
| user | User |

Scenario Outline: Sign out returns to login page
Given I am logged in as "<role>"
When I sign out
Then I should be on the login page
And the login page should show 6 role cards

Examples:
| role |
| admin |
| developer |
| user |
Loading
Loading