testing library
Testing utilities and test harnesses for the Blooming Flutter framework.
Exposes DurableAnimationTestingExtension and TestDurableVSync for headless unit tests and simulation harnesses.
Classes
- BatchFunctor
- Callable functor managing transactional batch scopes in the reactive LPDAG engine.
-
Bloom<
T> - The core read-only reactive state interface in the Bloom reactive DAG engine.
- BloomAnimatedElement
- The element managing both the reactive RawComputedTerminal and DurableAnimationController lifecycle for a BloomAnimatedWidget.
- BloomAnimatedWidget
- A reactive widget bound to a DurableAnimationController that dynamically tracks Bloom dependencies via BloomVia while rebuilding on animation frame ticks.
-
BloomAsyncBuilder<
T> -
A declarative reactive widget providing structured 4-state asynchronous branching
(
data,loading,error,empty) with native Stale-While-Revalidate (SWR) preservation. -
BloomController<
T> - Imperative producer controller managing state mutations into the Bloom reactive DAG.
-
BloomCoupler<
T> - A dynamic reactive socket controller that allows hot-coupling or cold-coupling upstream Bloom pipelines at runtime without rebuilding downstream consumers.
- BloomDebugSnapshot
- An immutable structured diagnostic snapshot of a reactive Bloom node, capturing its topology, lifecycle, and reactive state payload.
-
BloomDraftController<
C> - Producer controller managing a reactive state with transactional draft edits.
- BloomElement
- The element managing the lifecycle of the reactive RawComputedTerminal for a BloomWidget.
- BloomGuard
- Represents the decision of a reactive guard evaluation in the Bloom Framework.
- BloomingFunctor
- Callable implementation class for the top-level blooming state creation functor.
- BloomingListFunctor
- Sub-functor managing transactional reactive list state producers (BloomDraftController).
- BloomingMapFunctor
- Sub-functor managing transactional reactive map state producers (BloomDraftController).
- BloomingRawFunctor
- Sub-functor managing unfiltered high-throughput state producers (RawBloomController).
- BloomingSetFunctor
- Sub-functor managing transactional reactive set state producers (BloomDraftController).
- BloomingSignalFunctor
- Sub-functor managing discrete reactive event triggers (BloomSignalController).
-
BloomListener<
T> - A reactive side-effect listener widget bound 1:1 to a single target node passing state directly to action.
- BloomPendingIndicator
- A surgical, non-intrusive pending progress indicator that isolates background re-evaluation signals from the primary UI view tree.
-
BloomProvider<
T> - An InheritedWidget providing a reactive Bloom<T> node to descendant widgets with rebuild wave suppression.
- BloomSignal
- A specialized reactive Bloom node representing a discrete event signal.
- BloomSignalController
- Producer controller handle for emitting discrete reactive signals.
-
BloomSnapshot<
T> - An immutable, atomic container that encapsulates the precise state and data of a Bloom node at a specific point in time.
-
BloomState<
T> - The universal reactive state protocol in the Bloom framework.
- BloomUntracked
- The untracked raw-read accessor interface for the Bloom reactive DAG engine.
- BloomVia
- The scoped dependency tracker interface injected into computed, RawViaTerminal, and reactive widget build callbacks.
- BloomVsyncElement
- The element managing both the reactive RawComputedTerminal and TickerProvider lifecycle for a BloomVsyncWidget.
- BloomVsyncWidget
- A reactive widget that dynamically and explicitly tracks Bloom dependencies while providing an element-managed Flutter TickerProvider for driving animations and tickers without boilerplate.
- BloomWidget
- A reactive widget that dynamically and explicitly tracks all Bloom dependencies declared via BloomVia within build.
- ComposedAnimateFunctor
- Functor class for creating inline reactive widgets bound to a DurableAnimationController.
- ComposedDriveFunctor
- Functor class for creating inline reactive widgets driven by a continuous frame ticker.
- ComposedFunctor
- Functor class for creating inline reactive widgets with surgical micro-rebuilds.
- ComposedVsyncFunctor
- Functor class for creating inline reactive widgets with an element-managed TickerProvider.
-
Computation<
T> - An explicit BloomVia-tracking, class-based component computation base class.
- ComputedFunctor
- Callable functor managing synchronous and asynchronous Bloom computations.
- ComputedFutureFunctor
-
Callable functor managing Future-based asynchronous computations (
computed.future). - ComputedStreamFunctor
-
Callable functor managing Stream-based continuous asynchronous computations (
computed.stream). - DurableAnimationController
- A root controller interface governing animation timelines with state durability, dormancy virtualization, and automatic lifecycle coupling.
- Effect
- A declarative lifecycle-bound side-effect node that executes an untracked action upon upstream mutations.
- EffectDebounceFunctor
- Sub-factory providing declarative debounce rate-limiting Effect creation.
- EffectRunner
- An active standalone execution terminal that imperatively controls the lifecycle of an Effect.
- EffectScope
- An active execution context scope for a scoped Effect run.
- EffectScopedFunctor
- Sub-factory providing declarative Effect creation with scoped lifecycle context (EffectScope).
- EffectThrottleFunctor
- Sub-factory providing declarative throttle rate-limiting Effect creation.
- Graceful
- Represents the graceful deactivation policy for a Bloom node.
- LpdagStatus
- A status interface representing the current lifecycle state of an LPDAG node.
- LpdagUncaughtErrorHandler
- Global handler interface for capturing unhandled LPDAG engine exceptions.
- ManagedFunctor
- Callable functor managing synchronous lifecycle-supervised Bloom resources.
-
RawBloomController<
T> - Raw unfiltered producer controller bypassing distinct checks and supporting manual markDirty.
-
RawBloomTerminal<
T> - A concrete low-level reactive terminal designed specifically for 1:1 Bloom pipelines.
-
RawComputedTerminal<
T> - A reactive terminal that combines dynamic BloomVia dependency tracking with on-demand lazy state resolution, caching, and dirty short-circuiting.
- RawTerminal
- Public contract defining the reactive lifecycle controls of a terminal sink.
-
RawViaTerminal<
T> - A reactive terminal that executes a compute callback with an injected BloomVia explicit dependency manifest handle using Zero-Allocation Epoch Diffing.
- ScopedAnimationController
- An interface representing an animation controller scoped strictly to a presentation widget lifecycle, exposing the Flutter-compatible view and drive.
- SwitchedFunctor
- Callable functor managing dynamic topology switching.
- TestDurableVSync
- A test-only TickerProvider implementation for unit tests and harnesses.
- Tether
- Top-level declarative lifecycle-bound entity in the Bloom reactive DAG.
Enums
- BloomPhase
- The mutually exclusive operational phase of a BloomState.
- DurabilityPolicy
- Timeline durability and state preservation policies across dormant deactivations.
Mixins
- BloomLifecycleAware
- A mixin for computations to intercept and react to downstream lifecycle state changes.
Extension Types
- BloomBuildFunctor
- Zero-cost compile-time functor for BloomFlutterExtension.build.
- BloomDebug
- Zero-cost extension type wrapping Bloom for read-only inspection.
- BloomEffectScope
- Canonical scoped namespace for declarative reactive Effect creation targeting multiple Bloom nodes.
- BloomIterableElements
- A dedicated proxy wrapper for Bloom<Iterable<E>> to perform element-wise transformations safely and defensively.
- BloomKeyedIterableElements
- A dedicated proxy wrapper for Bloom<Iterable<E>> to perform keyed element-wise transformations safely and lazily.
- BloomListElements
- A dedicated proxy wrapper for Bloom<List<E>> to perform list-specific lookup and slicing computations.
- BloomListenFunctor
- Zero-cost compile-time functor for BloomFlutterExtension.listen.
- BloomMapElements
- A dedicated proxy wrapper for Bloom<Map<K, V>> to perform map lookup, mapping, and filtering operations.
- BloomSetElements
- A dedicated proxy wrapper for Bloom<Set<E>> to perform set-specific operations while preserving set immutability.
- UnaryBloomEffectScope
- Specialized scoped namespace for declarative reactive Effect creation targeting a single Bloom.
Extensions
- AnimationStatusBloomExtension on Animation
- A convenience extension bridging Flutter's Animation status updates with the Bloom reactive pipeline.
- BloomBoolGuardExtension on bool
- Zero-cost compile-time extensions converting booleans into BloomGuard decisions.
- BloomBuildContextProviderExtension on BuildContext
- Context-aware reactive lookup extensions on BuildContext for BloomProvider.
-
BloomComputationExtension
on Bloom<
T> - Declarative computation and pipeline transformation operators on Bloom.
-
BloomControllerDebugExtension
on BloomController<
T> - Extension providing zero-overhead debugging capabilities to BloomController producers.
- BloomCouplerDebugExtension on BloomCoupler
- Extension providing zero-overhead debugging capabilities to BloomCoupler dynamic sockets.
-
BloomDebugExtension
on Bloom<
T> - Extension providing zero-overhead debugging capabilities to Bloom reactive nodes.
- BloomEffectExtension on Bloom
- Extension granting a single Bloom node direct access to reactive effect namespaces.
-
BloomFlutterExtension
on Bloom<
T> - Extensions on a single Bloom providing the build and listen functor entry points.
-
BloomIterableBloomExtension
on Bloom<
Iterable< Bloom< >T> > -
Reactive collection operators on a collection of Bloom nodes (
Bloom<Iterable<Bloom<T>>>). -
BloomIterableBloomNumericExtension
on Bloom<
Iterable< Bloom< >T> > - Reactive numeric aggregation extensions on a collection of numeric Bloom nodes.
-
BloomIterableComputationExtension
on Bloom<
Iterable< T> > - Core aggregation extension for Bloom holding any Iterable collection.
-
BloomIterableEffectExtension
on Iterable<
Bloom> - Extension granting collections of Bloom instances access to reactive effect namespaces.
-
BloomIterableElementsExtension
on Bloom<
Iterable< E> > -
Extension on Bloom<Iterable<E>> providing reactive element-wise operations via
.elements. -
BloomKeyedIterableElementsExtension
on Bloom<
Iterable< E> > -
Extension on Bloom<Iterable<E>> providing keyed element-wise transformations via
.keyed. -
BloomListElementsExtension
on Bloom<
List< E> > -
Extension on Bloom<List<E>> providing reactive list-specific index and slicing operations via
.elements. -
BloomListenableExtension
on Bloom<
T> - A convenience extension bridging a reactive Bloom node into Flutter's ValueListenable.
-
BloomMapElementsExtension
on Bloom<
Map< K, V> > -
Extension on Bloom<Map<K, V>> providing reactive map entry transformations and key/value accessors via
.elements. -
BloomProvideExtension
on Bloom<
T> - A convenience extension for converting a Bloom into a BloomProvider.
- BloomRecord2EffectExtension on (Bloom, Bloom)
- Extension granting a 2-tuple of Bloom instances access to reactive effect namespaces.
- BloomRecord3EffectExtension on (Bloom, Bloom, Bloom)
- Extension granting a 3-tuple of Bloom instances access to reactive effect namespaces.
- BloomRecord4EffectExtension on (Bloom, Bloom, Bloom, Bloom)
- Extension granting a 4-tuple of Bloom instances access to reactive effect namespaces.
- BloomRecord5EffectExtension on (Bloom, Bloom, Bloom, Bloom, Bloom)
- Extension granting a 5-tuple of Bloom instances access to reactive effect namespaces.
-
BloomSetElementsExtension
on Bloom<
Set< E> > -
Extension on Bloom<Set<E>> providing reactive set operations (union, intersection, difference) via
.elements. - BloomSignalControllerDebugExtension on BloomSignalController
- Extension providing zero-overhead debugging capabilities to BloomSignalController emitters.
-
BloomStateCollectionExtension
on Iterable<
E> - Convenience inspection and filtering methods on an Iterable of objects implementing BloomState.
-
BloomStateCollectionPayloadExtension
on Iterable<
BloomState< T> > - Convenience data extraction extensions on an Iterable of BloomState entities (such as BloomController, BloomSnapshot, RawBloomTerminal, or Computation).
- BloomStateRecord2Extension on (BloomState, BloomState)
- High-performance multi-state inspection and reactive guard extensions on 2-tuples of BloomState.
- BloomStateRecord3Extension on (BloomState, BloomState, BloomState)
- Zero-cost compile-time extensions on 3-tuples of BloomState.
- BloomStateRecord4Extension on (BloomState, BloomState, BloomState, BloomState)
- Zero-cost compile-time extensions on 4-tuples of BloomState.
- BloomStateRecord5Extension on (BloomState, BloomState, BloomState, BloomState, BloomState)
- Zero-cost compile-time extensions on 5-tuples of BloomState.
- BloomStateRecord6Extension on (BloomState, BloomState, BloomState, BloomState, BloomState, BloomState)
- Zero-cost compile-time extensions on 6-tuples of BloomState.
- BloomStateRecord7Extension on (BloomState, BloomState, BloomState, BloomState, BloomState, BloomState, BloomState)
- Zero-cost compile-time extensions on 7-tuples of BloomState.
- BloomStateRecord8Extension on (BloomState, BloomState, BloomState, BloomState, BloomState, BloomState, BloomState, BloomState)
- Zero-cost compile-time extensions on 8-tuples of BloomState.
- BloomStateRecord9Extension on (BloomState, BloomState, BloomState, BloomState, BloomState, BloomState, BloomState, BloomState, BloomState)
- Zero-cost compile-time extensions on 9-tuples of BloomState.
- BloomTickerProviderDriveExtension on TickerProvider
- Extension providing reactive frame-tick driver capabilities directly on Flutter TickerProvider instances.
- BloomViaContextExtension on BloomVia
- Context-aware reactive observation extensions on BloomVia for BloomProvider.
- ComputationDebugExtension on Computation
- Extension providing zero-overhead debugging capabilities to Computation nodes.
- DurableAnimationControllerObserveExtension on DurableAnimationController
- Convenience extension providing observe directly on DurableAnimationController.
- DurableAnimationTestingExtension on DurableAnimationController
- Lifecycle control extension for DurableAnimationController, exposed strictly for testing harnesses and internal framework bindings.
- EffectDebugExtension on Effect
- Extension providing zero-overhead debugging capabilities specific to declarative Effect nodes.
-
EffectIterableExtension
on Iterable<
Effect> - Extension granting collections of Effect instances direct grouping into a composite Effect.
- EffectRecord2Extension on (Effect, Effect)
- Extension granting a 2-tuple of Effect instances direct grouping into a composite Effect.
- EffectRecord3Extension on (Effect, Effect, Effect)
- Extension granting a 3-tuple of Effect instances direct grouping into a composite Effect.
- EffectRecord4Extension on (Effect, Effect, Effect, Effect)
- Extension granting a 4-tuple of Effect instances direct grouping into a composite Effect.
- EffectRecord5Extension on (Effect, Effect, Effect, Effect, Effect)
- Extension granting a 5-tuple of Effect instances direct grouping into a composite Effect.
- EffectStartExtension on Effect
- Extension granting declarative Effect instances direct invocation of an EffectRunner.
-
FutureBloomExtension
on Future<
T> - Extension bridging Dart's Future with the reactive Bloom pipeline.
-
FutureFactoryBloomExtension
on Future<
T> Function() -
Extension bridging a lazy Future factory (
Future<T> Function()) with the reactive Bloom pipeline. -
FutureFactoryIterableBloomExtension
on Iterable<
Future< T> Function()> - Extension grouping multiple lazy Future factories into a reactive list of Bloom nodes.
-
FutureIterableBloomExtension
on Iterable<
Future< T> > - Extension grouping multiple Futures into a reactive list of Bloom nodes.
- ListenableBloomExtension on L
- A convenience extension bridging Flutter's generic Listenable with the Bloom pipeline via selector extraction.
- RawTerminalDebugExtension on RawTerminal
- Extension providing zero-overhead debugging capabilities to RawTerminal sinks.
-
StreamBloomExtension
on Stream<
T> - Extension bridging Dart's Stream with the reactive Bloom pipeline.
-
StreamFactoryBloomExtension
on Stream<
T> Function() -
Extension bridging a lazy Stream factory (
Stream<T> Function()) with the reactive Bloom pipeline. -
StreamFactoryIterableBloomExtension
on Iterable<
Stream< T> Function()> - Extension grouping multiple lazy Stream factories into a reactive list of Bloom nodes.
-
StreamIterableBloomExtension
on Iterable<
Stream< T> > - Extension grouping multiple Streams into a reactive list of Bloom nodes.
- TetherDebugExtension on T
- Extension providing zero-overhead debugging capabilities to declarative Tether nodes.
-
ValueListenableBloomExtension
on ValueListenable<
T> - A convenience extension bridging Flutter's ValueListenable with the Bloom reactive pipeline.
Constants
- batch → const BatchFunctor
- Top-level transactional batch functor.
- blooming → const BloomingFunctor
- Core declarative state producer instantiation functor for the Bloom reactive DAG engine.
- composed → const ComposedFunctor
- Top-level architectural functor providing surgical inline reactive widget composition.
- computed → const ComputedFunctor
- Core declarative reactive computation functor powered by the 2-Phase Lazy-Pull DAG (LPDAG) engine.
- managed → const ManagedFunctor
- Core declarative lifecycle supervision functor for external synchronous resources.
- switched → const SwitchedFunctor
- Core declarative dynamic branching functor for reactive switching across disjoint subgraphs.
- untracked → const BloomUntracked
- Global untracked accessor singleton.
Typedefs
-
BloomListenerActionCallback<
T> = void Function(BuildContext context, T state) - Signature for reactive side-effect callback receiving BuildContext and current state.
- BloomListenerUncaughtErrorCallback = void Function(BuildContext context, Object error, StackTrace stackTrace)
- Signature for handling uncaught errors in BloomListener.
Exceptions / Errors
- BloomEmptyExtractionException
- Thrown when attempting to extract payload (.data) from an Empty state or snapshot.
- BloomErrorExtractionException
- Thrown when attempting to extract payload (.data) from an Error state or snapshot.
- BloomException
- The base class for all recoverable runtime exceptions in the Bloom state domain.
- BloomSnapshotExtractionException
- Thrown when an attempt is made to extract data from an invalid snapshot state.
- BloomSnapshotStateException
- Thrown when attempting to query error or stack trace metadata from a non-error snapshot.
- LpdagCycleError
- Thrown when a synchronous cyclic evaluation loop is detected during state resolution or pull.
- LpdagReentrancyError
- Thrown when a synchronous cyclic reentrancy loop is detected during dirty propagation.