mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-11-04 03:54:44 +00:00 
			
		
		
		
	* fix:windows integration test * fix: load asset * fix: windows test * fix: test * test: refactor the folder test --------- Co-authored-by: vedon <vedon.fu@gmail.com> Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'package:appflowy/startup/startup.dart';
 | 
						|
import 'package:appflowy/startup/tasks/prelude.dart';
 | 
						|
import 'package:appflowy/workspace/application/settings/prelude.dart';
 | 
						|
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';
 | 
						|
 | 
						|
void main() {
 | 
						|
  IntegrationTestWidgetsFlutterBinding.ensureInitialized();
 | 
						|
 | 
						|
  group('customize the folder path', () {
 | 
						|
    testWidgets('switch to B from A, then switch to A again', (tester) async {
 | 
						|
      const userA = 'UserA';
 | 
						|
      const userB = 'UserB';
 | 
						|
 | 
						|
      final initialPath = p.join(userA, appFlowyDataFolder);
 | 
						|
      final context = await tester.initializeAppFlowy(
 | 
						|
        pathExtension: initialPath,
 | 
						|
      );
 | 
						|
      // remove the last extension
 | 
						|
      final rootPath = context.applicationDataDirectory.replaceFirst(
 | 
						|
        initialPath,
 | 
						|
        '',
 | 
						|
      );
 | 
						|
 | 
						|
      await tester.tapGoButton();
 | 
						|
      tester.expectToSeeHomePage();
 | 
						|
 | 
						|
      // switch to user B
 | 
						|
      {
 | 
						|
        // set user name for userA
 | 
						|
        await tester.openSettings();
 | 
						|
        await tester.openSettingsPage(SettingsPage.user);
 | 
						|
        await tester.enterUserName(userA);
 | 
						|
 | 
						|
        await tester.openSettingsPage(SettingsPage.files);
 | 
						|
        await tester.pumpAndSettle();
 | 
						|
 | 
						|
        // mock the file_picker result
 | 
						|
        await mockGetDirectoryPath(
 | 
						|
          p.join(rootPath, userB),
 | 
						|
        );
 | 
						|
        await tester.tapCustomLocationButton();
 | 
						|
        await tester.pumpAndSettle();
 | 
						|
        tester.expectToSeeHomePage();
 | 
						|
 | 
						|
        // set user name for userB
 | 
						|
        await tester.openSettings();
 | 
						|
        await tester.openSettingsPage(SettingsPage.user);
 | 
						|
        await tester.enterUserName(userB);
 | 
						|
      }
 | 
						|
 | 
						|
      // switch to the userA
 | 
						|
      {
 | 
						|
        await tester.openSettingsPage(SettingsPage.files);
 | 
						|
        await tester.pumpAndSettle();
 | 
						|
 | 
						|
        // mock the file_picker result
 | 
						|
        await mockGetDirectoryPath(
 | 
						|
          p.join(rootPath, userA),
 | 
						|
        );
 | 
						|
        await tester.tapCustomLocationButton();
 | 
						|
 | 
						|
        await tester.pumpAndSettle();
 | 
						|
        tester.expectToSeeHomePage();
 | 
						|
        tester.expectToSeeUserName(userA);
 | 
						|
      }
 | 
						|
 | 
						|
      // switch to the userB again
 | 
						|
      {
 | 
						|
        await tester.openSettings();
 | 
						|
        await tester.openSettingsPage(SettingsPage.files);
 | 
						|
        await tester.pumpAndSettle();
 | 
						|
 | 
						|
        // mock the file_picker result
 | 
						|
        await mockGetDirectoryPath(
 | 
						|
          p.join(rootPath, userB),
 | 
						|
        );
 | 
						|
        await tester.tapCustomLocationButton();
 | 
						|
 | 
						|
        await tester.pumpAndSettle();
 | 
						|
        tester.expectToSeeHomePage();
 | 
						|
        tester.expectToSeeUserName(userB);
 | 
						|
      }
 | 
						|
    });
 | 
						|
 | 
						|
    testWidgets('reset to default location', (tester) async {
 | 
						|
      await tester.initializeAppFlowy();
 | 
						|
 | 
						|
      await tester.tapGoButton();
 | 
						|
 | 
						|
      // home and readme document
 | 
						|
      tester.expectToSeeHomePage();
 | 
						|
 | 
						|
      // open settings and restore the location
 | 
						|
      await tester.openSettings();
 | 
						|
      await tester.openSettingsPage(SettingsPage.files);
 | 
						|
      await tester.restoreLocation();
 | 
						|
 | 
						|
      expect(
 | 
						|
        await appFlowyApplicationDataDirectory().then((value) => value.path),
 | 
						|
        await getIt<ApplicationDataStorage>().getPath(),
 | 
						|
      );
 | 
						|
    });
 | 
						|
  });
 | 
						|
}
 |