diff --git a/.github/workflows/mobile_ci.yaml b/.github/workflows/mobile_ci.yaml index b6892f9c83d5b..b9ed2889b765b 100644 --- a/.github/workflows/mobile_ci.yaml +++ b/.github/workflows/mobile_ci.yaml @@ -29,12 +29,9 @@ jobs: build: if: github.event.pull_request.draft != true strategy: - fail-fast: false + fail-fast: true matrix: - os: [ubuntu-latest] - include: - - os: ubuntu-latest - target: aarch64-linux-android + os: [macos-latest] runs-on: ${{ matrix.os }} steps: @@ -55,7 +52,7 @@ jobs: uses: actions-rs/toolchain@v1 with: toolchain: ${{ env.RUST_TOOLCHAIN }} - target: ${{ matrix.target }} + target: aarch64-linux-android override: true profile: minimal @@ -75,7 +72,7 @@ jobs: - uses: gradle/gradle-build-action@v2 with: - gradle-version: 7.6.3 + gradle-version: 7.4.2 - uses: Swatinem/rust-cache@v2 with: @@ -115,3 +112,13 @@ jobs: ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} run: | cargo make --profile development-android appflowy-android-dev-ci + + - name: Run integration tests + # https://github.com/ReactiveCircus/android-emulator-runner + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 29 + arch: arm64-v8a + profile: Pixel 6 + working-directory: frontend/appflowy_flutter + script: flutter test integration_test/runner.dart diff --git a/frontend/appflowy_flutter/integration_test/appearance_settings_test.dart b/frontend/appflowy_flutter/integration_test/desktop/appearance_settings_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/appearance_settings_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/appearance_settings_test.dart index 4d01a07ab9027..b0ed538e314db 100644 --- a/frontend/appflowy_flutter/integration_test/appearance_settings_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/appearance_settings_test.dart @@ -5,7 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import 'util/util.dart'; +import '../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/board/board_add_row_test.dart b/frontend/appflowy_flutter/integration_test/desktop/board/board_add_row_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/board/board_add_row_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/board/board_add_row_test.dart index e6e098f0009af..4e62756405b68 100644 --- a/frontend/appflowy_flutter/integration_test/board/board_add_row_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/board/board_add_row_test.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; const defaultFirstCardName = 'Card 1'; const defaultLastCardName = 'Card 3'; diff --git a/frontend/appflowy_flutter/integration_test/board/board_group_test.dart b/frontend/appflowy_flutter/integration_test/desktop/board/board_group_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/board/board_group_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/board/board_group_test.dart index 1ee1778e9c8e8..4eedee4da5b29 100644 --- a/frontend/appflowy_flutter/integration_test/board/board_group_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/board/board_group_test.dart @@ -6,7 +6,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:appflowy_board/appflowy_board.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/board/board_hide_groups_test.dart b/frontend/appflowy_flutter/integration_test/desktop/board/board_hide_groups_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/board/board_hide_groups_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/board/board_hide_groups_test.dart index 0271a2b5594cb..b0550ba449d8d 100644 --- a/frontend/appflowy_flutter/integration_test/board/board_hide_groups_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/board/board_hide_groups_test.dart @@ -7,8 +7,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/board/board_row_test.dart b/frontend/appflowy_flutter/integration_test/desktop/board/board_row_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/board/board_row_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/board/board_row_test.dart index fae4e53482b45..f758156488e9b 100644 --- a/frontend/appflowy_flutter/integration_test/board/board_row_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/board/board_row_test.dart @@ -7,8 +7,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; -import '../util/database_test_op.dart'; +import '../../util/util.dart'; +import '../../util/database_test_op.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/board/board_test_runner.dart b/frontend/appflowy_flutter/integration_test/desktop/board/board_test_runner.dart similarity index 100% rename from frontend/appflowy_flutter/integration_test/board/board_test_runner.dart rename to frontend/appflowy_flutter/integration_test/desktop/board/board_test_runner.dart diff --git a/frontend/appflowy_flutter/integration_test/board_test.dart b/frontend/appflowy_flutter/integration_test/desktop/board_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/board_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/board_test.dart index a5d329515dfe5..16ad835e7ca19 100644 --- a/frontend/appflowy_flutter/integration_test/board_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/board_test.dart @@ -1,7 +1,8 @@ import 'package:appflowy_board/appflowy_board.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import 'util/util.dart'; + +import '../util/util.dart'; /// Integration tests for an empty board. The [TestWorkspaceService] will load /// a workspace from an empty board `assets/test/workspaces/board.zip` for all diff --git a/frontend/appflowy_flutter/integration_test/cloud/anon_user_continue_test.dart b/frontend/appflowy_flutter/integration_test/desktop/cloud/anon_user_continue_test.dart similarity index 95% rename from frontend/appflowy_flutter/integration_test/cloud/anon_user_continue_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/cloud/anon_user_continue_test.dart index 4d72154053016..2b8049d71b121 100644 --- a/frontend/appflowy_flutter/integration_test/cloud/anon_user_continue_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/cloud/anon_user_continue_test.dart @@ -16,9 +16,9 @@ import 'package:flowy_infra/uuid.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:path/path.dart' as p; import 'package:integration_test/integration_test.dart'; -import '../util/dir.dart'; -import '../util/mock/mock_file_picker.dart'; -import '../util/util.dart'; +import '../../util/dir.dart'; +import '../../util/mock/mock_file_picker.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/cloud/appflowy_cloud_auth_test.dart b/frontend/appflowy_flutter/integration_test/desktop/cloud/appflowy_cloud_auth_test.dart similarity index 95% rename from frontend/appflowy_flutter/integration_test/cloud/appflowy_cloud_auth_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/cloud/appflowy_cloud_auth_test.dart index 11a09b2b4787e..fbded754bab85 100644 --- a/frontend/appflowy_flutter/integration_test/cloud/appflowy_cloud_auth_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/cloud/appflowy_cloud_auth_test.dart @@ -11,10 +11,11 @@ import 'package:appflowy/workspace/presentation/settings/widgets/settings_user_v import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra/uuid.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:path/path.dart' as p; import 'package:integration_test/integration_test.dart'; -import '../util/mock/mock_file_picker.dart'; -import '../util/util.dart'; +import 'package:path/path.dart' as p; + +import '../../util/mock/mock_file_picker.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); @@ -47,13 +48,13 @@ void main() { tester.expectToSeeGoogleLoginButton(); }); - testWidgets('sign in as annoymous', (tester) async { + testWidgets('sign in as anonymous', (tester) async { await tester.initializeAppFlowy( cloudType: AuthenticatorType.appflowyCloudSelfHost, ); await tester.tapSignInAsGuest(); - // should not see the sync setting page when sign in as annoymous + // should not see the sync setting page when sign in as anonymous await tester.openSettings(); await tester.openSettingsPage(SettingsPage.user); tester.expectToSeeGoogleLoginButton(); diff --git a/frontend/appflowy_flutter/integration_test/cloud/cloud_runner.dart b/frontend/appflowy_flutter/integration_test/desktop/cloud/cloud_runner.dart similarity index 100% rename from frontend/appflowy_flutter/integration_test/cloud/cloud_runner.dart rename to frontend/appflowy_flutter/integration_test/desktop/cloud/cloud_runner.dart diff --git a/frontend/appflowy_flutter/integration_test/cloud/document_sync_test.dart b/frontend/appflowy_flutter/integration_test/desktop/cloud/document_sync_test.dart similarity index 96% rename from frontend/appflowy_flutter/integration_test/cloud/document_sync_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/cloud/document_sync_test.dart index 5ad38e49e2761..fe344570d847c 100644 --- a/frontend/appflowy_flutter/integration_test/cloud/document_sync_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/cloud/document_sync_test.dart @@ -16,9 +16,9 @@ import 'package:flowy_infra/uuid.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:path/path.dart' as p; import 'package:integration_test/integration_test.dart'; -import '../util/dir.dart'; -import '../util/mock/mock_file_picker.dart'; -import '../util/util.dart'; +import '../../util/dir.dart'; +import '../../util/mock/mock_file_picker.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/cloud/empty_test.dart b/frontend/appflowy_flutter/integration_test/desktop/cloud/empty_test.dart similarity index 94% rename from frontend/appflowy_flutter/integration_test/cloud/empty_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/cloud/empty_test.dart index 0ec336ae5120b..3a7b2beb8e276 100644 --- a/frontend/appflowy_flutter/integration_test/cloud/empty_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/cloud/empty_test.dart @@ -2,7 +2,7 @@ import 'package:appflowy/env/cloud_env.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; // This test is meaningless, just for preventing the CI from failing. void main() { diff --git a/frontend/appflowy_flutter/integration_test/cloud/supabase_auth_test.dart b/frontend/appflowy_flutter/integration_test/desktop/cloud/supabase_auth_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/cloud/supabase_auth_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/cloud/supabase_auth_test.dart index 2a3b0bd3f8b77..1c31f7ea0799c 100644 --- a/frontend/appflowy_flutter/integration_test/cloud/supabase_auth_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/cloud/supabase_auth_test.dart @@ -6,7 +6,8 @@ import 'package:appflowy/workspace/presentation/settings/widgets/settings_user_v import 'package:easy_localization/easy_localization.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; + +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); @@ -35,11 +36,11 @@ void main() { tester.expectToSeeGoogleLoginButton(); }); - testWidgets('sign in as annoymous', (tester) async { + testWidgets('sign in as anonymous', (tester) async { await tester.initializeAppFlowy(cloudType: AuthenticatorType.supabase); await tester.tapSignInAsGuest(); - // should not see the sync setting page when sign in as annoymous + // should not see the sync setting page when sign in as anonymous await tester.openSettings(); await tester.openSettingsPage(SettingsPage.user); tester.expectToSeeGoogleLoginButton(); diff --git a/frontend/appflowy_flutter/integration_test/cloud/user_setting_sync_test.dart b/frontend/appflowy_flutter/integration_test/desktop/cloud/user_setting_sync_test.dart similarity index 95% rename from frontend/appflowy_flutter/integration_test/cloud/user_setting_sync_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/cloud/user_setting_sync_test.dart index 8cb2386c66b79..4d3fb55d8cb2a 100644 --- a/frontend/appflowy_flutter/integration_test/cloud/user_setting_sync_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/cloud/user_setting_sync_test.dart @@ -18,11 +18,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:path/path.dart' as p; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; -import '../util/dir.dart'; -import '../util/emoji.dart'; -import '../util/mock/mock_file_picker.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/dir.dart'; +import '../../util/emoji.dart'; +import '../../util/mock/mock_file_picker.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_calendar_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_calendar_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/database/database_calendar_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_calendar_test.dart index f8829837126cb..545110438a652 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_calendar_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_calendar_test.dart @@ -3,8 +3,8 @@ import 'package:appflowy_backend/protobuf/flowy-folder/view.pbenum.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_cell_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_cell_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/database/database_cell_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_cell_test.dart index d98e063bccd9e..4b1c59cce9ad5 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_cell_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_cell_test.dart @@ -4,8 +4,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:intl/intl.dart'; -import '../util/database_test_op.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_field_settings_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_field_settings_test.dart similarity index 96% rename from frontend/appflowy_flutter/integration_test/database/database_field_settings_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_field_settings_test.dart index 1dc39838a5120..049348f46ad6c 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_field_settings_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_field_settings_test.dart @@ -4,8 +4,8 @@ import 'package:appflowy_backend/protobuf/flowy-folder/view.pbenum.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_field_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_field_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/database/database_field_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_field_test.dart index 48da2f5de5fb9..3d8b5a8ca6304 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_field_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_field_test.dart @@ -8,8 +8,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:intl/intl.dart'; -import '../util/database_test_op.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_filter_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_filter_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/database/database_filter_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_filter_test.dart index c1c52bb23d7fa..de57a83fe9878 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_filter_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_filter_test.dart @@ -4,7 +4,7 @@ import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pbenum. import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; +import '../../util/database_test_op.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_reminder_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_reminder_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/database/database_reminder_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_reminder_test.dart index 4fdfec6cbf165..fad9b4939034d 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_reminder_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_reminder_test.dart @@ -5,8 +5,8 @@ import 'package:appflowy_backend/protobuf/flowy-folder/protobuf.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_row_page_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_row_page_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/database/database_row_page_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_row_page_test.dart index 6bc5da5c5f203..4559d1fe559ef 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_row_page_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_row_page_test.dart @@ -7,9 +7,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; -import '../util/emoji.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/emoji.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_row_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_row_test.dart similarity index 96% rename from frontend/appflowy_flutter/integration_test/database/database_row_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_row_test.dart index 61d90e72a9524..f128b59197b80 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_row_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_row_test.dart @@ -2,8 +2,8 @@ import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_setting_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_setting_test.dart similarity index 95% rename from frontend/appflowy_flutter/integration_test/database/database_setting_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_setting_test.dart index caa5791e4c5ba..5f84afabb70bb 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_setting_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_setting_test.dart @@ -3,8 +3,8 @@ import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_share_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_share_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/database/database_share_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_share_test.dart index 51ede619303d9..c028c257124ec 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_share_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_share_test.dart @@ -2,7 +2,7 @@ import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pbenum. import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; +import '../../util/database_test_op.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_sort_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_sort_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/database/database_sort_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_sort_test.dart index 633f77a3ef1f0..04c5deea8244f 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_sort_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_sort_test.dart @@ -2,7 +2,7 @@ import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pbenum. import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; +import '../../util/database_test_op.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/database/database_view_test.dart b/frontend/appflowy_flutter/integration_test/desktop/database/database_view_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/database/database_view_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/database/database_view_test.dart index 1a2e1017635dc..bdc3d4bfb5ba9 100644 --- a/frontend/appflowy_flutter/integration_test/database/database_view_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/database/database_view_test.dart @@ -3,8 +3,8 @@ import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/database_test_op.dart'; -import '../util/util.dart'; +import '../../util/database_test_op.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_alignment_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_alignment_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/document/document_alignment_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_alignment_test.dart index 2bf621dda08ca..526a82d2af515 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_alignment_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_alignment_test.dart @@ -5,8 +5,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/keyboard.dart'; -import '../util/util.dart'; +import '../../util/keyboard.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_codeblock_paste_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_codeblock_paste_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/document/document_codeblock_paste_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_codeblock_paste_test.dart index 3ebe0069611d8..4e846413e5c4e 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_codeblock_paste_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_codeblock_paste_test.dart @@ -7,7 +7,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_copy_and_paste_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_copy_and_paste_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/document/document_copy_and_paste_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_copy_and_paste_test.dart index aab5f41b5b813..777e5ae2fdb77 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_copy_and_paste_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_copy_and_paste_test.dart @@ -8,7 +8,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_create_and_delete_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_create_and_delete_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/document/document_create_and_delete_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_create_and_delete_test.dart index d0939d955760e..4adb633b62c2d 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_create_and_delete_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_create_and_delete_test.dart @@ -4,7 +4,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_inline_page_reference_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_inline_page_reference_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/document/document_inline_page_reference_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_inline_page_reference_test.dart index 7104e7e7bc4f4..91cebd527aaf1 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_inline_page_reference_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_inline_page_reference_test.dart @@ -1,14 +1,13 @@ -import 'package:flutter/services.dart'; - import 'package:appflowy/plugins/document/presentation/editor_plugins/mention/mention_page_block.dart'; import 'package:appflowy/plugins/inline_actions/widgets/inline_actions_handler.dart'; import 'package:appflowy/workspace/presentation/home/menu/view/view_item.dart'; import 'package:flowy_infra/uuid.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/keyboard.dart'; -import '../util/util.dart'; +import '../../util/keyboard.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_option_action_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_option_action_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/document/document_option_action_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_option_action_test.dart index da09508936b4a..59004eacaa49b 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_option_action_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_option_action_test.dart @@ -1,7 +1,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_test_runner.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_test_runner.dart similarity index 100% rename from frontend/appflowy_flutter/integration_test/document/document_test_runner.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_test_runner.dart diff --git a/frontend/appflowy_flutter/integration_test/document/document_text_direction_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_text_direction_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/document/document_text_direction_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_text_direction_test.dart index 3ab2bd2f6e49f..eb087d44633af 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_text_direction_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_text_direction_test.dart @@ -3,7 +3,7 @@ import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_cover_image_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_cover_image_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/document/document_with_cover_image_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_cover_image_test.dart index 5c8f4cf184dd4..e3b00e009c2b9 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_cover_image_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_cover_image_test.dart @@ -7,8 +7,8 @@ import 'package:flutter_emoji_mart/flutter_emoji_mart.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/emoji.dart'; -import '../util/util.dart'; +import '../../util/emoji.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_database_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_database_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/document/document_with_database_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_database_test.dart index 6f4fe79d4c312..2d68a1ed4ef3a 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_database_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_database_test.dart @@ -1,9 +1,9 @@ import 'package:appflowy/generated/locale_keys.g.dart'; -import 'package:appflowy/plugins/database/widgets/cell/editable_cell_skeleton/text.dart'; -import 'package:appflowy/plugins/inline_actions/widgets/inline_actions_handler.dart'; import 'package:appflowy/plugins/database/board/presentation/board_page.dart'; import 'package:appflowy/plugins/database/calendar/presentation/calendar_page.dart'; import 'package:appflowy/plugins/database/grid/presentation/grid_page.dart'; +import 'package:appflowy/plugins/database/widgets/cell/editable_cell_skeleton/text.dart'; +import 'package:appflowy/plugins/inline_actions/widgets/inline_actions_handler.dart'; import 'package:appflowy/workspace/presentation/home/menu/view/view_item.dart'; import 'package:appflowy_backend/protobuf/flowy-folder/protobuf.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; @@ -12,7 +12,7 @@ import 'package:flowy_infra/uuid.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_image_block_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_image_block_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/document/document_with_image_block_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_image_block_test.dart index f3dbf3948e26b..159029259baba 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_image_block_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_image_block_test.dart @@ -22,8 +22,8 @@ import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; import 'package:run_with_network_images/run_with_network_images.dart'; -import '../util/mock/mock_file_picker.dart'; -import '../util/util.dart'; +import '../../util/mock/mock_file_picker.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_inline_math_equation_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_math_equation_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/document/document_with_inline_math_equation_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_math_equation_test.dart index c1a7fef0631ab..63cb9d9cc08fa 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_inline_math_equation_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_math_equation_test.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_inline_math_equation_test_1.png b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_math_equation_test_1.png similarity index 100% rename from frontend/appflowy_flutter/integration_test/document/document_with_inline_math_equation_test_1.png rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_math_equation_test_1.png diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_inline_math_equation_test_2.png b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_math_equation_test_2.png similarity index 100% rename from frontend/appflowy_flutter/integration_test/document/document_with_inline_math_equation_test_2.png rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_math_equation_test_2.png diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_inline_page_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_page_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/document/document_with_inline_page_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_page_test.dart index 414ffa250d27d..375a44dff85ba 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_inline_page_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_inline_page_test.dart @@ -5,7 +5,7 @@ import 'package:flowy_infra_ui/widget/error_page.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_link_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_link_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/document/document_with_link_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_link_test.dart index 400d1306669f9..abe342e5825a9 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_link_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_link_test.dart @@ -5,7 +5,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_outline_block_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_outline_block_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/document/document_with_outline_block_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_outline_block_test.dart index 6f8e027b6222f..43a00cd0e23ca 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_outline_block_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_outline_block_test.dart @@ -4,7 +4,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_toggle_list_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_toggle_list_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/document/document_with_toggle_list_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/document_with_toggle_list_test.dart index e6ce6baff11f5..232ed6becf65a 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_toggle_list_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/document_with_toggle_list_test.dart @@ -7,7 +7,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/edit_document_test.dart b/frontend/appflowy_flutter/integration_test/desktop/document/edit_document_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/document/edit_document_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/document/edit_document_test.dart index 84579b1ea7cf8..585bc60b68533 100644 --- a/frontend/appflowy_flutter/integration_test/document/edit_document_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/document/edit_document_test.dart @@ -5,7 +5,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/document/edit_document_test.png b/frontend/appflowy_flutter/integration_test/desktop/document/edit_document_test.png similarity index 100% rename from frontend/appflowy_flutter/integration_test/document/edit_document_test.png rename to frontend/appflowy_flutter/integration_test/desktop/document/edit_document_test.png diff --git a/frontend/appflowy_flutter/integration_test/empty_document_test.dart b/frontend/appflowy_flutter/integration_test/desktop/empty_document_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/empty_document_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/empty_document_test.dart index 273e7bb73a141..17d6cad1f1a14 100644 --- a/frontend/appflowy_flutter/integration_test/empty_document_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/empty_document_test.dart @@ -3,8 +3,9 @@ import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import 'util/keyboard.dart'; -import 'util/util.dart'; + +import '../util/keyboard.dart'; +import '../util/util.dart'; /// Integration tests for an empty document. The [TestWorkspaceService] will load a workspace from an empty document `assets/test/workspaces/empty_document.zip` for all tests. /// diff --git a/frontend/appflowy_flutter/integration_test/empty_test.dart b/frontend/appflowy_flutter/integration_test/desktop/empty_test.dart similarity index 93% rename from frontend/appflowy_flutter/integration_test/empty_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/empty_test.dart index 0b66c412134be..bff25f9a91684 100644 --- a/frontend/appflowy_flutter/integration_test/empty_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/empty_test.dart @@ -1,7 +1,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import 'util/util.dart'; +import '../util/util.dart'; // This test is meaningless, just for preventing the CI from failing. void main() { diff --git a/frontend/appflowy_flutter/integration_test/hotkeys_test.dart b/frontend/appflowy_flutter/integration_test/desktop/hotkeys_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/hotkeys_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/hotkeys_test.dart index cf55e183cac61..74bde7c4da6f4 100644 --- a/frontend/appflowy_flutter/integration_test/hotkeys_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/hotkeys_test.dart @@ -1,4 +1,5 @@ import 'dart:io'; + import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/application/settings/prelude.dart'; import 'package:appflowy/workspace/presentation/home/menu/sidebar/sidebar.dart'; @@ -8,8 +9,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import 'util/keyboard.dart'; -import 'util/util.dart'; +import '../util/keyboard.dart'; +import '../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/import_files_test.dart b/frontend/appflowy_flutter/integration_test/desktop/import_files_test.dart similarity index 94% rename from frontend/appflowy_flutter/integration_test/import_files_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/import_files_test.dart index 8fe3113354106..34c1736a924df 100644 --- a/frontend/appflowy_flutter/integration_test/import_files_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/import_files_test.dart @@ -3,11 +3,11 @@ import 'dart:io'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; - -import 'util/mock/mock_file_picker.dart'; -import 'util/util.dart'; import 'package:path/path.dart' as p; +import '../util/mock/mock_file_picker.dart'; +import '../util/util.dart'; + void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/language_test.dart b/frontend/appflowy_flutter/integration_test/desktop/language_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/language_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/language_test.dart index 94aeef0e9d450..6809ce6a8faa5 100644 --- a/frontend/appflowy_flutter/integration_test/language_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/language_test.dart @@ -2,7 +2,7 @@ import 'package:appflowy/workspace/presentation/settings/widgets/settings_langua import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import 'util/util.dart'; +import '../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/open_ai_smart_menu_test.dart b/frontend/appflowy_flutter/integration_test/desktop/open_ai_smart_menu_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/open_ai_smart_menu_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/open_ai_smart_menu_test.dart index 969f9ec60bcfe..6827e5d2a0205 100644 --- a/frontend/appflowy_flutter/integration_test/open_ai_smart_menu_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/open_ai_smart_menu_test.dart @@ -7,8 +7,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import 'util/mock/mock_openai_repository.dart'; -import 'util/util.dart'; +import '../util/mock/mock_openai_repository.dart'; +import '../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/reminder/document_reminder_test.dart b/frontend/appflowy_flutter/integration_test/desktop/reminder/document_reminder_test.dart similarity index 96% rename from frontend/appflowy_flutter/integration_test/reminder/document_reminder_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/reminder/document_reminder_test.dart index 85c3d68265625..3cd4b5d46467f 100644 --- a/frontend/appflowy_flutter/integration_test/reminder/document_reminder_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/reminder/document_reminder_test.dart @@ -1,5 +1,3 @@ -import 'package:flutter/services.dart'; - import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/mention/mention_block.dart'; import 'package:appflowy/user/application/user_settings_service.dart'; @@ -11,14 +9,15 @@ import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:calendar_view/calendar_view.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra_ui/style_widget/text_field.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/base.dart'; -import '../util/common_operations.dart'; -import '../util/editor_test_operations.dart'; -import '../util/expectation.dart'; -import '../util/keyboard.dart'; +import '../../util/base.dart'; +import '../../util/common_operations.dart'; +import '../../util/editor_test_operations.dart'; +import '../../util/expectation.dart'; +import '../../util/keyboard.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/settings/notifications_settings_test.dart b/frontend/appflowy_flutter/integration_test/desktop/settings/notifications_settings_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/settings/notifications_settings_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/settings/notifications_settings_test.dart index ab7458b2501f3..dd189ec965bd0 100644 --- a/frontend/appflowy_flutter/integration_test/settings/notifications_settings_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/settings/notifications_settings_test.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/settings/settings_runner.dart b/frontend/appflowy_flutter/integration_test/desktop/settings/settings_runner.dart similarity index 100% rename from frontend/appflowy_flutter/integration_test/settings/settings_runner.dart rename to frontend/appflowy_flutter/integration_test/desktop/settings/settings_runner.dart diff --git a/frontend/appflowy_flutter/integration_test/settings/user_language_test.dart b/frontend/appflowy_flutter/integration_test/desktop/settings/user_language_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/settings/user_language_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/settings/user_language_test.dart index 32be781749ba3..99c78777449e2 100644 --- a/frontend/appflowy_flutter/integration_test/settings/user_language_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/settings/user_language_test.dart @@ -1,10 +1,11 @@ import 'dart:ui'; +import 'package:appflowy/workspace/application/settings/prelude.dart'; import 'package:appflowy/workspace/presentation/settings/widgets/settings_language_view.dart'; -import 'package:integration_test/integration_test.dart'; import 'package:flutter_test/flutter_test.dart'; -import '../util/util.dart'; -import 'package:appflowy/workspace/application/settings/prelude.dart'; +import 'package:integration_test/integration_test.dart'; + +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/share_markdown_test.dart b/frontend/appflowy_flutter/integration_test/desktop/share_markdown_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/share_markdown_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/share_markdown_test.dart index 689ec4d0ed949..aa79006c8a609 100644 --- a/frontend/appflowy_flutter/integration_test/share_markdown_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/share_markdown_test.dart @@ -5,8 +5,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:path/path.dart' as p; -import 'util/mock/mock_file_picker.dart'; -import 'util/util.dart'; +import '../util/mock/mock_file_picker.dart'; +import '../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/sidebar/rename_current_item_test.dart b/frontend/appflowy_flutter/integration_test/desktop/sidebar/rename_current_item_test.dart similarity index 93% rename from frontend/appflowy_flutter/integration_test/sidebar/rename_current_item_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/sidebar/rename_current_item_test.dart index 0740b76aa7bed..a6b0a92be84fb 100644 --- a/frontend/appflowy_flutter/integration_test/sidebar/rename_current_item_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/sidebar/rename_current_item_test.dart @@ -6,9 +6,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/base.dart'; -import '../util/common_operations.dart'; -import '../util/keyboard.dart'; +import '../../util/keyboard.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/sidebar/sidebar_expand_test.dart b/frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_expand_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/sidebar/sidebar_expand_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_expand_test.dart index 76d183d62562f..6c5b0b687dac1 100644 --- a/frontend/appflowy_flutter/integration_test/sidebar/sidebar_expand_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_expand_test.dart @@ -6,7 +6,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/sidebar/sidebar_favorites_test.dart b/frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_favorites_test.dart similarity index 98% rename from frontend/appflowy_flutter/integration_test/sidebar/sidebar_favorites_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_favorites_test.dart index 81bee64689d3a..c4f18ccfb37d3 100644 --- a/frontend/appflowy_flutter/integration_test/sidebar/sidebar_favorites_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_favorites_test.dart @@ -6,9 +6,9 @@ import 'package:flowy_infra_ui/style_widget/hover.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/base.dart'; -import '../util/common_operations.dart'; -import '../util/expectation.dart'; +import '../../util/base.dart'; +import '../../util/common_operations.dart'; +import '../../util/expectation.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/sidebar/sidebar_icon_test.dart b/frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_icon_test.dart similarity index 94% rename from frontend/appflowy_flutter/integration_test/sidebar/sidebar_icon_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_icon_test.dart index a2a641ec8c3e5..112d6ddeccb77 100644 --- a/frontend/appflowy_flutter/integration_test/sidebar/sidebar_icon_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_icon_test.dart @@ -2,9 +2,9 @@ import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/base.dart'; -import '../util/common_operations.dart'; -import '../util/expectation.dart'; +import '../../util/base.dart'; +import '../../util/common_operations.dart'; +import '../../util/expectation.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/sidebar/sidebar_test.dart b/frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_test.dart similarity index 99% rename from frontend/appflowy_flutter/integration_test/sidebar/sidebar_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_test.dart index 1da433559c107..c4c622b12caeb 100644 --- a/frontend/appflowy_flutter/integration_test/sidebar/sidebar_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_test.dart @@ -12,7 +12,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import '../util/util.dart'; +import '../../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/sidebar/sidebar_test_runner.dart b/frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_test_runner.dart similarity index 100% rename from frontend/appflowy_flutter/integration_test/sidebar/sidebar_test_runner.dart rename to frontend/appflowy_flutter/integration_test/desktop/sidebar/sidebar_test_runner.dart diff --git a/frontend/appflowy_flutter/integration_test/switch_folder_test.dart b/frontend/appflowy_flutter/integration_test/desktop/switch_folder_test.dart similarity index 97% rename from frontend/appflowy_flutter/integration_test/switch_folder_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/switch_folder_test.dart index 9cd9c9a374a46..bdfc5a2e9b0a5 100644 --- a/frontend/appflowy_flutter/integration_test/switch_folder_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/switch_folder_test.dart @@ -7,8 +7,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:path/path.dart' as p; -import 'util/mock/mock_file_picker.dart'; -import 'util/util.dart'; +import '../util/mock/mock_file_picker.dart'; +import '../util/util.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); diff --git a/frontend/appflowy_flutter/integration_test/tabs_test.dart b/frontend/appflowy_flutter/integration_test/desktop/tabs_test.dart similarity index 94% rename from frontend/appflowy_flutter/integration_test/tabs_test.dart rename to frontend/appflowy_flutter/integration_test/desktop/tabs_test.dart index 4c3d2fed16a54..503ec4bf48750 100644 --- a/frontend/appflowy_flutter/integration_test/tabs_test.dart +++ b/frontend/appflowy_flutter/integration_test/desktop/tabs_test.dart @@ -8,10 +8,10 @@ import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import 'util/base.dart'; -import 'util/common_operations.dart'; -import 'util/expectation.dart'; -import 'util/keyboard.dart'; +import '../util/base.dart'; +import '../util/common_operations.dart'; +import '../util/expectation.dart'; +import '../util/keyboard.dart'; const _documentName = 'First Doc'; const _documentTwoName = 'Second Doc'; diff --git a/frontend/appflowy_flutter/integration_test/mobile/sign_in/anonymous_sign_in_test.dart b/frontend/appflowy_flutter/integration_test/mobile/sign_in/anonymous_sign_in_test.dart new file mode 100644 index 0000000000000..743eb21f58c65 --- /dev/null +++ b/frontend/appflowy_flutter/integration_test/mobile/sign_in/anonymous_sign_in_test.dart @@ -0,0 +1,44 @@ +// ignore_for_file: unused_import + +import 'dart:io'; + +import 'package:appflowy/env/cloud_env.dart'; +import 'package:appflowy/generated/locale_keys.g.dart'; +import 'package:appflowy/mobile/presentation/home/home.dart'; +import 'package:appflowy/startup/startup.dart'; +import 'package:appflowy/user/application/auth/af_cloud_mock_auth_service.dart'; +import 'package:appflowy/user/application/auth/auth_service.dart'; +import 'package:appflowy/user/presentation/screens/sign_in_screen/widgets/widgets.dart'; +import 'package:appflowy/workspace/application/settings/prelude.dart'; +import 'package:appflowy/workspace/presentation/settings/widgets/setting_appflowy_cloud.dart'; +import 'package:appflowy/workspace/presentation/settings/widgets/settings_user_view.dart'; +import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart'; +import 'package:easy_localization/easy_localization.dart'; +import 'package:flowy_infra/uuid.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:integration_test/integration_test.dart'; +import 'package:path/path.dart' as p; + +import '../../util/dir.dart'; +import '../../util/mock/mock_file_picker.dart'; +import '../../util/util.dart'; + +void main() { + IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + + group('anonymous sign in on mobile', () { + testWidgets('anon user and then sign in', (tester) async { + await tester.initializeAppFlowy( + cloudType: AuthenticatorType.local, + ); + + // click the anonymousSignInButton + final anonymousSignInButton = find.byType(SignInAnonymousButton); + expect(anonymousSignInButton, findsOneWidget); + await tester.tapButton(anonymousSignInButton); + + // expect to see the home page + expect(find.byType(MobileHomeScreen), findsOneWidget); + }); + }); +} diff --git a/frontend/appflowy_flutter/integration_test/runner.dart b/frontend/appflowy_flutter/integration_test/runner.dart index c744a5fa66382..0b63c7dc8eed4 100644 --- a/frontend/appflowy_flutter/integration_test/runner.dart +++ b/frontend/appflowy_flutter/integration_test/runner.dart @@ -1,28 +1,30 @@ +import 'dart:io'; + import 'package:integration_test/integration_test.dart'; -import 'appearance_settings_test.dart' as appearance_test_runner; -import 'board/board_test_runner.dart' as board_test_runner; -import 'database/database_calendar_test.dart' as database_calendar_test; -import 'database/database_cell_test.dart' as database_cell_test; -import 'database/database_field_settings_test.dart' +import 'desktop/appearance_settings_test.dart' as appearance_test_runner; +import 'desktop/board/board_test_runner.dart' as board_test_runner; +import 'desktop/database/database_calendar_test.dart' as database_calendar_test; +import 'desktop/database/database_cell_test.dart' as database_cell_test; +import 'desktop/database/database_field_settings_test.dart' as database_field_settings_test; -import 'database/database_field_test.dart' as database_field_test; -import 'database/database_filter_test.dart' as database_filter_test; -import 'database/database_row_page_test.dart' as database_row_page_test; -import 'database/database_row_test.dart' as database_row_test; -import 'database/database_setting_test.dart' as database_setting_test; -import 'database/database_share_test.dart' as database_share_test; -import 'database/database_sort_test.dart' as database_sort_test; -import 'database/database_view_test.dart' as database_view_test; -import 'document/document_test_runner.dart' as document_test_runner; -import 'empty_test.dart' as first_test; -import 'hotkeys_test.dart' as hotkeys_test; -import 'import_files_test.dart' as import_files_test; -import 'settings/settings_runner.dart' as settings_test_runner; -import 'share_markdown_test.dart' as share_markdown_test; -import 'sidebar/sidebar_test_runner.dart' as sidebar_test_runner; -import 'switch_folder_test.dart' as switch_folder_test; -import 'tabs_test.dart' as tabs_test; +import 'desktop/database/database_field_test.dart' as database_field_test; +import 'desktop/database/database_filter_test.dart' as database_filter_test; +import 'desktop/database/database_row_page_test.dart' as database_row_page_test; +import 'desktop/database/database_row_test.dart' as database_row_test; +import 'desktop/database/database_setting_test.dart' as database_setting_test; +import 'desktop/database/database_share_test.dart' as database_share_test; +import 'desktop/database/database_sort_test.dart' as database_sort_test; +import 'desktop/database/database_view_test.dart' as database_view_test; +import 'desktop/document/document_test_runner.dart' as document_test_runner; +import 'desktop/empty_test.dart' as first_test; +import 'desktop/hotkeys_test.dart' as hotkeys_test; +import 'desktop/import_files_test.dart' as import_files_test; +import 'desktop/settings/settings_runner.dart' as settings_test_runner; +import 'desktop/share_markdown_test.dart' as share_markdown_test; +import 'desktop/sidebar/sidebar_test_runner.dart' as sidebar_test_runner; +import 'desktop/switch_folder_test.dart' as switch_folder_test; +import 'desktop/tabs_test.dart' as tabs_test; // import 'auth/supabase_auth_test.dart' as supabase_auth_test_runner; /// The main task runner for all integration tests in AppFlowy. @@ -35,6 +37,16 @@ import 'tabs_test.dart' as tabs_test; Future main() async { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + if (Platform.isLinux || Platform.isMacOS || Platform.isWindows) { + await runIntegrationOnDesktop(); + } else if (Platform.isIOS || Platform.isAndroid) { + await runIntegrationOnMobile(); + } else { + throw Exception('Unsupported platform'); + } +} + +Future runIntegrationOnDesktop() async { // This test must be run first, otherwise the CI will fail. first_test.main(); @@ -75,8 +87,6 @@ Future main() async { // User settings settings_test_runner.main(); - - // board_test.main(); - // empty_document_test.main(); - // smart_menu_test.main(); } + +Future runIntegrationOnMobile() async {} diff --git a/frontend/appflowy_flutter/integration_test/util/base.dart b/frontend/appflowy_flutter/integration_test/util/base.dart index 11b0dcf1ba364..5088b6f30ff2d 100644 --- a/frontend/appflowy_flutter/integration_test/util/base.dart +++ b/frontend/appflowy_flutter/integration_test/util/base.dart @@ -37,9 +37,10 @@ extension AppFlowyTestBase on WidgetTester { AuthenticatorType? cloudType, String? email, }) async { - // view.physicalSize = windowsSize; - await binding.setSurfaceSize(windowSize); - // addTearDown(() => binding.setSurfaceSize(null)); + if (Platform.isLinux || Platform.isWindows || Platform.isMacOS) { + // Set the window size + await binding.setSurfaceSize(windowSize); + } mockHotKeyManagerHandlers(); final applicationDataDirectory = dataDirectory ?? diff --git a/frontend/scripts/code_generation/language_files/generate_language_files.sh b/frontend/scripts/code_generation/language_files/generate_language_files.sh index 03bf7a906ad6d..f5bc6b9d5fe35 100755 --- a/frontend/scripts/code_generation/language_files/generate_language_files.sh +++ b/frontend/scripts/code_generation/language_files/generate_language_files.sh @@ -24,9 +24,7 @@ rm -rf assets/translations/ mkdir -p assets/translations/ cp -f ../resources/translations/*.json assets/translations/ -if [ "$no_pub_get" = false ]; then - flutter packages pub get -fi +flutter packages pub get echo "Specifying source directory for AppFlowy Localizations." dart run easy_localization:generate -S assets/translations/ diff --git a/frontend/scripts/makefile/mobile.toml b/frontend/scripts/makefile/mobile.toml index 62214d7541f7a..1c535c83929eb 100644 --- a/frontend/scripts/makefile/mobile.toml +++ b/frontend/scripts/makefile/mobile.toml @@ -27,7 +27,7 @@ script = [ """ cd rust-lib/ rustup show - if [ "${BUILD_FLAG}" == "debug" ]; then + if [ "${BUILD_FLAG}" = "debug" ]; then echo "🚀 🚀 🚀 Building for debug" cargo lipo --targets ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}" --package=dart-ffi else @@ -58,7 +58,7 @@ script = [ rustup show if [ "${BUILD_FLAG}" = "debug" ]; then echo "🚀 🚀 🚀 Building for debug" - cargo ndk -t arm64-v8a -t x86_64 -o ./jniLibs build --features "${FLUTTER_DESKTOP_FEATURES}" --package=dart-ffi + cargo ndk -t arm64-v8a -o ./jniLibs build --features "${FLUTTER_DESKTOP_FEATURES}" --package=dart-ffi else echo "🚀 🚀 🚀 Building for release" cargo ndk -t arm64-v8a -o ./jniLibs build --features "${FLUTTER_DESKTOP_FEATURES}" --package=dart-ffi --release