Skip to content

Commit

Permalink
refactor!: cubit extends bloc (#2044)
Browse files Browse the repository at this point in the history
* docs: fix typo in fluttertodostutorial.md (#2036)

* ci: update docs workflow to use create-an-issue@v2

* refactor!: cubit extends bloc

* feat(bloc_test): bloc-base refactor

* refactor: update imports

* revert: bloc_test changes

* refactor: simplify controller initialization and getters

* refactor!(bloc_test): null safety (#2067)

* refactor!(bloc_test): null safety

* ci: use Dart 2.12

* chore: fix tests and bump to mocktail 0.0.1-dev.7

* refactor(bloc_test): minor improvements and documentation updates

* refactor: remove redundant _observer

Co-authored-by: Cervon Wong <[email protected]>
  • Loading branch information
felangel and cervonwong committed Jan 31, 2021
1 parent 65834c9 commit 3c3ad4a
Show file tree
Hide file tree
Showing 58 changed files with 657 additions and 1,383 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/bloc_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
working-directory: packages/bloc_test
runs-on: ubuntu-latest
container:
image: google/dart:2.10.0
image: google/dart:2.12-dev
steps:
- uses: actions/checkout@v2
- name: Install Dependencies
Expand All @@ -30,7 +30,7 @@ jobs:
- name: Run tests
run: dart test --coverage=coverage && pub run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --packages=.packages --report-on=lib
- name: Check Code Coverage
uses: ChicagoFlutter/lcov-cop@v1.0.0
uses: VeryGoodOpenSource/very_good_coverage@v1.1.1
with:
path: packages/bloc_test/coverage/lcov.info
- name: Upload coverage to Codecov
Expand Down
10 changes: 5 additions & 5 deletions examples/flutter_complex_list/lib/simple_bloc_observer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ import 'package:bloc/bloc.dart';

class SimpleBlocObserver extends BlocObserver {
@override
void onError(Cubit cubit, Object error, StackTrace stackTrace) {
void onError(Bloc bloc, Object error, StackTrace stackTrace) {
print(error);
super.onError(cubit, error, stackTrace);
super.onError(bloc, error, stackTrace);
}

@override
void onChange(Cubit cubit, Change change) {
print(change);
super.onChange(cubit, change);
void onTransition(Bloc bloc, Transition transition) {
print(transition);
super.onTransition(bloc, transition);
}
}
6 changes: 6 additions & 0 deletions examples/flutter_complex_list/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ dependencies:
equatable: ^2.0.0-nullsafety.0
pedantic: ^1.10.0-nullsafety.3

dependency_overrides:
bloc:
path: ../../packages/bloc
flutter_bloc:
path: ../../packages/flutter_bloc

flutter:
uses-material-design: true
8 changes: 4 additions & 4 deletions examples/flutter_counter/lib/counter_observer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import 'package:bloc/bloc.dart';

/// {@template counter_observer}
/// [BlocObserver] for the counter application which
/// observes all [Cubit] state changes.
/// observes all [Bloc] state changes.
/// {@endtemplate}
class CounterObserver extends BlocObserver {
@override
void onChange(Cubit cubit, Change change) {
print('${cubit.runtimeType} $change');
super.onChange(cubit, change);
void onTransition(Bloc bloc, Transition transition) {
print('${bloc.runtimeType} $transition');
super.onTransition(bloc, transition);
}
}
4 changes: 3 additions & 1 deletion examples/flutter_counter/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ dependency_overrides:
path: ../../packages/bloc
flutter_bloc:
path: ../../packages/flutter_bloc
bloc_test:
path: ../../packages/bloc_test

dev_dependencies:
flutter_test:
sdk: flutter
bloc_test: ^7.1.0
mockito: ^4.0.0
mocktail: ">=0.0.1-dev.7 <0.1.0"
integration_test: ^1.0.0

flutter:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// ignore: import_of_legacy_library_into_null_safe
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter_counter/counter/counter.dart';
import 'package:flutter_test/flutter_test.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
// ignore: import_of_legacy_library_into_null_safe
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_counter/counter/counter.dart';
import 'package:flutter_counter/counter/view/counter_view.dart';
import 'package:flutter_test/flutter_test.dart';
// ignore: import_of_legacy_library_into_null_safe
import 'package:mockito/mockito.dart';
import 'package:mocktail/mocktail.dart';

class MockCounterCubit extends MockBloc<int> implements CounterCubit {}
class MockCounterCubit extends MockCubit<int> implements CounterCubit {}

const _incrementButtonKey = Key('counterView_increment_floatingActionButton');
const _decrementButtonKey = Key('counterView_decrement_floatingActionButton');
Expand All @@ -18,13 +16,15 @@ void main() {

setUp(() {
counterCubit = MockCounterCubit();
when(counterCubit.state).thenReturn(0);
when(counterCubit).calls(#state).thenReturn(0);
when(counterCubit).calls(#increment).thenReturn(() {});
when(counterCubit).calls(#decrement).thenReturn(() {});
whenListen(counterCubit, Stream.value(0));
});

group('CounterView', () {
testWidgets('renders current CounterCubit state', (tester) async {
when(counterCubit.state).thenReturn(42);
when(counterCubit).calls(#state).thenReturn(42);
await tester.pumpWidget(
MaterialApp(
home: BlocProvider.value(
Expand All @@ -46,7 +46,7 @@ void main() {
),
);
await tester.tap(find.byKey(_incrementButtonKey));
verify(counterCubit.increment()).called(1);
verify(counterCubit).called(#increment).once();
});

testWidgets('tapping decrement button invokes decrement', (tester) async {
Expand All @@ -61,7 +61,7 @@ void main() {
final decrementFinder = find.byKey(_decrementButtonKey);
await tester.ensureVisible(decrementFinder);
await tester.tap(decrementFinder);
verify(counterCubit.decrement()).called(1);
verify(counterCubit).called(#decrement).once();
});
});
}
6 changes: 3 additions & 3 deletions examples/flutter_shopping_cart/lib/simple_bloc_observer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ class SimpleBlocObserver extends BlocObserver {
}

@override
void onError(Cubit cubit, Object error, StackTrace stackTrace) {
print('${cubit.runtimeType} $error');
super.onError(cubit, error, stackTrace);
void onError(Bloc bloc, Object error, StackTrace stackTrace) {
print('${bloc.runtimeType} $error');
super.onError(bloc, error, stackTrace);
}

@override
Expand Down
4 changes: 2 additions & 2 deletions examples/flutter_todos/lib/blocs/simple_bloc_observer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ class SimpleBlocObserver extends BlocObserver {
}

@override
void onError(Cubit cubit, Object error, StackTrace stackTrace) {
void onError(Bloc bloc, Object error, StackTrace stackTrace) {
print(error);
super.onError(cubit, error, stackTrace);
super.onError(bloc, error, stackTrace);
}
}
24 changes: 9 additions & 15 deletions packages/bloc/example/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import 'package:bloc/bloc.dart';

class SimpleBlocObserver extends BlocObserver {
@override
void onCreate(Cubit cubit) {
super.onCreate(cubit);
print('onCreate -- cubit: ${cubit.runtimeType}');
void onCreate(Bloc bloc) {
super.onCreate(bloc);
print('onCreate -- bloc: ${bloc.runtimeType}');
}

@override
Expand All @@ -15,28 +15,22 @@ class SimpleBlocObserver extends BlocObserver {
print('onEvent -- bloc: ${bloc.runtimeType}, event: $event');
}

@override
void onChange(Cubit cubit, Change change) {
super.onChange(cubit, change);
print('onChange -- cubit: ${cubit.runtimeType}, change: $change');
}

@override
void onTransition(Bloc bloc, Transition transition) {
super.onTransition(bloc, transition);
print('onTransition -- bloc: ${bloc.runtimeType}, transition: $transition');
}

@override
void onError(Cubit cubit, Object error, StackTrace stackTrace) {
print('onError -- cubit: ${cubit.runtimeType}, error: $error');
super.onError(cubit, error, stackTrace);
void onError(Bloc bloc, Object error, StackTrace stackTrace) {
print('onError -- bloc: ${bloc.runtimeType}, error: $error');
super.onError(bloc, error, stackTrace);
}

@override
void onClose(Cubit cubit) {
super.onClose(cubit);
print('onClose -- cubit: ${cubit.runtimeType}');
void onClose(Bloc bloc) {
super.onClose(bloc);
print('onClose -- bloc: ${bloc.runtimeType}');
}
}

Expand Down
2 changes: 0 additions & 2 deletions packages/bloc/lib/bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,4 @@ library bloc;

export './src/bloc.dart';
export './src/bloc_observer.dart';
export './src/change.dart';
export './src/cubit.dart';
export './src/transition.dart';
Loading

0 comments on commit 3c3ad4a

Please sign in to comment.