mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: add board test (#1363)
This commit is contained in:
parent
1e6c4a4d88
commit
586c20a14e
@ -24,7 +24,8 @@ class BoardBloc extends Bloc<BoardEvent, BoardState> {
|
||||
final BoardDataController _gridDataController;
|
||||
late final AppFlowyBoardController boardController;
|
||||
final MoveRowFFIService _rowService;
|
||||
LinkedHashMap<String, GroupController> groupControllers = LinkedHashMap();
|
||||
final LinkedHashMap<String, GroupController> groupControllers =
|
||||
LinkedHashMap();
|
||||
|
||||
GridFieldController get fieldController =>
|
||||
_gridDataController.fieldController;
|
||||
|
@ -0,0 +1,44 @@
|
||||
import 'package:app_flowy/plugins/board/application/board_bloc.dart';
|
||||
import 'package:bloc_test/bloc_test.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'util.dart';
|
||||
|
||||
void main() {
|
||||
late AppFlowyBoardTest boardTest;
|
||||
|
||||
setUpAll(() async {
|
||||
boardTest = await AppFlowyBoardTest.ensureInitialized();
|
||||
});
|
||||
|
||||
group('description', () {
|
||||
late BoardBloc boardBloc;
|
||||
late String groupId;
|
||||
|
||||
setUp(() async {
|
||||
await boardTest.createTestBoard();
|
||||
boardBloc = BoardBloc(view: boardTest.boardView)
|
||||
..add(const BoardEvent.initial());
|
||||
await boardResponseFuture();
|
||||
groupId = boardBloc.state.groupIds.first;
|
||||
|
||||
// the group at index 0 is the 'No status' group;
|
||||
assert(boardBloc.groupControllers[groupId]!.group.rows.isEmpty);
|
||||
assert(boardBloc.state.groupIds.length == 4);
|
||||
});
|
||||
|
||||
blocTest<BoardBloc, BoardState>(
|
||||
"create card",
|
||||
build: () => boardBloc,
|
||||
act: (bloc) async {
|
||||
boardBloc.add(BoardEvent.createBottomRow(boardBloc.state.groupIds[0]));
|
||||
},
|
||||
wait: boardResponseDuration(),
|
||||
verify: (bloc) {
|
||||
//
|
||||
|
||||
assert(bloc.groupControllers[groupId]!.group.rows.length == 1);
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
42
frontend/app_flowy/test/bloc_test/board_test/util.dart
Normal file
42
frontend/app_flowy/test/bloc_test/board_test/util.dart
Normal file
@ -0,0 +1,42 @@
|
||||
import 'package:app_flowy/plugins/board/board.dart';
|
||||
import 'package:app_flowy/workspace/application/app/app_service.dart';
|
||||
import 'package:flowy_sdk/protobuf/flowy-folder/view.pb.dart';
|
||||
|
||||
import '../../util.dart';
|
||||
|
||||
class AppFlowyBoardTest {
|
||||
final AppFlowyUnitTest _inner;
|
||||
late ViewPB boardView;
|
||||
AppFlowyBoardTest(AppFlowyUnitTest unitTest) : _inner = unitTest;
|
||||
|
||||
static Future<AppFlowyBoardTest> ensureInitialized() async {
|
||||
final inner = await AppFlowyUnitTest.ensureInitialized();
|
||||
return AppFlowyBoardTest(inner);
|
||||
}
|
||||
|
||||
Future<void> createTestBoard() async {
|
||||
final app = await _inner.createTestApp();
|
||||
final builder = BoardPluginBuilder();
|
||||
final result = await AppService().createView(
|
||||
appId: app.id,
|
||||
name: "Test Board",
|
||||
dataFormatType: builder.dataFormatType,
|
||||
pluginType: builder.pluginType,
|
||||
layoutType: builder.layoutType!,
|
||||
);
|
||||
await result.fold(
|
||||
(view) async {
|
||||
boardView = view;
|
||||
},
|
||||
(error) {},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> boardResponseFuture() {
|
||||
return Future.delayed(boardResponseDuration(milliseconds: 200));
|
||||
}
|
||||
|
||||
Duration boardResponseDuration({int milliseconds = 200}) {
|
||||
return Duration(milliseconds: milliseconds);
|
||||
}
|
Loading…
Reference in New Issue
Block a user