* Initial plan
* Migrate 3 test files from XCTest to Swift Testing
- MediaUploadPreviewScreenViewModelTests: @MainActor @Suite struct with init(),
BundleFinder class for Bundle(for:), mutating test/setup functions,
[self] capture replacing [weak self] in closures
- NotificationManagerTests: @MainActor @Suite final class with init()/deinit,
expectation/fulfillment(of:) replaced with confirmation(...), test_ prefix stripped
- NotificationSettingsScreenViewModelTests: @MainActor @Suite struct with
init() throws, non-optional stored properties, test prefix stripped
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Migrate 3 XCTest files to Swift Testing
- NotificationSettingsEditScreenViewModelTests: @MainActor @Suite struct with init() throws, mutating test methods
- TimelineViewModelTests: @MainActor @Suite final class with init() async throws + deinit
- AttributedStringBuilderTests: @Suite struct with init() async throws
All XCT assertions replaced with #expect/#require/Issue.record
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Migrate 4 test files from XCTest to Swift Testing
- TimelineMediaPreviewViewModelTests: @Suite struct, mutating @Test funcs,
testLoadingItem renamed to loadingItem (called internally by other tests)
- ServerConfirmationScreenViewModelTests: @Suite final class with init()/deinit
- CompletionSuggestionServiceTests: @Suite struct with init()
- RoomFlowCoordinatorTests: @Suite final class with deinit
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Migrate 4 test files from XCTest to Swift Testing
- VoiceMessageRecorderTests: @Suite struct with init() async throws,
added BundleFinder class for Bundle lookup, migrated all assertions
- SpaceScreenViewModelTests: @Suite struct, private mutating setupViewModel,
all test funcs mutating, XCTestExpectation → confirmation
- RoomNotificationSettingsScreenViewModelTests: @Suite struct with
init() throws, cancellable tests marked mutating
- JoinRoomScreenViewModelTests: @Suite final class with init()/deinit,
XCTestExpectation → confirmation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Migrate 6 test files from XCTestCase to Swift Testing
Co-authored-by: pixlwave <6060466+pixlwave@users.noreply.github.com>
* Fix trailing blank line in RoomPollsHistoryScreenViewModelTests
Co-authored-by: pixlwave <6060466+pixlwave@users.noreply.github.com>
* Migrate 3 test files from XCTest to Swift Testing
- MediaUploadingPreprocessorTests: @Suite final class with init()/deinit,
removed executionTimeAllowance, XCTAssertEqual(accuracy:) → abs(Double)
- SecurityAndPrivacyScreenViewModelTests: @MainActor @Suite final class,
5 expectation+fulfillment → await confirmation(...)
- CreateRoomViewModelTests: @MainActor @Suite final class,
4 expectation+fulfillment → await confirmation(...)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Migrate RoomScreenViewModelTests and RoomDetailsScreenViewModelTests to Swift Testing
- Replace XCTest with Testing framework
- RoomScreenViewModelTests: final class with init() async throws + deinit
- RoomDetailsScreenViewModelTests: struct with init() and mutating funcs
- Convert XCT assertions to #expect / Issue.record
- Convert XCTestExpectation patterns to confirmation { confirm in }
- Strip 'test' prefix from all test function names
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Migrate ComposerToolbarViewModelTests from XCTest to Swift Testing
- Replace import XCTest with import Testing
- Convert XCTestCase class to @MainActor @Suite final class
- Replace setUp()/tearDown() with init()/deinit
- Strip 'test' prefix from all 41 test method names and add @Test
- Replace XCTAssert* with #expect()/#require()
- Replace try XCTUnwrap() with try #require()
- Convert expectation+wait patterns to deferFulfillment with PassthroughSubject
- Convert isInverted expectation to boolean flag checked after await
- Use deferFulfillment on $viewState for state-transition tests
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address comments with Copilot.
* Fix the failing tests.
* Fixed flaky tests (#5137)
resolved flaky tests
* Tweaks and fixes.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: pixlwave <6060466+pixlwave@users.noreply.github.com>
Co-authored-by: Doug <douglase@element.io>
Co-authored-by: Mauro <34335419+Velin92@users.noreply.github.com>
* Move the AuthenticationStartScreen into the Authentication directory.
* Commit the updated Sentry license.
No idea why they dropped the 2024 🤷♂️
* Use StateStoreViewModelV2 in BugReportScreen.
* Use StateStoreViewModelV2 in UserDetailsEditScreen.
* Use StateStoreViewModelV2 in NotificationSettingsScreen.
* Use StateStoreViewModelV2 in NotificationSettingsEditScreen.
* Use StateStoreViewModelV2 in LegalInformationScreen.
* Use StateStoreViewModelV2 in LogViewerScreen.
* Use StateStoreViewModelV2 in AnalyticsSettingsScreen.
* Rename AdvancedSettingsScreen directory.
* Use StateStoreViewModelV2 in EncryptionResetScreen.
* Use StateStoreViewModelV2 in EncryptionResetPasswordScreen.
* Use StateStoreViewModelV2 in SecureBackup…Screens.
* Use StateStoreViewModelV2 in LoginScreen.
Seems this one was ignored waiting on the fulfillment transitionValues implementation.
* Use StateStoreViewModelV2 in DeactivateAccountScreen.
* Move DeactivateAccountScreen into the Settings directory.
* Fix flakey emoji provider tests
* Fix flakey RoomScreenViewModel tests
* Fix flakey HomeScreenViewModel tests
* Fix flakey RoomMemberListScreen tests, problem with bindings getting overriden and deferFulfillment cancellable not getting stored
* Fix flakey RoomNotificationSettingsScreen tests and crashes
* Fix flakey RoomMemberDetailsScreen tests
* Deprecate old `deferFulfillment` and `nextViewState` methods
* Convert more files to the new `deferFulfillment`
* Converted the rest of the tests to the new deferFulfillment
* Removed now unused `nextViewState` and `deferFulfillment`
* Remove automatic retries from unit tests
* Reset analytics flag after running unit tests
* Address PR comments
* Introduce a new `deferFulfillment(publisher, keyPath, transitionValues)` method and use it where appropiate