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;
|
final BoardDataController _gridDataController;
|
||||||
late final AppFlowyBoardController boardController;
|
late final AppFlowyBoardController boardController;
|
||||||
final MoveRowFFIService _rowService;
|
final MoveRowFFIService _rowService;
|
||||||
LinkedHashMap<String, GroupController> groupControllers = LinkedHashMap();
|
final LinkedHashMap<String, GroupController> groupControllers =
|
||||||
|
LinkedHashMap();
|
||||||
|
|
||||||
GridFieldController get fieldController =>
|
GridFieldController get fieldController =>
|
||||||
_gridDataController.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…
x
Reference in New Issue
Block a user