Files
L-Ami-Fiduciaire/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-03.md.bak
Saad Ibn-Ezzoubayr 35545c2a8f feat: L'Ami Fiduciaire V1.0.0 — full codebase with Story 0.1 complete
Initial commit of the L'Ami Fiduciaire SaaS platform built on Laravel 12,
Vue 3, Inertia.js 2, and Tailwind CSS 4.

Story 0.1 (rename folders to declarations in database) is implemented and
code-reviewed: migration, rollback, and 6 Pest tests all passing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 23:33:10 +00:00

302 lines
7.4 KiB
Markdown

---
name: 'step-04-session-03'
description: 'Session 3: Architecture & Patterns - Fixtures, network patterns, framework setup (60 min)'
progressFile: '{test_artifacts}/teaching-progress/{user_name}-tea-progress.yaml'
sessionNotesTemplate: '../templates/session-notes-template.md'
sessionNotesFile: '{test_artifacts}/tea-academy/{user_name}/session-03-notes.md'
nextStepFile: './step-03-session-menu.md'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 4: Session 3 - Architecture & Patterns
## STEP GOAL:
To teach TEA architecture patterns including fixture composition, network-first patterns, and step-file architecture in a 60-minute session.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- ✅ You are a Master Test Architect and Teaching Guide
- ✅ We engage in collaborative learning, not lectures
- ✅ You bring expertise in TEA methodology and teaching pedagogy
- ✅ Learner brings their role context, experience, and learning goals
### Step-Specific Rules:
- 🎯 Focus ONLY on Session 3 content (Architecture & Patterns)
- 🚫 FORBIDDEN to skip ahead to other sessions
- 💬 Approach: Teach patterns, provide examples, quiz understanding
## EXECUTION PROTOCOLS:
- 🎯 Load TEA docs just-in-time
- 💾 Generate session notes after completion
- 📖 Update progress file with session completion and score
- ⏭️ Return to session menu hub after completion
## CONTEXT BOUNDARIES:
- Available context: Progress file with user role/experience
- Focus: Session 3 - Architecture patterns
- Dependencies: Progress file exists
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly.
### 1. Session Welcome
"🧪 **Session 3: Architecture & Patterns** (60 minutes)
**Objective:** Understand TEA patterns and architecture
**What you'll learn:**
- Fixture architecture and composition
- Network-first patterns
- Data factories and test setup
- Step-file architecture (the pattern this workflow uses!)
Let's explore TEA architecture!"
### 2. Update Progress (Started)
Load {progressFile}, update session-03-architecture:
- `status: 'in-progress'`
- `started_date: {current_date}`
### 3. Teaching: Fixture Architecture
"### 🏗️ Fixture Architecture
**The Problem:** Tests have setup/teardown boilerplate everywhere.
**TEA Solution:** Composable fixtures
**Fixture Composition Pattern:**
```typescript
// Base fixtures
const baseFixtures = {
page: async ({}, use) => {
/* ... */
},
};
// Composed fixtures
const authFixtures = {
authenticatedPage: async ({ page }, use) => {
await page.goto('/login');
await login(page);
await use(page);
},
};
// Merge and use
test.use(mergeTests(baseFixtures, authFixtures));
```
**Benefits:**
- DRY: Define once, use everywhere
- Composable: Build complex fixtures from simple ones
- Automatic cleanup: Fixtures handle teardown
- Type-safe: Full TypeScript support
{Role-adapted example based on user role}
**Documentation:** <https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/explanation/fixture-architecture/>
**Knowledge Fragment:** fixture-architecture.md, fixtures-composition.md"
### 4. Teaching: Network-First Patterns
"### 🌐 Network-First Patterns
**The Problem:** Flaky tests due to network timing issues.
**TEA Solution:** Intercept and control network
**Network-First Pattern:**
```typescript
// BEFORE the action, set up network interception
await page.route('/api/users', (route) => {
route.fulfill({ json: mockUsers });
});
// THEN trigger the action
await page.click('Load Users');
// Network is already mocked - no race condition
```
**Why Network-First:**
- Prevents race conditions
- Deterministic test behavior
- Fast (no real API calls)
- Control error scenarios
{Role-adapted example}
**Documentation:** <https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/explanation/network-first-patterns/>
**Knowledge Fragment:** network-first.md, intercept-network-call.md"
### 5. Teaching: Data Factories
"### 🏭 Data Factories
**The Problem:** Hard-coded test data everywhere.
**TEA Solution:** Factory functions
**Factory Pattern:**
```typescript
function createUser(overrides = {}) {
return {
id: faker.uuid(),
email: faker.email(),
role: 'user',
...overrides,
};
}
// Use in tests
const admin = createUser({ role: 'admin' });
const user = createUser(); // defaults
```
**Benefits:**
- No hardcoded data
- Easy to override fields
- Consistent test data
- Self-documenting
{Role-adapted example}
**Knowledge Fragment:** data-factories.md"
### 6. Teaching: Step-File Architecture
"### 📋 Step-File Architecture
**This workflow uses step-file architecture!**
**Pattern:**
- Micro-file design: Each step is self-contained
- Just-in-time loading: Only current step in memory
- Sequential enforcement: No skipping steps
- State tracking: Progress saved between steps
**Why:**
- Disciplined execution
- Clear progression
- Resumable (continuable workflows)
- Maintainable (one file per step)
**You're experiencing this right now:** Each session is a step file!
**Documentation:** <https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/explanation/step-file-architecture/>"
### 7. Quiz (3 questions)
"### ✅ Knowledge Check"
**Q1:** "What is the main benefit of fixture composition?
A) Faster test execution
B) DRY - define once, reuse everywhere
C) Better error messages
D) Automatic screenshot capture"
Correct: B
**Q2:** "Why is 'network-first' better than mocking after the action?
A) It's faster
B) It prevents race conditions
C) It uses less memory
D) It's easier to write"
Correct: B
**Q3:** "What pattern does this teaching workflow use?
A) Page Object Model
B) Behavior Driven Development
C) Step-File Architecture
D) Test Pyramid"
Correct: C
Calculate score, handle <70% retry option.
### 8. Generate Session Notes
Create {sessionNotesFile} with:
- Session 3 content
- Topics: Fixtures, network-first, data factories, step-file architecture
- TEA docs referenced
- Knowledge fragments: fixture-architecture.md, network-first.md, data-factories.md
- Quiz results
- Next recommended: session-04-test-design
### 9. Update Progress (Completed)
Update session-03-architecture:
- `status: 'completed'`
- `completed_date: {current_date}`
- `score: {score}`
- `notes_artifact`
Increment sessions_completed, update completion_percentage.
Append 'step-04-session-03' to stepsCompleted.
### 10. Complete Message
"🎉 **Session 3 Complete!** Score: {score}/100
You understand TEA architecture patterns!
Progress: {completion_percentage}%"
### 11. Menu
[A] Advanced Elicitation [P] Party Mode [C] Continue to Session Menu
Return to {nextStepFile}
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Architecture patterns taught
- Quiz administered
- Notes generated
- Progress updated
- Returned to hub
### ❌ SYSTEM FAILURE:
- Skipping patterns
- Not generating notes
- Not updating progress
**Master Rule:** Teach patterns, quiz, update, return to hub.