From prism-devtools
Use to design test strategies and create test specifications. Documents testing approaches for stories.
npx claudepluginhub resolve-io/.prismThis skill uses the workspace's default tool permissions.
<!-- Powered by PRISMâ„¢ Core -->
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Provides patterns for autonomous Claude Code loops: sequential pipelines, agentic REPLs, PR cycles, de-sloppify cleanups, and RFC-driven multi-agent DAGs. For continuous dev workflows without intervention.
Applies NestJS patterns for modules, controllers, providers, DTO validation, guards, interceptors, config, and production TypeScript backends with project structure and bootstrap examples.
Create comprehensive E2E integration test scenarios with complete user journey validation for story implementation.
required:
- story_id: '{epic}.{story}' # e.g., "1.3"
- story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
- story_title: '{title}' # If missing, derive from story file H1
- story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
Design a comprehensive E2E integration test strategy that validates complete user journeys and system interactions. Primary focus on integration tests using WebApplicationFactory patterns with containerized dependencies to ensure realistic production-like scenarios while maintaining fast feedback loops.
data:
- test-levels-framework.md # Unit/Integration/E2E decision criteria
- test-priorities-matrix.md # P0/P1/P2/P3 classification system
Break down each acceptance criterion into testable scenarios. For each AC:
Reference: Load test-levels-framework.md for detailed criteria
Primary Strategy - E2E Integration Tests:
Reference: Load test-priorities-matrix.md for classification
Quick priority assignment:
For each identified test need, create comprehensive integration scenarios:
test_scenario:
id: '{epic}.{story}-{LEVEL}-{SEQ}'
requirement: 'AC reference'
priority: P0|P1|P2|P3
level: unit|integration|e2e
description: 'Complete user journey being tested'
justification: 'Why this level provides optimal coverage'
test_pattern: 'WebApplicationFactory|TestContainers|Fixture-based'
authentication: 'Bearer token|Keycloak|Anonymous'
database_state: 'Required test data setup'
api_endpoints: ['endpoints covered in journey']
arrange_act_assert: 'Clear AAA structure with Shouldly assertions'
mitigates_risks: ['RISK-001'] # If risk profile exists
Integration Test Design Patterns:
Ensure comprehensive E2E integration coverage:
Save to: qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md
# E2E Integration Test Design: Story {epic}.{story}
Date: {date}
Designer: Quinn (Test Architect)
## Test Strategy Overview
- **Primary Approach**: E2E Integration tests with WebApplicationFactory
- **Test Infrastructure**: Testcontainers (MSSQL) + Fixture-based resource sharing
- **Authentication**: Bearer token flows with seeded test data
- **Assertion Framework**: Shouldly for readable validation
- Total test scenarios: X
- Integration tests: Z (85%+ target)
- Unit tests: Y (10-15% for complex business logic only)
- Browser E2E tests: W (<5% for critical UI flows)
- Priority distribution: P0: X, P1: Y, P2: Z
## Integration Test Scenarios by Acceptance Criteria
### AC1: {description}
#### Test Scenarios
| ID | Level | Priority | User Journey | Test Pattern | Endpoints Covered |
| ------------ | ----------- | -------- | -------------------------------------- | ------------------------- | --------------------------- |
| 1.3-INT-001 | Integration | P0 | User authenticates and {core action} | WebApplicationFactory | /api/auth, /api/{resource} |
| 1.3-INT-002 | Integration | P0 | System validates {business rules} | DatabaseFixture + TestDB | /api/{validation-endpoint} |
| 1.3-INT-003 | Integration | P1 | Error handling for {edge case} | Full container stack | /api/{resource} |
#### Test Implementation Pattern
```csharp
[Collection(nameof(DefaultWebApplicationCollection))]
public class {FeatureEndpointTests}
{
private readonly ActionsApiFactory application;
public {FeatureEndpointTests}(DatabaseFixture db, SmtpFixture smtp, ITestOutputHelper output)
{
application = new ActionsApiFactory(db, smtp, output);
application.InitializeAuthentication();
}
[Fact]
public async Task {UserJourney}_ShouldReturn_{ExpectedOutcome}()
{
// Arrange - Setup user context and test data
var client = application.GetHttpClient();
var bearerToken = await application.GetJwtBearerToken();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", bearerToken);
var requestData = new { /* test specific data */ };
// Act - Execute the complete user journey
using var response = await client.PostAsync("/api/{endpoint}",
CreateJsonContent(requestData));
var result = (await response.Content.ReadAsStringAsync())
.Deserialize<{ResponseType}>();
// Assert - Validate complete response with Shouldly
response.StatusCode.ShouldBe(HttpStatusCode.OK);
result.ShouldNotBeNull();
result.{Property}.ShouldBe({ExpectedValue});
}
}
[Continue for all ACs...]
Required Fixtures:
DatabaseFixture: MSSQL Testcontainer with master/tenant databasesSmtpFixture: Email testing infrastructureDefaultWebApplicationCollection: Shared fixture orchestrationAuthentication Flow:
[Map integration test scenarios to identified risks - each scenario validates complete workflows]
### Output 2: Gate YAML Block
Generate for inclusion in quality gate:
```yaml
integration_test_design:
primary_strategy: "E2E Integration with WebApplicationFactory"
test_infrastructure:
- "Testcontainers (MSSQL)"
- "DatabaseFixture + SmtpFixture"
- "Bearer token authentication"
scenarios_total: X
by_level:
integration: Z # 85%+ target - primary coverage
unit: Y # 10-15% - complex business logic only
browser_e2e: W # <5% - critical UI flows only
by_priority:
p0: A # Integration-first with containerized dependencies
p1: B # Complete user journeys with real authentication
p2: C # Edge cases within integration context
test_patterns:
- "WebApplicationFactory bootstrap"
- "Arrange-Act-Assert with Shouldly assertions"
- "JSON serialization patterns"
- "Real database operations via Testcontainers"
coverage_gaps: [] # List any ACs without integration test coverage
Print for use by trace-requirements task:
E2E Integration test design matrix: qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md
P0 integration tests identified: {count}
WebApplicationFactory test harness configured: YES
Testcontainer dependencies: {database_fixtures}
Authentication flows covered: {auth_patterns}
Before finalizing E2E integration test design, verify: