mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
5d7008edd7
* feat: support customize folder path * feat: add l10n and optimize the logic * chore: code refactor * feat: add file read/write permission for macOS * fix: add toast for restoring path * feat: fetch apps and show them * feat: fetch apps and show them * feat: implement select document logic * feat: l10n and add select item callback * feat: add space between tile * chore: move file exporter to settings * chore: update UI * feat: support customizing folder when launching the app * feat: auto register after customizing folder * feat: l10n * feat: l10n * chore: reinitialize flowy sdk when calling init_sdk * chore: remove flowysdk const keyword to make sure it can be rebuild * chore: clear kv values when user logout * chore: replace current workspace id key in kv.db * feat: add config.name as a part of seesion_cache_key * feat: support open folder when launching * chore: fix some bugs * chore: dart fix & flutter analyze * chore: wrap 'sign up with ramdom user' as interface * feat: dismiss settings view after changing the folder * fix: read kv value after initializaing with new path * chore: remove user_id prefix from current workspace key * fix: move open latest view action to bloc * test: add test utils for integration tests * chore: move integration_test to its parent directory * test: add integration_test ci * test: switch to B from A, then switch to A again * chore: fix warings and format code and fix tests * chore: remove comment out codes * chore: rename some properties name and optimize the logic * chore: abstract logic of settings file exporter widget to cubit * chore: abstract location customizer view from file system view * chore: abstract settings page index to enum type * chore: remove the redundant underscore * test: fix integration test error * chore: enable integration test for windows and ubuntu * feat: abstract file picker as service and mock it under integration test * chore: fix bloc test Co-authored-by: nathan <nathan@appflowy.io>
85 lines
2.4 KiB
Dart
85 lines
2.4 KiB
Dart
import 'package:app_flowy/generated/locale_keys.g.dart';
|
|
import 'package:app_flowy/workspace/presentation/settings/settings_dialog.dart';
|
|
import 'package:app_flowy/workspace/presentation/settings/widgets/settings_user_view.dart';
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
import 'base.dart';
|
|
|
|
enum SettingsPage {
|
|
appearance,
|
|
language,
|
|
files,
|
|
user,
|
|
}
|
|
|
|
extension on SettingsPage {
|
|
String get name {
|
|
switch (this) {
|
|
case SettingsPage.appearance:
|
|
return LocaleKeys.settings_menu_appearance.tr();
|
|
case SettingsPage.language:
|
|
return LocaleKeys.settings_menu_language.tr();
|
|
case SettingsPage.files:
|
|
return LocaleKeys.settings_menu_files.tr();
|
|
case SettingsPage.user:
|
|
return LocaleKeys.settings_menu_user.tr();
|
|
}
|
|
}
|
|
}
|
|
|
|
extension AppFlowySettings on WidgetTester {
|
|
/// Open settings page
|
|
Future<void> openSettings() async {
|
|
final settingsButton = find.byTooltip(LocaleKeys.settings_menu_open.tr());
|
|
expect(settingsButton, findsOneWidget);
|
|
await tapButton(settingsButton);
|
|
final settingsDialog = find.byType(SettingsDialog);
|
|
expect(settingsDialog, findsOneWidget);
|
|
return;
|
|
}
|
|
|
|
/// Open the page taht insides the settings page
|
|
Future<void> openSettingsPage(SettingsPage page) async {
|
|
final button = find.text(page.name, findRichText: true);
|
|
expect(button, findsOneWidget);
|
|
await tapButton(button);
|
|
return;
|
|
}
|
|
|
|
/// Restore the AppFlowy data storage location
|
|
Future<void> restoreLocation() async {
|
|
final buton =
|
|
find.byTooltip(LocaleKeys.settings_files_restoreLocation.tr());
|
|
expect(buton, findsOneWidget);
|
|
await tapButton(buton);
|
|
return;
|
|
}
|
|
|
|
Future<void> tapOpenFolderButton() async {
|
|
final buton = find.text(LocaleKeys.settings_files_open.tr());
|
|
expect(buton, findsOneWidget);
|
|
await tapButton(buton);
|
|
return;
|
|
}
|
|
|
|
Future<void> tapCustomLocationButton() async {
|
|
final buton =
|
|
find.byTooltip(LocaleKeys.settings_files_customizeLocation.tr());
|
|
expect(buton, findsOneWidget);
|
|
await tapButton(buton);
|
|
return;
|
|
}
|
|
|
|
/// Enter user name
|
|
Future<void> enterUserName(String name) async {
|
|
final uni = find.byType(UserNameInput);
|
|
expect(uni, findsOneWidget);
|
|
await tap(uni);
|
|
await enterText(uni, name);
|
|
await wait(300); //
|
|
await testTextInput.receiveAction(TextInputAction.done);
|
|
await pumpAndSettle();
|
|
}
|
|
}
|