bloc_test_async 0.1.2 copy "bloc_test_async: ^0.1.2" to clipboard
bloc_test_async: ^0.1.2 copied to clipboard

A bloc extension to test async operations using bloc_test.

example/main.dart

import 'dart:math';

import 'package:bloc/bloc.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:bloc_test_async/bloc_test_async.dart';
import 'package:equatable/equatable.dart';

class RandomDelayEvent {}

sealed class State extends Equatable {
  @override
  List<Object?> get props => [];
}

class Initial extends State {}

class Loading extends State {}

class Success extends State {}

class RandomDelayBloc extends Bloc<RandomDelayEvent, State> {
  RandomDelayBloc() : super(Initial()) {
    completeOn<RandomDelayEvent>((event, emit) async {
      emit(Loading());

      Duration delay = Duration(milliseconds: Random().nextInt(2000));
      await Future.delayed(delay);

      emit(Success());
    });
  }
}

void main() {
  blocTest("RandomDelayBloc",
      build: () => RandomDelayBloc(),
      act: (bloc) async {
        await bloc.addToComplete(RandomDelayEvent());
      },
      expect: () => [Loading(), Success()]);
}
2
likes
140
points
35
downloads

Publisher

unverified uploader

Weekly Downloads

A bloc extension to test async operations using bloc_test.

Repository (GitHub)

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

bloc, bloc_concurrency, equatable, flutter, get_it

More

Packages that depend on bloc_test_async