151 lines
4.4 KiB
YAML
151 lines
4.4 KiB
YAML
---
|
|
test_id: diagrams-architect-002
|
|
test_name: Sequence Diagram Generation
|
|
coverage:
|
|
- TC-B008 # Skill detects sequence diagram request
|
|
- TC-B009 # Agent generates sequenceDiagram syntax
|
|
- TC-B010 # Participants clearly labeled
|
|
- TC-B011 # Flow accurately represents process
|
|
- TC-B012 # Saved to correct location
|
|
- TC-B013 # File named correctly
|
|
priority: P1
|
|
tags:
|
|
- sequence-diagram
|
|
- interaction-flow
|
|
- authentication
|
|
---
|
|
|
|
# Test Case: Sequence Diagram Generation
|
|
|
|
## Scenario
|
|
|
|
User requests a sequence diagram to understand the login authentication flow, including success and failure paths.
|
|
|
|
## Input
|
|
|
|
**User Request**: "Create sequence diagram for login flow"
|
|
|
|
**Context Provided** (optional):
|
|
- User submits credentials via browser
|
|
- AuthService validates against database
|
|
- Session created on success
|
|
- Error message on failure
|
|
|
|
## Expected Agent Behavior
|
|
|
|
1. **Recognize diagram type**: Sequence diagram
|
|
2. **Choose appropriate template**: `sequence-template.mmd`
|
|
3. **Generate diagram** with:
|
|
- Participants: User, Browser, AuthService, Database, SessionStore
|
|
- Clear interaction sequence
|
|
- Success path (alt) and failure path (else)
|
|
- Activation boxes showing processing time
|
|
- Response arrows (dashed)
|
|
4. **Validate syntax**:
|
|
- Starts with `sequenceDiagram` (uses `mermaid` keyword for non-C4)
|
|
- All participants defined
|
|
- Message arrows correct (->>, -->>)
|
|
- Alt/else blocks properly structured
|
|
5. **Specify file path**: `.specweave/docs/internal/architecture/diagrams/auth/flows/login-flow.mmd`
|
|
6. **Provide validation instructions**
|
|
|
|
## Expected Output
|
|
|
|
**Diagram Content** (approximate):
|
|
```
|
|
sequenceDiagram
|
|
participant User
|
|
participant Browser
|
|
participant AuthService
|
|
participant Database
|
|
participant SessionStore
|
|
|
|
User->>Browser: Enter credentials
|
|
Browser->>AuthService: POST /api/auth/login
|
|
activate AuthService
|
|
|
|
AuthService->>Database: Query user by email
|
|
Database-->>AuthService: User record
|
|
|
|
AuthService->>AuthService: Verify password (bcrypt)
|
|
|
|
alt Password valid
|
|
AuthService->>SessionStore: Create session
|
|
SessionStore-->>AuthService: Session ID
|
|
AuthService-->>Browser: 200 OK + Session cookie
|
|
Browser-->>User: Redirect to dashboard
|
|
else Password invalid
|
|
AuthService-->>Browser: 401 Unauthorized
|
|
Browser-->>User: Show error message
|
|
end
|
|
|
|
deactivate AuthService
|
|
```
|
|
|
|
**File Path**: `.specweave/docs/internal/architecture/diagrams/auth/flows/login-flow.mmd`
|
|
|
|
**Validation Message**:
|
|
```
|
|
✅ Diagram created: .specweave/docs/internal/architecture/diagrams/auth/flows/login-flow.mmd
|
|
|
|
📋 VALIDATION REQUIRED:
|
|
1. Open the file in VS Code
|
|
2. Verify the sequence diagram renders correctly
|
|
3. Confirm all participants and messages are clear
|
|
4. Verify success and failure paths are visible
|
|
```
|
|
|
|
## Success Criteria
|
|
|
|
- [ ] Diagram uses correct sequenceDiagram syntax
|
|
- [ ] Includes `mermaid` keyword (standard for non-C4 diagrams)
|
|
- [ ] All participants clearly defined
|
|
- [ ] Request arrows are solid (->>)
|
|
- [ ] Response arrows are dashed (-->>)
|
|
- [ ] Alt/else block shows conditional logic
|
|
- [ ] Activate/deactivate shows processing time
|
|
- [ ] File path follows conventions (module/flows/ subdirectory)
|
|
- [ ] Validation instructions provided
|
|
- [ ] Diagram would render correctly
|
|
|
|
## Failure Scenarios
|
|
|
|
**Scenario 1: Missing participant definition**
|
|
```
|
|
sequenceDiagram
|
|
User->>Browser: Enter credentials
|
|
```
|
|
❌ FAIL: Participants should be explicitly defined
|
|
|
|
**Scenario 2: Wrong arrow types**
|
|
```
|
|
Browser-->>AuthService: POST /api/auth/login
|
|
```
|
|
❌ FAIL: Requests should use solid arrows (->>) not dashed
|
|
|
|
**Scenario 3: Missing alt/else for conditional flow**
|
|
```
|
|
AuthService->>SessionStore: Create session
|
|
AuthService-->>Browser: 401 Unauthorized
|
|
```
|
|
❌ FAIL: Should use alt/else to show conditional paths
|
|
|
|
**Scenario 4: Incorrect file location**
|
|
```
|
|
File: .specweave/docs/internal/architecture/diagrams/login-flow.mmd
|
|
```
|
|
❌ FAIL: Should be in module-specific `flows/` subdirectory
|
|
|
|
## Traceability
|
|
|
|
**Covers User Stories**:
|
|
- US-B002: Create Sequence Diagram
|
|
|
|
**Covers Acceptance Criteria**:
|
|
- TC-B008: Skill detects sequence diagram request
|
|
- TC-B009: Agent generates sequenceDiagram syntax
|
|
- TC-B010: Participants clearly labeled
|
|
- TC-B011: Flow accurately represents login process
|
|
- TC-B012: Diagram saved to correct location
|
|
- TC-B013: File named `login-flow.sequence.mmd` or `login-flow.mmd`
|