41 lines
2.1 KiB
Markdown
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)
|