createSuperInvite method

Future<String> createSuperInvite(
  1. List<String> spaceIds, {
  2. List<String>? chats,
  3. StepCallback? onCreateForm,
})

Implementation

Future<String> createSuperInvite(
  List<String> spaceIds, {
  List<String>? chats,
  StepCallback? onCreateForm,
}) async {
  final newToken = 't${const Uuid().v4().toString()}'.substring(0, 8);
  await find.byKey(Keys.mainNav).should(findsOneWidget);
  await navigateTo([
    MainNavKeys.quickJump,
    MainNavKeys.quickJump,
    QuickJumpKeys.settings,
    SettingsMenu.superInvitations,
    SuperInvitesPage.createNewToken,
  ]);

  final tokenTxt = find.byKey(CreateSuperInviteTokenPage.tokenFieldKey);
  await tokenTxt.should(findsOneWidget);
  await tokenTxt.enterTextWithoutReplace(newToken);

  for (final spaceId in spaceIds) {
    await navigateTo([
      CreateSuperInviteTokenPage.addSubmenu,
      CreateSuperInviteTokenPage.addSpaceKey,
      Key('select-space-$spaceId'),
    ]);
  }

  if (chats?.isNotEmpty == true) {
    for (final chatId in chats!) {
      await navigateTo([
        CreateSuperInviteTokenPage.addSubmenu,
        CreateSuperInviteTokenPage.addChatKey,
        Key('select-chat-$chatId'),
      ]);
    }
  }

  if (onCreateForm != null) {
    await onCreateForm(this);
  }

  final submitBtn = find.byKey(CreateSuperInviteTokenPage.submitBtn);
  await tester.ensureVisible(submitBtn);
  await submitBtn.should(findsOneWidget);
  await submitBtn.tap();

  return newToken;
}