Program: 69476
Project: 69476
Buggy source:
/** 
 * An author creates a group, it opens the tab groups and then "My groups". It creates a group, enters a number of participants "1", enable the waiting list. In members visibility, it see coaches, participants and waiting list visible to members.<br> A participant and than a student come, book the group. The first enters the group, the second the waiting list.<br> The author go in the members list to check if it's in the coach list, the participant in the participants list and the student in the waiting list. Should show group starting page, with menu items Administration and Bookings visible
 * @param loginPage
 * @param participantBrowser
 * @throws IOException
 * @throws URISyntaxException
 */
@Test @RunAsClient public void createGroupWithWaitingList(@InitialPage LoginPage loginPage,@Drone @Participant WebDriver participantBrowser,@Drone @Student WebDriver studentBrowser) throws IOException, URISyntaxException {
  screenshotTestRule.setBrowsers(browser,participantBrowser,studentBrowser);
  UserVO author=new UserRestClient(deploymentUrl).createRandomUser("String_Node_Str");
  UserVO participant=new UserRestClient(deploymentUrl).createRandomUser("String_Node_Str");
  UserVO student=new UserRestClient(deploymentUrl).createRandomUser("String_Node_Str");
  loginPage.loginAs(author.getLogin(),author.getPassword()).resume();
  String groupName="String_Node_Str" + UUID.randomUUID();
  GroupPage group=navBar.openGroups(browser).createGroup(groupName,"String_Node_Str").openAdministration().openEditDetails().setMaxNumberOfParticipants(1).setWaitingList().saveDetails();
  String token="String_Node_Str";
  String description="String_Node_Str";
  group.openBookingConfig().openAddDropMenu().addTokenMethod().configureTokenMethod(token,description).assertOnToken(token).save();
  group=GroupPage.getGroup(browser).openAdminMembers().setVisibility(true,true,true).openMembers();
  LoginPage participantLoginPage=LoginPage.getLoginPage(participantBrowser,deploymentUrl);
  participantLoginPage.loginAs(participant.getLogin(),participant.getPassword()).resume();
  NavigationPage participantNavBar=new NavigationPage(participantBrowser);
  participantNavBar.openGroups(participantBrowser).publishedGroups().bookGroup(groupName).bookToken(token);
  GroupPage.getGroup(participantBrowser).assertOnInfosPage(groupName);
  LoginPage studentLoginPage=LoginPage.getLoginPage(studentBrowser,deploymentUrl);
  studentLoginPage.loginAs(student.getLogin(),student.getPassword()).resume();
  NavigationPage studentNavBar=new NavigationPage(studentBrowser);
  studentNavBar.openGroups(studentBrowser).publishedGroups().bookGroup(groupName).bookToken(token);
  GroupPage.getGroup(studentBrowser).assertOnWaitingList(groupName);
  group=GroupPage.getGroup(browser).openMembers().assertMembersInOwnerList(author).assertMembersInParticipantList(participant).assertMembersInWaitingList(student);
}

Fixed version (ground truth):
/** 
 * An author creates a group, it opens the tab groups and then "My groups". It creates a group, enters a number of participants "1", enable the waiting list. In members visibility, it see coaches, participants and waiting list visible to members.<br> A participant and than a student come, book the group. The first enters the group, the second the waiting list.<br> The author go in the members list to check if it's in the coach list, the participant in the participants list and the student in the waiting list. Should show group starting page, with menu items Administration and Bookings visible
 * @param loginPage
 * @param participantBrowser
 * @throws IOException
 * @throws URISyntaxException
 */
@Test @RunAsClient public void createGroupWithWaitingList(@InitialPage LoginPage loginPage,@Drone @Participant WebDriver participantBrowser,@Drone @Student WebDriver studentBrowser) throws IOException, URISyntaxException {
  UserVO author=new UserRestClient(deploymentUrl).createRandomUser("String_Node_Str");
  UserVO participant=new UserRestClient(deploymentUrl).createRandomUser("String_Node_Str");
  UserVO student=new UserRestClient(deploymentUrl).createRandomUser("String_Node_Str");
  loginPage.loginAs(author.getLogin(),author.getPassword()).resume();
  String groupName="String_Node_Str" + UUID.randomUUID();
  GroupPage group=navBar.openGroups(browser).createGroup(groupName,"String_Node_Str").openAdministration().openEditDetails().setMaxNumberOfParticipants(1).setWaitingList().saveDetails();
  String token="String_Node_Str";
  String description="String_Node_Str";
  group.openBookingConfig().openAddDropMenu().addTokenMethod().configureTokenMethod(token,description).assertOnToken(token).save();
  group=GroupPage.getGroup(browser).openAdminMembers().setVisibility(true,true,true).openMembers();
  LoginPage participantLoginPage=LoginPage.getLoginPage(participantBrowser,deploymentUrl);
  participantLoginPage.loginAs(participant.getLogin(),participant.getPassword()).resume();
  NavigationPage participantNavBar=new NavigationPage(participantBrowser);
  participantNavBar.openGroups(participantBrowser).publishedGroups().bookGroup(groupName).bookToken(token);
  GroupPage.getGroup(participantBrowser).assertOnInfosPage(groupName);
  LoginPage studentLoginPage=LoginPage.getLoginPage(studentBrowser,deploymentUrl);
  studentLoginPage.loginAs(student.getLogin(),student.getPassword()).resume();
  NavigationPage studentNavBar=new NavigationPage(studentBrowser);
  studentNavBar.openGroups(studentBrowser).publishedGroups().bookGroup(groupName).bookToken(token);
  GroupPage.getGroup(studentBrowser).assertOnWaitingList(groupName);
  group=GroupPage.getGroup(browser).openMembers().assertMembersInOwnerList(author).assertMembersInParticipantList(participant).assertMembersInWaitingList(student);
}