Initial commit: Clean DSS implementation
Migrated from design-system-swarm with fresh git history.
Old project history preserved in /home/overbits/apps/design-system-swarm
Core components:
- MCP Server (Python FastAPI with mcp 1.23.1)
- Claude Plugin (agents, commands, skills, strategies, hooks, core)
- DSS Backend (dss-mvp1 - token translation, Figma sync)
- Admin UI (Node.js/React)
- Server (Node.js/Express)
- Storybook integration (dss-mvp1/.storybook)
Self-contained configuration:
- All paths relative or use DSS_BASE_PATH=/home/overbits/dss
- PYTHONPATH configured for dss-mvp1 and dss-claude-plugin
- .env file with all configuration
- Claude plugin uses ${CLAUDE_PLUGIN_ROOT} for portability
Migration completed: $(date)
🤖 Clean migration with full functionality preserved
This commit is contained in:
272
.dss/TEST_STRATEGY.md
Normal file
272
.dss/TEST_STRATEGY.md
Normal file
@@ -0,0 +1,272 @@
|
||||
# Comprehensive Test Strategy: Phases 6-8 & Figma Integration
|
||||
|
||||
**Date**: 2025-12-05
|
||||
**Purpose**: Test complete flow from Figma → DSS → Storybook with self-referential design system
|
||||
**Status**: PLANNING
|
||||
|
||||
---
|
||||
|
||||
## Architecture Overview: Self-Referential Design System
|
||||
|
||||
```
|
||||
Figma Design File (Source of Truth)
|
||||
↓
|
||||
DSS Figma Extractor (Phase 7)
|
||||
↓
|
||||
Token/Asset Database
|
||||
↓
|
||||
DSS Component Library (Built using own tokens)
|
||||
↓
|
||||
Storybook (Stories showcase DSS using DSS tokens)
|
||||
↓
|
||||
Output Formats (CSS, JSON, TS, etc.)
|
||||
↓
|
||||
Integration Tests (Verify full loop)
|
||||
```
|
||||
|
||||
**Key Challenge**: DSS components consume tokens that came from Figma, which were designed to match DSS components. This is intentional (eating your own dogfood).
|
||||
|
||||
---
|
||||
|
||||
## Test Layers Strategy
|
||||
|
||||
### Layer 1: Unit Tests (Individual Modules)
|
||||
- Config loader initialization
|
||||
- Component registry management
|
||||
- Audit logging functionality
|
||||
- Workflow persistence snapshots
|
||||
- Route guard validation
|
||||
- Error recovery mechanisms
|
||||
|
||||
### Layer 2: Integration Tests
|
||||
- Config → Component Registry flow
|
||||
- Figma extraction → Token sync
|
||||
- Error handling with recovery points
|
||||
- Permission checks with logging
|
||||
- State persistence and restoration
|
||||
|
||||
### Layer 3: Figma API Tests
|
||||
- Real Figma file connection
|
||||
- Variable extraction from DSS file
|
||||
- Component definition extraction
|
||||
- Style and asset extraction
|
||||
- Token format conversion
|
||||
|
||||
### Layer 4: End-to-End Tests
|
||||
- Complete Figma → DSS → Storybook workflow
|
||||
- Token sync across all formats
|
||||
- Error recovery in full flow
|
||||
- Multi-format export validation
|
||||
|
||||
### Layer 5: Visual Regression Tests
|
||||
- Storybook stories using DSS tokens
|
||||
- Component rendering with real tokens
|
||||
- Theme switching with token variables
|
||||
- Chromatic visual testing
|
||||
|
||||
### Layer 6: Snapshot Tests
|
||||
- Token export format stability
|
||||
- Component rendering consistency
|
||||
- Output format preservation
|
||||
|
||||
---
|
||||
|
||||
## Testing Tools & Setup
|
||||
|
||||
### Required Dependencies
|
||||
```json
|
||||
{
|
||||
"devDependencies": {
|
||||
"jest": "^29.0.0",
|
||||
"jest-environment-jsdom": "^29.0.0",
|
||||
"@testing-library/react": "^14.0.0",
|
||||
"@testing-library/jest-dom": "^6.0.0",
|
||||
"pytest": "^7.0.0",
|
||||
"pytest-asyncio": "^0.21.0",
|
||||
"@storybook/test-runner": "^0.13.0",
|
||||
"@chromatic-com/storybook": "^1.0.0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Test File Structure
|
||||
```
|
||||
project/
|
||||
├── admin-ui/js/core/__tests__/
|
||||
│ ├── config-loader.test.js
|
||||
│ ├── component-config.test.js
|
||||
│ ├── workflow-persistence.test.js
|
||||
│ ├── audit-logger.test.js
|
||||
│ ├── route-guards.test.js
|
||||
│ ├── error-recovery.test.js
|
||||
│ ├── config-component-integration.test.js
|
||||
│ └── phase8-integration.test.js
|
||||
│
|
||||
├── admin-ui/__tests__/
|
||||
│ ├── e2e-full-workflow.test.js
|
||||
│ └── __snapshots__/
|
||||
│
|
||||
├── dss-mvp1/src/__tests__/
|
||||
│ ├── component-rendering.test.jsx
|
||||
│ └── __snapshots__/
|
||||
│
|
||||
├── dss-mvp1/.storybook/
|
||||
│ └── test-setup.js
|
||||
│
|
||||
└── tools/api/tests/
|
||||
├── test_figma_integration.py
|
||||
├── test_token_formats.py
|
||||
├── test_token_snapshots.py
|
||||
└── __snapshots__/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Test Execution Matrix
|
||||
|
||||
### Environment Variables Required
|
||||
```bash
|
||||
# Figma Integration
|
||||
export FIGMA_API_KEY="figd_xxxxxxxxxxxx"
|
||||
export DSS_FIGMA_FILE_KEY="xxxxxxxxxxxx" # Main DSS design file
|
||||
export DSS_TEST_FIGMA_FILE="yyyyyyyyyyyy" # Disposable test file
|
||||
|
||||
# DSS Configuration
|
||||
export DSS_HOST="dss.overbits.luz.uy"
|
||||
export DSS_PORT="3456"
|
||||
export STORYBOOK_PORT="6006"
|
||||
|
||||
# Test Configuration
|
||||
export TEST_ENV="test"
|
||||
export VERBOSE_TESTS="true"
|
||||
```
|
||||
|
||||
### Test Commands
|
||||
```bash
|
||||
# Run all tests
|
||||
npm run test
|
||||
|
||||
# Unit tests only
|
||||
npm run test:unit
|
||||
|
||||
# Integration tests
|
||||
npm run test:integration
|
||||
|
||||
# Figma real-file tests (requires API key)
|
||||
npm run test:figma
|
||||
|
||||
# E2E tests (requires running server)
|
||||
npm run test:e2e
|
||||
|
||||
# Visual regression tests (Storybook)
|
||||
npm run test:visual
|
||||
|
||||
# With coverage report
|
||||
npm run test -- --coverage
|
||||
|
||||
# Watch mode for development
|
||||
npm run test -- --watch
|
||||
|
||||
# Single test file
|
||||
npm run test -- config-loader.test.js
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Implementation Phases
|
||||
|
||||
### Phase 1: Unit Tests (This Week)
|
||||
Create test files for:
|
||||
1. config-loader.js
|
||||
2. component-config.js
|
||||
3. All Phase 8 modules
|
||||
|
||||
Target: 80%+ coverage
|
||||
|
||||
### Phase 2: Figma Integration (Next Week)
|
||||
1. Test real Figma file connection
|
||||
2. Test token extraction
|
||||
3. Test component extraction
|
||||
4. Create token export modules
|
||||
|
||||
Target: Full workflow validation
|
||||
|
||||
### Phase 3: Storybook Setup (Week After)
|
||||
1. Configure Storybook with DSS tokens
|
||||
2. Create component stories using tokens
|
||||
3. Setup visual regression testing
|
||||
4. Chromatic integration
|
||||
|
||||
Target: Visual consistency
|
||||
|
||||
### Phase 4: CI/CD (Final Week)
|
||||
1. GitHub Actions workflow
|
||||
2. Automated test runs on push
|
||||
3. Coverage reporting
|
||||
4. Visual regression tracking
|
||||
|
||||
Target: Automated quality gates
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
| Layer | Coverage | Pass Rate | Requirement |
|
||||
|-------|----------|-----------|-------------|
|
||||
| Unit | >80% | 100% | All modules |
|
||||
| Integration | >70% | 100% | All interactions |
|
||||
| Figma API | N/A | 100% | Real extraction |
|
||||
| E2E | >60% | 100% | Full workflow |
|
||||
| Visual | >90% | 100% | Component rendering |
|
||||
| **Overall** | **>75%** | **100%** | Production ready |
|
||||
|
||||
---
|
||||
|
||||
## Key Test Scenarios
|
||||
|
||||
### Scenario 1: Blank State → Full Import
|
||||
- Load app (config not cached)
|
||||
- Connect to Figma
|
||||
- Extract all tokens, components, styles
|
||||
- Import into database
|
||||
- Verify all formats work
|
||||
|
||||
### Scenario 2: Crash & Recovery
|
||||
- Create recovery point
|
||||
- Simulate error
|
||||
- Verify error logged
|
||||
- Restore from recovery point
|
||||
- Resume operation
|
||||
|
||||
### Scenario 3: Figma Update → DSS Sync
|
||||
- Get latest Figma file
|
||||
- Extract changed tokens only
|
||||
- Sync to DSS
|
||||
- Update Storybook
|
||||
- Verify visual changes
|
||||
|
||||
### Scenario 4: Multi-Format Export
|
||||
- Extract from Figma
|
||||
- Export as CSS variables
|
||||
- Export as JSON
|
||||
- Export as TypeScript
|
||||
- Verify all formats match
|
||||
|
||||
### Scenario 5: Permission Enforcement
|
||||
- Attempt unauthorized action
|
||||
- Verify guard blocks access
|
||||
- Check audit log
|
||||
- Verify error recovery
|
||||
|
||||
---
|
||||
|
||||
## Next Immediate Actions
|
||||
|
||||
1. ✅ Create test strategy document (this file)
|
||||
2. 🔄 Create unit test files for all modules
|
||||
3. 🔄 Setup Figma test environment
|
||||
4. 🔄 Create token format exporters
|
||||
5. 🔄 Setup Storybook with DSS tokens
|
||||
6. 🔄 Create end-to-end tests
|
||||
|
||||
All test files will be provided next in this session.
|
||||
Reference in New Issue
Block a user