Files
git.stella-ops.org/docs/features/dropped/mi8-deterministic-seeds-snapshots.md

41 lines
2.1 KiB
Markdown

# MI8 - Deterministic Seeds/Snapshots (Fixed RNG, Frozen Timestamps)
## Module
Web
## Status
PARTIALLY_IMPLEMENTED
## Description
Deterministic fixture files exist for testing. Storybook preview is configured. However, specific chromatic.disableAnimation parameters and fixed seed exports from a `micro-fixtures.ts` file were not verified.
## What's Implemented
- **Existing services**:
- `determinization` (`src/Web/StellaOps.Web/src/app/core/services/determinization/determinization.service.ts`)
## What's Missing
- **Fixed RNG seed exports**: No `micro-fixtures.ts` file exporting deterministic seed values for Storybook stories and tests
- **Frozen timestamps**: No globally-configurable frozen timestamp provider for deterministic date rendering in snapshots
- **chromatic.disableAnimation**: Storybook preview may not have `chromatic.disableAnimation` configured for consistent visual regression snapshots
- **Deterministic service integration**: `determinization.service.ts` exists but its usage across all Storybook stories for reproducible snapshots is not confirmed
## Implementation Plan
- Create `micro-fixtures.ts` with exported seed values and frozen timestamp provider
- Configure `chromatic.disableAnimation` in Storybook preview config
- Wire `determinization.service.ts` into all Storybook stories for reproducible rendering
- Add documentation for deterministic snapshot patterns
## E2E Test Plan
- **Setup**:
- [ ] Log in with a user that has appropriate permissions
- [ ] Navigate to the relevant page/section where this feature appears
- [ ] Ensure test data exists (scanned artifacts, SBOM data, or seed data as needed)
- **Core verification**:
- [ ] Verify the component renders correctly with sample data
- [ ] Verify interactive elements respond to user input
- [ ] Verify data is fetched and displayed from the correct API endpoints
- **Edge cases**:
- [ ] Verify graceful handling when backend API is unavailable (error state)
- [ ] Verify responsive layout at different viewport sizes
- [ ] Verify accessibility (keyboard navigation, screen reader labels, ARIA attributes)