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

2.1 KiB

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)