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.