diff --git a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-5-iPad-18-1-en-GB.UI.png b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-5-iPad-18-1-en-GB.UI.png index c22af0ec3c..e2927f3e9d 100644 --- a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-5-iPad-18-1-en-GB.UI.png +++ b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-5-iPad-18-1-en-GB.UI.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7775d30af00a992d473ae2691765427442f8a793a3a6375d65188b928c29c9ac -size 116678 +oid sha256:0635788a5a2d6cffb1d4e17245c3931a8f5bf5af59e9412827e5c223b0af9861 +size 125291 diff --git a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-5-iPhone-18-1-en-GB.UI.png b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-5-iPhone-18-1-en-GB.UI.png index b124427ca2..5bbf91fca0 100644 --- a/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-5-iPhone-18-1-en-GB.UI.png +++ b/UITests/Sources/__Snapshots__/Application/roomRolesAndPermissionsFlow-5-iPhone-18-1-en-GB.UI.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:92860ccd5b1d1bf4127d26cd1c5aeb5f9868566b5d078661eb0865c6ca48b1d5 -size 130468 +oid sha256:daf0d5eac16eaddd33b6cfcc5e4395c6331cc714c19482f8701e2852d532c72a +size 142645 diff --git a/UnitTests/Sources/UserIndicatorControllerTests.swift b/UnitTests/Sources/UserIndicatorControllerTests.swift index f50c5b0801..9c3ddc7273 100644 --- a/UnitTests/Sources/UserIndicatorControllerTests.swift +++ b/UnitTests/Sources/UserIndicatorControllerTests.swift @@ -42,7 +42,7 @@ class UserIndicatorControllerTests: XCTestCase { XCTAssertEqual(indicatorController.indicatorQueue.count, 0) } - func testChainedPresentation() { + func testChainedPresentation() async throws { indicatorController.minimumDisplayDuration = 0.25 indicatorController.nonPersistentDisplayDuration = 2.5 @@ -52,18 +52,17 @@ class UserIndicatorControllerTests: XCTestCase { XCTAssertEqual(indicatorController.activeIndicator?.id, "Third") - let expectation = expectation(description: "Waiting for last indicator to be dismissed") - DispatchQueue.main.asyncAfter(deadline: .now() + indicatorController.nonPersistentDisplayDuration) { - expectation.fulfill() + let fulfillment = deferFulfillment(indicatorController.$activeIndicator, message: "Waiting for last indicator to be dismissed") { indicator in + indicator?.id == "Second" } - waitForExpectations(timeout: 5.0) + try await fulfillment.fulfill() XCTAssertEqual(indicatorController.indicatorQueue.count, 2) XCTAssertEqual(indicatorController.activeIndicator?.id, "Second") } - func testMinimumDisplayDuration() { + func testMinimumDisplayDuration() async throws { indicatorController.minimumDisplayDuration = 0.25 indicatorController.nonPersistentDisplayDuration = 2.5 @@ -71,28 +70,26 @@ class UserIndicatorControllerTests: XCTestCase { indicatorController.submitIndicator(.init(id: "Second", title: "")) indicatorController.submitIndicator(.init(id: "Third", title: "")) - indicatorController.retractIndicatorWithId("Second") - XCTAssertEqual(indicatorController.indicatorQueue.count, 3) - let dismissalExpectation = expectation(description: "Waiting for minimum display duration to pass") - DispatchQueue.main.asyncAfter(deadline: .now() + indicatorController.minimumDisplayDuration) { - dismissalExpectation.fulfill() + var fulfillment = deferFulfillment(indicatorController.$activeIndicator, message: "Waiting for minimum display duration to pass") { indicator in + indicator?.id == "First" } - waitForExpectations(timeout: 5.0) + indicatorController.retractIndicatorWithId("Second") - XCTAssertEqual(indicatorController.indicatorQueue.count, 2) - XCTAssertEqual(indicatorController.activeIndicator?.id, "Third") + try await fulfillment.fulfill() - let dismissalExpectation2 = expectation(description: "Waiting for last indicator to be dismissed") - DispatchQueue.main.asyncAfter(deadline: .now() + indicatorController.nonPersistentDisplayDuration) { - dismissalExpectation2.fulfill() + XCTAssertEqual(indicatorController.indicatorQueue.count, 1) + XCTAssertEqual(indicatorController.activeIndicator?.id, "First") + + fulfillment = deferFulfillment(indicatorController.$activeIndicator, message: "Waiting for last indicator to be dismissed") { indicator in + indicator == nil } - waitForExpectations(timeout: 5.0) + try await fulfillment.fulfill() - XCTAssertEqual(indicatorController.indicatorQueue.count, 1) - XCTAssertEqual(indicatorController.activeIndicator?.id, "First") + XCTAssertEqual(indicatorController.indicatorQueue.count, 0) + XCTAssertNil(indicatorController.activeIndicator) } }