|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- ---
- 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: '{skill-root}/steps-c/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.
|