Skip to content

Commit 0ca62ee

Browse files
committed
Fix stats tests
1 parent 0b7abb4 commit 0ca62ee

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

bloc_library/lib/blocs/stats/stats_bloc.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class StatsBloc extends Bloc<StatsEvent, StatsState> {
1212
: super(
1313
todosBloc.state is TodosLoaded
1414
? _mapTodosToStats((todosBloc.state as TodosLoaded).todos)
15-
: StatsLoaded(0, 0),
15+
: StatsLoading(),
1616
) {
1717
todosSubscription = todosBloc.stream.listen((state) {
1818
if (state is TodosLoaded) {

bloc_library/test/blocs/stats_bloc_test.dart

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:bloc_library/blocs/todos/todos.dart';
55
import 'package:bloc_library/models/models.dart';
66
import 'package:bloc_test/bloc_test.dart';
77
import 'package:flutter_test/flutter_test.dart';
8+
import 'package:mocktail/mocktail.dart';
89

910
class MockTodosBloc extends MockBloc<TodosEvent, TodosState>
1011
implements TodosBloc {}
@@ -13,45 +14,50 @@ void main() {
1314
group('StatsBloc', () {
1415
final todo1 = Todo('Hallo');
1516
final todo2 = Todo('Hallo2', complete: true);
16-
late TodosBloc todosBloc;
17-
late StatsBloc statsBloc;
18-
19-
setUp(() {
20-
todosBloc = MockTodosBloc();
21-
statsBloc = StatsBloc(todosBloc: todosBloc);
22-
});
2317

2418
blocTest<StatsBloc, StatsState>(
2519
'should update the stats properly when TodosBloc emits TodosLoaded',
2620
build: () {
27-
todosBloc = MockTodosBloc();
21+
final todosBloc = MockTodosBloc();
22+
when(() => todosBloc.state).thenReturn(TodosLoading());
2823
whenListen(
2924
todosBloc,
3025
Stream<TodosState>.fromIterable([TodosLoaded([])]),
3126
);
3227
return StatsBloc(todosBloc: todosBloc);
3328
},
34-
act: (StatsBloc bloc) async => bloc.add(UpdateStats([])),
3529
expect: () => [StatsLoaded(0, 0)],
3630
);
3731

3832
blocTest<StatsBloc, StatsState>(
3933
'should update the stats properly when Todos are empty',
40-
build: () => statsBloc,
34+
build: () {
35+
final todosBloc = MockTodosBloc();
36+
when(() => todosBloc.state).thenReturn(TodosLoading());
37+
return StatsBloc(todosBloc: todosBloc);
38+
},
4139
act: (StatsBloc bloc) async => bloc.add(UpdateStats([])),
4240
expect: () => [StatsLoaded(0, 0)],
4341
);
4442

4543
blocTest<StatsBloc, StatsState>(
4644
'should update the stats properly when Todos contains one active todo',
47-
build: () => statsBloc,
45+
build: () {
46+
final todosBloc = MockTodosBloc();
47+
when(() => todosBloc.state).thenReturn(TodosLoading());
48+
return StatsBloc(todosBloc: todosBloc);
49+
},
4850
act: (StatsBloc bloc) async => bloc.add(UpdateStats([todo1])),
4951
expect: () => [StatsLoaded(1, 0)],
5052
);
5153

5254
blocTest<StatsBloc, StatsState>(
5355
'should update the stats properly when Todos contains one active todo and one completed todo',
54-
build: () => statsBloc,
56+
build: () {
57+
final todosBloc = MockTodosBloc();
58+
when(() => todosBloc.state).thenReturn(TodosLoading());
59+
return StatsBloc(todosBloc: todosBloc);
60+
},
5561
act: (StatsBloc bloc) async => bloc.add(UpdateStats([todo1, todo2])),
5662
expect: () => [StatsLoaded(1, 1)],
5763
);

0 commit comments

Comments
 (0)