Swift Testing for Unit Tests PART 1 (#5119)

* migrated a lot of unit tests to Swift Testing and added a new implementation for deferred fulfillment

more tests migration

Cleaned the code manually to establish some good patterns

more code improvements

some more code improvements

removed empty tests

update project

* more pr suggestions and cleanups

* removed the TestSetup pattern

* fixing claude not reusing tests

* pr suggestion + added indent rule to swiftformat so that we can prevent AIs to change that
This commit is contained in:
Mauro
2026-02-19 16:20:47 +01:00
committed by GitHub
parent fc03e05697
commit 7982aef855
118 changed files with 4630 additions and 4129 deletions
@@ -7,23 +7,16 @@
//
@testable import ElementX
import XCTest
import Testing
@MainActor
class AnalyticsSettingsScreenViewModelTests: XCTestCase {
@Suite
final class AnalyticsSettingsScreenViewModelTests {
private var appSettings: AppSettings!
private var viewModel: AnalyticsSettingsScreenViewModelProtocol!
private var context: AnalyticsSettingsScreenViewModelType.Context!
override func setUp() {
AppSettings.resetAllSettings()
}
override func tearDown() {
AppSettings.resetAllSettings()
}
@MainActor override func setUpWithError() throws {
init() {
AppSettings.resetAllSettings()
appSettings = AppSettings()
let analyticsClient = AnalyticsClientMock()
@@ -35,20 +28,27 @@ class AnalyticsSettingsScreenViewModelTests: XCTestCase {
analytics: ServiceLocator.shared.analytics)
context = viewModel.context
}
func testInitialState() {
XCTAssertFalse(context.enableAnalytics)
deinit {
AppSettings.resetAllSettings()
}
func testOptIn() {
@Test
func initialState() {
#expect(!context.enableAnalytics)
}
@Test
func optIn() {
appSettings.analyticsConsentState = .optedOut
context.send(viewAction: .toggleAnalytics)
XCTAssertTrue(context.enableAnalytics)
#expect(context.enableAnalytics)
}
func testOptOut() {
@Test
func optOut() {
appSettings.analyticsConsentState = .optedIn
context.send(viewAction: .toggleAnalytics)
XCTAssertFalse(context.enableAnalytics)
#expect(!context.enableAnalytics)
}
}