Skip to content

Commit ee2515f

Browse files
findmsnetbe
andauthored
fix: for CI failures where setUsernamePage doesn't load and flaky AccountSettingPage identifier removed - WPB-22561 (#4062)
Co-authored-by: François Benaiteau <[email protected]>
1 parent 3c9aea6 commit ee2515f

File tree

7 files changed

+44
-65
lines changed

7 files changed

+44
-65
lines changed

wire-ios/Wire-iOS/Sources/UserInterface/Settings/CellDescriptors/SettingsExternalScreenCellDescriptor.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ class SettingsExternalScreenCellDescriptor: SettingsGroupCellDescriptorType, Set
132132
cell.titleText = title
133133

134134
if let tableCell = cell as? SettingsTableCell {
135+
tableCell.accessibilityIdentifier = settingsTopLevelMenuItem?.accessibilityID
135136
tableCell.valueLabel.accessibilityIdentifier = title + "Field"
136137
tableCell.valueLabel.isAccessibilityElement = true
137138
}

wire-ios/Wire-iOS/Sources/UserInterface/Settings/SettingsCell.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ class SettingsTableCell: SettingsTableCellProtocol {
193193
override func prepareForReuse() {
194194
super.prepareForReuse()
195195
preview = .none
196+
accessibilityIdentifier = nil
196197
}
197198

198199
func setup() {

wire-ios/WireUITests/AccountManagementTests.swift

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,13 @@ final class AccountManagementTests: WireUITestCase {
2525

2626
@MainActor
2727
func test_Account_Management_Lock_With_Passcode() async throws {
28+
2829
let passcode = UserGenerator.generateAppPasscode()
2930

30-
do {
31-
let (_, teamOwner) = try await userHelper.registerUserAsTeamOwner()
32-
let ownerAccessToken = try await userHelper.fetchAccessToken(
33-
email: teamOwner.email,
34-
password: teamOwner.password
35-
)
36-
let teamID = try XCTUnwrap(teamOwner.teamID)
37-
38-
let (_, userInfo) = try await userHelper.registerUsersAsTeamMember(
39-
ownerAccessToken: ownerAccessToken,
40-
teamID: teamID
41-
)
42-
teamMember = userInfo
43-
} catch {
44-
throw XCTSkip("error in setup of test: \(error)")
45-
}
46-
47-
let page = try await app.loginUser(email: teamMember.email, password: teamMember.password)
48-
.acceptPopupOnTeamMemberSetup(with: self)
49-
.setUsername(teamMember.username)
31+
let user = try await userHelper.createPersonalUser()
32+
33+
let page = try await app.loginUser(email: user.email, password: user.password)
34+
.acceptPopup(with: self)
5035
.openSettings()
5136
.openOptionsMenu()
5237
.enableLockWithPasscode()
@@ -59,32 +44,18 @@ final class AccountManagementTests: WireUITestCase {
5944
)
6045

6146
_ = try page.enterPasscode(passcode)
47+
6248
}
6349

6450
@MainActor
6551
func test_Account_Management_Update_Email_Reset_password() async throws {
52+
6653
let updatedUserDetails = UserGenerator.generateUniqueUserInfo()
6754

68-
do {
69-
let (_, teamOwner) = try await userHelper.registerUserAsTeamOwner()
70-
let ownerAccessToken = try await userHelper.fetchAccessToken(
71-
email: teamOwner.email,
72-
password: teamOwner.password
73-
)
74-
let teamID = try XCTUnwrap(teamOwner.teamID)
75-
76-
let (_, userInfo) = try await userHelper.registerUsersAsTeamMember(
77-
ownerAccessToken: ownerAccessToken,
78-
teamID: teamID
79-
)
80-
teamMember = userInfo
81-
} catch {
82-
throw XCTSkip("error in setup of test: \(error)")
83-
}
84-
85-
let verifyEmailPage = try app.loginUser(email: teamMember.email, password: teamMember.password)
86-
.acceptPopupOnTeamMemberSetup(with: self)
87-
.setUsername(teamMember.username)
55+
let user = try await userHelper.createPersonalUser()
56+
57+
let verifyEmailPage = try app.loginUser(email: user.email, password: user.password)
58+
.acceptPopup(with: self)
8859
.openSettings()
8960
.openAccountSettings()
9061
.tapEmailField()

wire-ios/WireUITests/BackupRestoreHistoryTests.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ final class BackupRestoreHistoryTests: WireUITestCase {
3838

3939
for _ in 0 ..< countOfMembers {
4040
let (qualifiedId, teamMember) = try await userHelper.registerUsersAsTeamMember(
41-
ownerAccessToken: ownerAccessToken,
41+
ownerAccessToken: ownerAccessToken.token,
4242
teamID: teamID
4343
)
4444
qualifiedIds.append(qualifiedId)
@@ -52,8 +52,7 @@ final class BackupRestoreHistoryTests: WireUITestCase {
5252
)
5353

5454
var activeConversationPage = try app.loginUser(email: teamOwner.email, password: teamOwner.password)
55-
.acceptPopupOnTeamMemberSetup(with: self)
56-
.setUsername(teamOwner.username)
55+
.acceptPopup(with: self)
5756
.openConversation()
5857
.sendMessage(messageFromOwner)
5958

wire-ios/WireUITests/Helper/UserHelper.swift

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -168,26 +168,37 @@ class UserHelper {
168168
)
169169

170170
teamOwner.teamID = teamID
171-
createdUsers.append(teamOwner)
172-
return (qualifiedID: qualifiedId, owner: teamOwner)
173-
}
174171

175-
func fetchAccessToken(email: String, password: String) async throws -> String {
172+
// Get activation code
176173
let (activationCode, activationKey) = try await authenticationAPI.getActivationCode(
177-
forEmail: email,
174+
forEmail: teamOwner.email,
178175
basicAuth: basicAuth()
179176
)
180177

181-
try await authenticationAPI.activateUser(email: email, key: activationKey, code: activationCode)
178+
// Activate user
179+
try await authenticationAPI.activateUser(email: teamOwner.email, key: activationKey, code: activationCode)
180+
181+
authenticationManager.accessToken = try await fetchAccessToken(
182+
email: teamOwner.email,
183+
password: teamOwner.password
184+
)
182185

186+
// Set username
187+
try await selfUserAPI.updateHandle(handle: teamOwner.username)
188+
189+
createdUsers.append(teamOwner)
190+
return (qualifiedID: qualifiedId, owner: teamOwner)
191+
}
192+
193+
func fetchAccessToken(email: String, password: String) async throws -> AccessToken {
183194
let (_, accessToken) = try await authenticationAPI.login(
184195
email: email,
185196
password: password,
186197
verificationCode: nil,
187198
label: nil
188199
)
189200

190-
return accessToken.token
201+
return accessToken
191202
}
192203

193204
func registerUsersAsTeamMember(

wire-ios/WireUITests/Pages/SettingsPage.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class SettingsPage: PageModel {
3838
}
3939

4040
func openAccountSettings() throws -> AccountSettingsPage {
41+
XCTAssertTrue(accountSettingsMenu.waitForExistence(timeout: 3))
4142
accountSettingsMenu.tap()
4243
return try AccountSettingsPage()
4344
}

wire-ios/WireUITests/TeamManageTests.swift

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,16 @@ final class TeamManageTests: WireUITestCase {
2525
func test_Migrate_PersonalUserToTeam() async throws {
2626
let user = try await userHelper.createPersonalUser()
2727

28-
let firstTimePage = try app.loginUser(email: user.email, password: user.password)
29-
var userProfilePage = try firstTimePage.acceptPopup(with: self)
28+
let conversationPage = try app.loginUser(email: user.email, password: user.password)
29+
.acceptPopup(with: self)
3030
.openUserAccountPageForUser(with: user.name)
31-
32-
let conversationPage = try userProfilePage
3331
.tapCreateTeamButton()
3432
.tapContinue()
3533
.typeTeamNameAndContinue(user.teamName)
3634
.acceptTheConfirmationAndContinue()
3735
.tapBackToWireButton()
3836

39-
userProfilePage = try conversationPage.openUserAccountPageForUser(with: user.name)
37+
let userProfilePage = try conversationPage.openUserAccountPageForUser(with: user.name)
4038

4139
let teamName = try XCTUnwrap(userProfilePage.getTeamName())
4240
XCTAssertEqual(teamName, user.teamName, "Team name didn't match expected value \(user.teamName)")
@@ -93,20 +91,18 @@ final class TeamManageTests: WireUITestCase {
9391
)
9492

9593
let (_, teamMember1) = try await userHelper.registerUsersAsTeamMember(
96-
ownerAccessToken: ownerAccessToken,
94+
ownerAccessToken: ownerAccessToken.token,
9795
teamID: teamID,
9896
)
9997

10098
let (_, teamMember2) = try await userHelper.registerUsersAsTeamMember(
101-
ownerAccessToken: ownerAccessToken,
99+
ownerAccessToken: ownerAccessToken.token,
102100
teamID: teamID,
103101
)
104102

105-
let firstTimePage = try app.loginUser(email: teamOwner.email, password: teamOwner.password)
106-
let conversationPage = try firstTimePage.acceptPopupOnTeamMemberSetup(with: self)
107-
.setUsername(teamOwner.username)
108-
109-
let activeConversationPage = try conversationPage.tapPlusButtonToCreateGroup()
103+
let activeConversationPage = try app.loginUser(email: teamOwner.email, password: teamOwner.password)
104+
.acceptPopup(with: self)
105+
.tapPlusButtonToCreateGroup()
110106
.tapNewGroupButton()
111107
.enterGroupName(groupName)
112108
.tapMemberCells(withLabelPrefixes: [teamMember1.name, teamMember2.name])
@@ -140,7 +136,7 @@ final class TeamManageTests: WireUITestCase {
140136

141137
for _ in 0 ..< countOfMembers {
142138
let (qualifiedId, teamMember) = try await userHelper.registerUsersAsTeamMember(
143-
ownerAccessToken: ownerAccessToken,
139+
ownerAccessToken: ownerAccessToken.token,
144140
teamID: teamID
145141
)
146142
qualifiedIds.append(qualifiedId)
@@ -154,8 +150,7 @@ final class TeamManageTests: WireUITestCase {
154150
)
155151

156152
let conversationDetailsPage = try app.loginUser(email: teamOwner.email, password: teamOwner.password)
157-
.acceptPopupOnTeamMemberSetup(with: self)
158-
.setUsername(teamOwner.username)
153+
.acceptPopup(with: self)
159154
.openConversation()
160155
.openConversationDetails()
161156
.openUserDetailsPage(byName: teamMembers[0].name)

0 commit comments

Comments
 (0)