Skip to content

Commit 9c2255e

Browse files
test: create test app function
1 parent a643720 commit 9c2255e

File tree

3 files changed

+47
-36
lines changed

3 files changed

+47
-36
lines changed

samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExampleUITests/FirebaseSwiftUIExampleUITests.swift

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@ final class FirebaseSwiftUIExampleUITests: XCTestCase {
2828

2929
override func tearDownWithError() throws {}
3030

31+
/// Creates and configures an XCUIApplication with default test launch arguments
32+
private func createTestApp(mfaEnabled: Bool = false) -> XCUIApplication {
33+
let app = XCUIApplication()
34+
app.launchArguments.append("--test-view-enabled")
35+
if mfaEnabled {
36+
app.launchArguments.append("--mfa-enabled")
37+
}
38+
return app
39+
}
40+
3141
private func dismissAlert(app: XCUIApplication) {
3242
if app.scrollViews.otherElements.buttons["Not Now"].waitForExistence(timeout: 2) {
3343
app.scrollViews.otherElements.buttons["Not Now"].tap()
@@ -83,8 +93,7 @@ final class FirebaseSwiftUIExampleUITests: XCTestCase {
8393

8494
@MainActor
8595
func testSignInButtonsExist() throws {
86-
let app = XCUIApplication()
87-
app.launchArguments.append("--test-view-enabled")
96+
let app = createTestApp()
8897
app.launch()
8998

9099
// Check for Twitter/X sign-in button
@@ -126,8 +135,7 @@ final class FirebaseSwiftUIExampleUITests: XCTestCase {
126135
try await createTestUser(email: email, password: password)
127136

128137
// Now launch the app - it connects to emulator but isn't signed in
129-
let app = XCUIApplication()
130-
app.launchArguments.append("--test-view-enabled")
138+
let app = createTestApp()
131139
app.launch()
132140

133141
let emailField = app.textFields["email-field"]
@@ -208,10 +216,9 @@ final class FirebaseSwiftUIExampleUITests: XCTestCase {
208216

209217
@MainActor
210218
func testCreateUserDisplaysSignedInView() throws {
211-
let app = XCUIApplication()
212219
let email = createEmail()
213220
let password = "qwerty321@"
214-
app.launchArguments.append("--test-view-enabled")
221+
let app = createTestApp()
215222
app.launch()
216223

217224
// Check the Views are updated

samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExampleUITests/MFAEnrolmentUITests.swift

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@ final class MFAEnrollmentUITests: XCTestCase {
2626
continueAfterFailure = false
2727
}
2828

29+
// MARK: - Helper Methods
30+
31+
/// Creates and configures an XCUIApplication with default test launch arguments
32+
private func createTestApp(mfaEnabled: Bool = true) -> XCUIApplication {
33+
let app = XCUIApplication()
34+
app.launchArguments.append("--test-view-enabled")
35+
if mfaEnabled {
36+
app.launchArguments.append("--mfa-enabled")
37+
}
38+
return app
39+
}
40+
2941
// MARK: - Helper Methods for Test Setup
3042

3143
/// Helper to create a test user in the emulator via REST API (avoids keychain issues)
@@ -144,9 +156,7 @@ final class MFAEnrollmentUITests: XCTestCase {
144156
// Create user in test runner before launching app
145157
try await createTestUser(email: email)
146158

147-
let app = XCUIApplication()
148-
app.launchArguments.append("--test-view-enabled")
149-
app.launchArguments.append("--mfa-enabled")
159+
let app = createTestApp()
150160
app.launch()
151161

152162
// Sign in first to access MFA management
@@ -178,9 +188,7 @@ final class MFAEnrollmentUITests: XCTestCase {
178188
// Create user in test runner before launching app
179189
try await createTestUser(email: email)
180190

181-
let app = XCUIApplication()
182-
app.launchArguments.append("--test-view-enabled")
183-
app.launchArguments.append("--mfa-enabled")
191+
let app = createTestApp()
184192
app.launch()
185193

186194
// Sign in and navigate to MFA management
@@ -215,9 +223,7 @@ final class MFAEnrollmentUITests: XCTestCase {
215223
// Create user in test runner before launching app
216224
try await createTestUser(email: email)
217225

218-
let app = XCUIApplication()
219-
app.launchArguments.append("--test-view-enabled")
220-
app.launchArguments.append("--mfa-enabled")
226+
let app = createTestApp()
221227
app.launch()
222228

223229
// Navigate to MFA enrollment
@@ -246,9 +252,7 @@ final class MFAEnrollmentUITests: XCTestCase {
246252
// Create user in test runner before launching app
247253
try await createTestUser(email: email)
248254

249-
let app = XCUIApplication()
250-
app.launchArguments.append("--test-view-enabled")
251-
app.launchArguments.append("--mfa-enabled")
255+
let app = createTestApp()
252256
app.launch()
253257

254258
// Navigate to MFA enrollment
@@ -285,9 +289,7 @@ final class MFAEnrollmentUITests: XCTestCase {
285289
let email = createEmail()
286290
try await createTestUser(email: email, verifyEmail: true)
287291

288-
let app = XCUIApplication()
289-
app.launchArguments.append("--test-view-enabled")
290-
app.launchArguments.append("--mfa-enabled")
292+
let app = createTestApp()
291293
app.launch()
292294

293295
// 2) Sign in to reach SignedInView
@@ -386,9 +388,7 @@ final class MFAEnrollmentUITests: XCTestCase {
386388
// Create user in test runner before launching app (with email verification)
387389
try await createTestUser(email: email, verifyEmail: true)
388390

389-
let app = XCUIApplication()
390-
app.launchArguments.append("--test-view-enabled")
391-
app.launchArguments.append("--mfa-enabled")
391+
let app = createTestApp()
392392
app.launch()
393393

394394
// Navigate to MFA enrollment and select TOTP
@@ -447,9 +447,7 @@ final class MFAEnrollmentUITests: XCTestCase {
447447
// Create user in test runner before launching app
448448
try await createTestUser(email: email)
449449

450-
let app = XCUIApplication()
451-
app.launchArguments.append("--test-view-enabled")
452-
app.launchArguments.append("--mfa-enabled")
450+
let app = createTestApp()
453451
app.launch()
454452

455453
// Navigate to MFA enrollment
@@ -478,9 +476,7 @@ final class MFAEnrollmentUITests: XCTestCase {
478476
// Create user in test runner before launching app
479477
try await createTestUser(email: email)
480478

481-
let app = XCUIApplication()
482-
app.launchArguments.append("--test-view-enabled")
483-
app.launchArguments.append("--mfa-enabled")
479+
let app = createTestApp()
484480
app.launch()
485481

486482
// Navigate to MFA enrollment
@@ -510,9 +506,7 @@ final class MFAEnrollmentUITests: XCTestCase {
510506
// Create user in test runner before launching app
511507
try await createTestUser(email: email)
512508

513-
let app = XCUIApplication()
514-
app.launchArguments.append("--test-view-enabled")
515-
app.launchArguments.append("--mfa-enabled")
509+
let app = createTestApp()
516510
app.launch()
517511

518512
// Sign in and navigate to MFA management

samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExampleUITests/MFAResolutionUITests.swift

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,25 @@ final class MFAResolutionUITests: XCTestCase {
3232
continueAfterFailure = false
3333
}
3434

35+
// MARK: - Helper Methods
36+
37+
/// Creates and configures an XCUIApplication with default test launch arguments
38+
private func createTestApp(mfaEnabled: Bool = true) -> XCUIApplication {
39+
let app = XCUIApplication()
40+
app.launchArguments.append("--test-view-enabled")
41+
if mfaEnabled {
42+
app.launchArguments.append("--mfa-enabled")
43+
}
44+
return app
45+
}
46+
3547
// MARK: - MFA Resolution UI Tests
3648

3749
// MARK: - Complete MFA Resolution Flow
3850

3951
@MainActor
4052
func testCompleteMFAResolutionFlowWithAPIEnrollment() async throws {
41-
let app = XCUIApplication()
42-
app.launchArguments.append("--test-view-enabled")
43-
app.launchArguments.append("--mfa-enabled")
53+
let app = createTestApp()
4454
app.launch()
4555

4656
let email = createEmail()

0 commit comments

Comments
 (0)