bloc_signals_test 0.1.4 copy "bloc_signals_test: ^0.1.4" to clipboard
bloc_signals_test: ^0.1.4 copied to clipboard

Declarative unit testing utilities for BlocSignal and CubitSignal.

โšก bloc_signals_test #

"With the rigor of Bloc and the flex and speed of Signal"

Declarative unit testing utilities for bloc_signals and CubitSignal instances.

bloc_signals_test provides blocSignalTest, a declarative helper tailored specifically for synchronous reactive signal state propagation, state de-duplication, and observer isolation.


๐ŸŒ Ecosystem Packages #

Package Purpose Pub.dev Link
bloc_signals Core pure-Dart state containers, event registry, & VM Service telemetry ๐Ÿ“ฆ pub.dev
bloc_signals_flutter Flutter UI widgets (BlocSignalProvider, BlocSignalBuilder, BlocSignalListener, BlocSignalConsumer, BlocSignalSelector) ๐Ÿ“ฆ pub.dev
bloc_signals_riverpod Bidirectional Riverpod interop adapters (toBlocSignal(ref), toProvider()) ๐Ÿ“ฆ pub.dev
bloc_signals_hydrate Persistent state storage (HydratedCubitSignal, HydratedBlocSignal) ๐Ÿ“ฆ pub.dev
bloc_signals_devtools Dedicated Flutter DevTools extension inspector UI ๐Ÿ“ฆ pub.dev
bloc_signals_test Declarative unit testing helpers (blocSignalTest) ๐Ÿ“ฆ pub.dev
bloc_signals_lint Static analysis lints & IDE quick-fixes ๐Ÿ“ฆ pub.dev
bloc_signals_otel OpenTelemetry tracing observers ๐Ÿ“ฆ pub.dev

โšก Key Features #

  • ๐ŸŽฏ Declarative Assertions: Verify emitted states in exact order using expect.
  • โฑ๏ธ Async Support: Await asynchronous event handlers or timers using wait.
  • โญ๏ธ State Skipping: Skip initial emissions using skip.
  • ๐Ÿšจ Error Testing: Verify exceptions caught in onError using errors.
  • ๐Ÿงน Automatic Cleanup: Guarantees observer restoration and bloc.close() post-test.

๐Ÿš€ Getting Started #

Add bloc_signals_test to your pubspec.yaml:

dev_dependencies:
  bloc_signals_test: ^0.1.0
  test: ^1.24.0

๐Ÿ’ก Quick Examples #

1. Cubit Unit Test (blocSignalTest) #

import 'package:bloc_signals_test/bloc_signals_test.dart';
import 'package:test/test.dart';

void main() {
  group('CounterCubit', () {
    blocSignalTest<CounterCubit, int>(
      'emits [1] when increment is called',
      build: CounterCubit.new,
      act: (cubit) => cubit.increment(),
      expect: () => [1],
    );
  });
}

2. Async Event Bloc Test (wait & errors) #

blocSignalTest<DataBloc, DataState>(
  'emits [DataLoading, DataLoaded] when FetchData succeeds',
  build: () => DataBloc(repository: mockRepo),
  act: (bloc) => bloc.add(FetchData()),
  wait: const Duration(milliseconds: 100),
  expect: () => [
    const DataLoading(),
    const DataLoaded('sample_data'),
  ],
);

๐Ÿค– AI Coding Assistant Skill #

This package is supported by an official pre-packaged AI Coding Skill representing unit testing patterns, observer isolation, and synchronous assertion guidelines for BlocSignal.

If you develop with AI coding assistants (such as Claude Code, Antigravity, Gemini, Cursor, or Codex), you can load the bloc-signals skill bundle to guide your assistant's code generation and analysis.


๐Ÿ“œ License #

MIT License. See LICENSE for details.

0
likes
160
points
347
downloads

Documentation

API reference

Publisher

verified publisherstonehenge.com

Weekly Downloads

Declarative unit testing utilities for BlocSignal and CubitSignal.

Repository (GitHub)
View/report issues

Topics

#testing #unit-testing #bloc #signals

License

MIT (license)

Dependencies

bloc_signals, meta, test

More

Packages that depend on bloc_signals_test