From e1c44ead571f1ac66e1bda99e89bd81d2726b65d Mon Sep 17 00:00:00 2001 From: Doug Date: Wed, 25 Sep 2024 14:52:20 +0100 Subject: [PATCH 1/6] Wait longer on authentication flow tests. --- UnitTests/Sources/UserSessionFlowCoordinatorTests.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UnitTests/Sources/UserSessionFlowCoordinatorTests.swift b/UnitTests/Sources/UserSessionFlowCoordinatorTests.swift index 24e482b76e..83f79dfa92 100644 --- a/UnitTests/Sources/UserSessionFlowCoordinatorTests.swift +++ b/UnitTests/Sources/UserSessionFlowCoordinatorTests.swift @@ -246,7 +246,7 @@ class UserSessionFlowCoordinatorTests: XCTestCase { private func process(route: AppRoute, expectedState: UserSessionFlowCoordinatorStateMachine.State) async throws { // Sometimes the state machine's state changes before the coordinators have updated the stack. - let delayedPublisher = userSessionFlowCoordinator.statePublisher.delay(for: .milliseconds(10), scheduler: DispatchQueue.main) + let delayedPublisher = userSessionFlowCoordinator.statePublisher.delay(for: .milliseconds(100), scheduler: DispatchQueue.main) let deferred = deferFulfillment(delayedPublisher) { $0 == expectedState } userSessionFlowCoordinator.handleAppRoute(route, animated: true) From 0fc143f7b66e8888e08e1859ba610b5e21a94b3e Mon Sep 17 00:00:00 2001 From: Doug Date: Wed, 25 Sep 2024 17:21:25 +0100 Subject: [PATCH 2/6] Move default perceptualPrecision value into the snapshot preferences. --- ElementX/Sources/Other/Extensions/Snapshotting.swift | 4 ++-- PreviewTests/Sources/PreviewTests.swift | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ElementX/Sources/Other/Extensions/Snapshotting.swift b/ElementX/Sources/Other/Extensions/Snapshotting.swift index 77a968a15f..7de5ca95bb 100644 --- a/ElementX/Sources/Other/Extensions/Snapshotting.swift +++ b/ElementX/Sources/Other/Extensions/Snapshotting.swift @@ -33,7 +33,7 @@ public struct SnapshotPrecisionPreferenceKey: PreferenceKey { } public struct SnapshotPerceptualPrecisionPreferenceKey: PreferenceKey { - public static var defaultValue: Float = 1.0 + public static var defaultValue: Float = 0.98 public static func reduce(value: inout Float, nextValue: () -> Float) { value = nextValue() @@ -50,7 +50,7 @@ public extension SwiftUI.View { /// - precision: The percentage of pixels that must match. /// - perceptualPrecision: The percentage a pixel must match the source pixel to be considered a match. 98-99% mimics the precision of the human eye. @inlinable - func snapshotPreferences(delay: TimeInterval = .zero, precision: Float = 1.0, perceptualPrecision: Float = 1.0) -> some SwiftUI.View { + func snapshotPreferences(delay: TimeInterval = .zero, precision: Float = 1.0, perceptualPrecision: Float = 0.98) -> some SwiftUI.View { preference(key: SnapshotDelayPreferenceKey.self, value: delay) .preference(key: SnapshotPrecisionPreferenceKey.self, value: precision) .preference(key: SnapshotPerceptualPrecisionPreferenceKey.self, value: perceptualPrecision) diff --git a/PreviewTests/Sources/PreviewTests.swift b/PreviewTests/Sources/PreviewTests.swift index 4d7148508d..7b966becc7 100644 --- a/PreviewTests/Sources/PreviewTests.swift +++ b/PreviewTests/Sources/PreviewTests.swift @@ -58,7 +58,7 @@ class PreviewTests: XCTestCase { device.safeArea = .one // Ignore specific device display scale let traits = UITraitCollection(displayScale: 2.0) - if let failure = assertSnapshots(matching: AnyView(preview.content), + if let failure = assertSnapshots(matching: preview.content, name: preview.displayName, isScreen: preview.layout == .device, device: device, @@ -205,7 +205,7 @@ private extension Snapshotting where Value: SwiftUI.View, Format == UIImage { private extension Diffing where Value == UIImage { static func prefireImage(precision: @escaping () -> Float, perceptualPrecision: @escaping () -> Float, scale: CGFloat?) -> Diffing { - lazy var originalDiffing = Diffing.image(precision: precision(), perceptualPrecision: 0.98, scale: scale) + lazy var originalDiffing = Diffing.image(precision: precision(), perceptualPrecision: perceptualPrecision(), scale: scale) return Diffing(toData: { originalDiffing.toData($0) }, fromData: { originalDiffing.fromData($0) }, diff: { originalDiffing.diff($0, $1) }) From e51a1031d0b8b44e9bf22d6e545246c1409ead04 Mon Sep 17 00:00:00 2001 From: Doug Date: Thu, 26 Sep 2024 10:49:37 +0100 Subject: [PATCH 3/6] Delay snapshots *before* setting up the test. --- PreviewTests/Sources/PreviewTests.swift | 87 ++++++++++--------- ...ojiPickerScreen-iPhone-16-en-GB.Screen.png | 4 +- ...jiPickerScreen-iPhone-16-pseudo.Screen.png | 4 +- ...t_globalSearchScreen-iPhone-16-en-GB.1.png | 4 +- ..._globalSearchScreen-iPhone-16-pseudo.1.png | 4 +- .../test_homeScreen-iPhone-16-en-GB.Empty.png | 4 +- ...test_homeScreen-iPhone-16-en-GB.Loaded.png | 4 +- ...test_homeScreen-iPhone-16-pseudo.Empty.png | 4 +- ...est_homeScreen-iPhone-16-pseudo.Loaded.png | 4 +- ...olderScreen-iPhone-16-en-GB.Split-View.png | 4 +- ...lderScreen-iPhone-16-pseudo.Split-View.png | 4 +- ...ailsScreen-iPhone-16-en-GB.Simple-Room.png | 4 +- ...ilsScreen-iPhone-16-pseudo.Simple-Room.png | 4 +- ...roomDirectorySearchScreen-iPad-en-GB.1.png | 4 +- ...oomDirectorySearchScreen-iPad-pseudo.1.png | 4 +- ...irectorySearchScreen-iPhone-16-en-GB.1.png | 4 +- ...rectorySearchScreen-iPhone-16-pseudo.1.png | 4 +- ...istScreen-iPhone-16-en-GB.Admin-Banned.png | 4 +- ...een-iPhone-16-en-GB.Admin-Empty-Banned.png | 4 +- ...stScreen-iPhone-16-en-GB.Admin-Members.png | 4 +- ...bersListScreen-iPhone-16-en-GB.Invites.png | 4 +- ...mbersListScreen-iPhone-16-en-GB.Member.png | 4 +- ...stScreen-iPhone-16-pseudo.Admin-Banned.png | 4 +- ...en-iPhone-16-pseudo.Admin-Empty-Banned.png | 4 +- ...tScreen-iPhone-16-pseudo.Admin-Members.png | 4 +- ...ersListScreen-iPhone-16-pseudo.Invites.png | 4 +- ...bersListScreen-iPhone-16-pseudo.Member.png | 4 +- .../test_settingsScreen-iPhone-16-en-GB.1.png | 4 +- ...test_settingsScreen-iPhone-16-pseudo.1.png | 4 +- ...erView-iPhone-16-en-GB.Pinned-messages.png | 4 +- ...rView-iPhone-16-pseudo.Pinned-messages.png | 4 +- ...imelineItemDebugView-iPhone-16-en-GB.1.png | 4 +- ...melineItemDebugView-iPhone-16-pseudo.1.png | 4 +- ...iceMessagePreviewComposer-iPad-en-GB.1.png | 4 +- ...ceMessagePreviewComposer-iPad-pseudo.1.png | 4 +- ...ssagePreviewComposer-iPhone-16-en-GB.1.png | 4 +- ...sagePreviewComposer-iPhone-16-pseudo.1.png | 4 +- 37 files changed, 120 insertions(+), 111 deletions(-) diff --git a/PreviewTests/Sources/PreviewTests.swift b/PreviewTests/Sources/PreviewTests.swift index 7b966becc7..5fd769481a 100644 --- a/PreviewTests/Sources/PreviewTests.swift +++ b/PreviewTests/Sources/PreviewTests.swift @@ -11,6 +11,7 @@ import XCTest @testable import ElementX @testable import SnapshotTesting +@MainActor class PreviewTests: XCTestCase { private let deviceConfig: ViewImageConfig = .iPhoneX private let simulatorDevice: String? = "iPhone14,6" // iPhone SE 3rd Generation @@ -50,6 +51,22 @@ class PreviewTests: XCTestCase { // MARK: - Snapshots func assertSnapshots(matching preview: _Preview, testName: String = #function) { + let preferences = SnapshotPreferences() + + let preferenceReadingView = preview.content + .onPreferenceChange(SnapshotDelayPreferenceKey.self) { preferences.delay = $0 } + .onPreferenceChange(SnapshotPrecisionPreferenceKey.self) { preferences.precision = $0 } + .onPreferenceChange(SnapshotPerceptualPrecisionPreferenceKey.self) { preferences.perceptualPrecision = $0 } + + // Render an image of the view in order to trigger the preference updates to occur. + let imageRenderer = ImageRenderer(content: preferenceReadingView) + _ = imageRenderer.uiImage + + // Delay the test now - a delay after creating the `snapshotView` results in the underlying view not getting updated for snapshotting. + if preferences.delay != .zero { + wait(for: preferences.delay) + } + for deviceName in snapshotDevices { guard var device = PreviewDevice(rawValue: deviceName).snapshotDevice() else { fatalError("Unknown device name: \(deviceName)") @@ -63,7 +80,8 @@ class PreviewTests: XCTestCase { isScreen: preview.layout == .device, device: device, testName: testName + deviceName + "-" + localeCode, - traits: traits) { + traits: traits, + preferences: preferences) { XCTFail(failure) } } @@ -85,19 +103,12 @@ class PreviewTests: XCTestCase { } private func assertSnapshots(matching view: AnyView, - name: String?, isScreen: Bool, + name: String?, + isScreen: Bool, device: ViewImageConfig, testName: String = #function, - traits: UITraitCollection = .init()) -> String? { - var delay: TimeInterval = 0 - var precision: Float = 1 - var perceptualPrecision: Float = 1 - - let view = view - .onPreferenceChange(SnapshotDelayPreferenceKey.self) { delay = $0 } - .onPreferenceChange(SnapshotPrecisionPreferenceKey.self) { precision = $0 } - .onPreferenceChange(SnapshotPerceptualPrecisionPreferenceKey.self) { perceptualPrecision = $0 } - + traits: UITraitCollection = .init(), + preferences: SnapshotPreferences) -> String? { let matchingView = isScreen ? AnyView(view) : AnyView(view .frame(width: device.size?.width) .fixedSize(horizontal: false, vertical: true) @@ -105,15 +116,27 @@ class PreviewTests: XCTestCase { return withSnapshotTesting(record: recordMode) { verifySnapshot(of: matchingView, - as: .prefireImage(precision: { precision }, - perceptualPrecision: { perceptualPrecision }, - duration: { delay }, + as: .prefireImage(preferences: preferences, layout: isScreen ? .device(config: device) : .sizeThatFits, traits: traits), named: name, testName: testName) } } + + private func wait(for duration: TimeInterval) { + let expectation = XCTestExpectation(description: "Wait") + DispatchQueue.main.asyncAfter(deadline: .now() + duration) { + expectation.fulfill() + } + _ = XCTWaiter.wait(for: [expectation], timeout: duration + 1) + } +} + +private class SnapshotPreferences { + var delay: TimeInterval = 0 + var precision: Float = 1 + var perceptualPrecision: Float = 1 } // MARK: - SnapshotTesting + Extensions @@ -144,9 +167,7 @@ private extension PreviewDevice { private extension Snapshotting where Value: SwiftUI.View, Format == UIImage { static func prefireImage(drawHierarchyInKeyWindow: Bool = false, - precision: @escaping () -> Float, - perceptualPrecision: @escaping () -> Float, - duration: @escaping () -> TimeInterval, + preferences: SnapshotPreferences, layout: SwiftUISnapshotLayout = .sizeThatFits, traits: UITraitCollection = .init()) -> Snapshotting { let config: ViewImageConfig @@ -165,7 +186,7 @@ private extension Snapshotting where Value: SwiftUI.View, Format == UIImage { config = .init(safeArea: .one, size: size, traits: traits) } - return SimplySnapshotting(pathExtension: "png", diffing: .prefireImage(precision: precision, perceptualPrecision: perceptualPrecision, scale: traits.displayScale)) + return SimplySnapshotting(pathExtension: "png", diffing: .prefireImage(preferences: preferences, scale: traits.displayScale)) .asyncPullback { view in var config = config @@ -181,31 +202,19 @@ private extension Snapshotting where Value: SwiftUI.View, Format == UIImage { controller = hostingController } - - return Async { callback in - let strategy = snapshotView(config: config, - drawHierarchyInKeyWindow: drawHierarchyInKeyWindow, - traits: traits, - view: controller.view, - viewController: controller) - - let duration = duration() - if duration != .zero { - let expectation = XCTestExpectation(description: "Wait") - DispatchQueue.main.asyncAfter(deadline: .now() + duration) { - expectation.fulfill() - } - _ = XCTWaiter.wait(for: [expectation], timeout: duration + 1) - } - strategy.run(callback) - } + + return snapshotView(config: config, + drawHierarchyInKeyWindow: drawHierarchyInKeyWindow, + traits: traits, + view: controller.view, + viewController: controller) } } } private extension Diffing where Value == UIImage { - static func prefireImage(precision: @escaping () -> Float, perceptualPrecision: @escaping () -> Float, scale: CGFloat?) -> Diffing { - lazy var originalDiffing = Diffing.image(precision: precision(), perceptualPrecision: perceptualPrecision(), scale: scale) + static func prefireImage(preferences: SnapshotPreferences, scale: CGFloat?) -> Diffing { + lazy var originalDiffing = Diffing.image(precision: preferences.precision, perceptualPrecision: preferences.perceptualPrecision, scale: scale) return Diffing(toData: { originalDiffing.toData($0) }, fromData: { originalDiffing.fromData($0) }, diff: { originalDiffing.diff($0, $1) }) diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_emojiPickerScreen-iPhone-16-en-GB.Screen.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_emojiPickerScreen-iPhone-16-en-GB.Screen.png index 670299a350..afcfe3ebff 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_emojiPickerScreen-iPhone-16-en-GB.Screen.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_emojiPickerScreen-iPhone-16-en-GB.Screen.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b3181bdcf7d91c89da8af03b325c9ca5880c3e0a97c67bfb74da7c0c22048b19 -size 36664 +oid sha256:719a9f2d4a69ff30f6eedf146bb6cef2e79e4a6dabcdcc10a8429435531eb75d +size 362302 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_emojiPickerScreen-iPhone-16-pseudo.Screen.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_emojiPickerScreen-iPhone-16-pseudo.Screen.png index 35e93f0c2b..680877471f 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_emojiPickerScreen-iPhone-16-pseudo.Screen.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_emojiPickerScreen-iPhone-16-pseudo.Screen.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0320762f030bc3ceddd164fb0fff5ad4743bbf2667039921a15a59bb2366b0a5 -size 38589 +oid sha256:7bd897cd6531b60437deda1a94f0a87c21e5ea33fdaf483eb699e99a4fd44908 +size 365397 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_globalSearchScreen-iPhone-16-en-GB.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_globalSearchScreen-iPhone-16-en-GB.1.png index d2e5314392..f80889fefc 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_globalSearchScreen-iPhone-16-en-GB.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_globalSearchScreen-iPhone-16-en-GB.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:13e909870235a90145b7fc49967383e92a0bf45917f020cc793dcbde87fe2bfb -size 91414 +oid sha256:656ab8534b3b28a11a09b7ee3bd735de4f9173687006d8346093ec8fa70caf54 +size 88511 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_globalSearchScreen-iPhone-16-pseudo.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_globalSearchScreen-iPhone-16-pseudo.1.png index 7dab18b499..84e27fc201 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_globalSearchScreen-iPhone-16-pseudo.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_globalSearchScreen-iPhone-16-pseudo.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a80a970d60708545d81c9c35be059484be1a6f686a53b3eafbdb831f5ef6729d -size 89319 +oid sha256:6dece45267d9514a73241f045de87eb76d7d87ccc236aed3d114ccfbe9507d74 +size 88837 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-en-GB.Empty.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-en-GB.Empty.png index 3fe0b247b1..6626ad8098 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-en-GB.Empty.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-en-GB.Empty.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6136573195a4b3389a9d06966e5f0e9a400d6ea247b2ff5210dcb0e139a957b5 -size 51143 +oid sha256:d96438c624f5b1bcd690c82bacb133e08a830b0ee1a07f888fe845a60bfa1e6a +size 50998 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-en-GB.Loaded.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-en-GB.Loaded.png index 8fb9ed0f80..45e17c03c9 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-en-GB.Loaded.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-en-GB.Loaded.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fca553c7fbb54deea774d261146a597ea426e00529a7a7cd7d64efabd8b7a1e6 -size 178424 +oid sha256:5090cca7e3b49782ad27006c8c6980f264f4e493fd8fa2b35c0a1ee6164b0b3a +size 178329 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-pseudo.Empty.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-pseudo.Empty.png index 7a3b62ec10..4f14f5bfea 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-pseudo.Empty.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-pseudo.Empty.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:42b66da0630c9f320e7e1dc1b19261c647c5758e21248f61df5f134fc41e6201 -size 51984 +oid sha256:4c06f6941486a88c19d4b67d7b0afa91678649a535a30b696891fbb0815ac76b +size 61299 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-pseudo.Loaded.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-pseudo.Loaded.png index d70680ecdb..4499b658e6 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-pseudo.Loaded.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_homeScreen-iPhone-16-pseudo.Loaded.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c595691dab7881f5dfc46a5051d23fdcf7fb9684c7f1fbe445829fff02b9bbdd -size 181004 +oid sha256:806e066b3632f2a73012c2bea9993f2f5026304235fd5ea072321a5f3db7e4f3 +size 180923 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_placeholderScreen-iPhone-16-en-GB.Split-View.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_placeholderScreen-iPhone-16-en-GB.Split-View.png index 3de9e4f423..c6c657b573 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_placeholderScreen-iPhone-16-en-GB.Split-View.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_placeholderScreen-iPhone-16-en-GB.Split-View.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:305b1b6a9e5816174b64fd2819b79a7489405b0f7eef86d47b4471f6a117ba99 -size 39207 +oid sha256:0d7e551b2dfbec476b1164b49c8b800ab88f2fb3bf0e204f7fae38323ede91b4 +size 17360 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_placeholderScreen-iPhone-16-pseudo.Split-View.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_placeholderScreen-iPhone-16-pseudo.Split-View.png index 3de9e4f423..c6c657b573 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_placeholderScreen-iPhone-16-pseudo.Split-View.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_placeholderScreen-iPhone-16-pseudo.Split-View.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:305b1b6a9e5816174b64fd2819b79a7489405b0f7eef86d47b4471f6a117ba99 -size 39207 +oid sha256:0d7e551b2dfbec476b1164b49c8b800ab88f2fb3bf0e204f7fae38323ede91b4 +size 17360 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDetailsScreen-iPhone-16-en-GB.Simple-Room.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDetailsScreen-iPhone-16-en-GB.Simple-Room.png index 0f13aae409..abff795aad 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDetailsScreen-iPhone-16-en-GB.Simple-Room.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDetailsScreen-iPhone-16-en-GB.Simple-Room.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a4a39dd36ae824a1de6f05a815e3456f587c29f9b38e8241687d39af5de34aef -size 84853 +oid sha256:1ff2b602ea177f6324527e5531720e718c36e922b7606c0bc67f8c5f8b6a9d23 +size 93986 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDetailsScreen-iPhone-16-pseudo.Simple-Room.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDetailsScreen-iPhone-16-pseudo.Simple-Room.png index 01de4402c8..6fa8cf6278 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDetailsScreen-iPhone-16-pseudo.Simple-Room.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDetailsScreen-iPhone-16-pseudo.Simple-Room.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5c9805e5c3f1fc3cf5182ba6dbe812bf85835c62b1caedeb2b8b9b96773e8c21 -size 106502 +oid sha256:8e69bbc84760736834b39a253232206e0f98942a9de5bb909b36ea80ffdee4d7 +size 110395 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPad-en-GB.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPad-en-GB.1.png index 68337fae4a..b4b93ae2ed 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPad-en-GB.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPad-en-GB.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:222b8e57adaf6d234c2e6ac026cba0380131c7085d6a4d0e15e6fb349dbea1d8 -size 93186 +oid sha256:39c099e692cac9570866390ae3fa3e402cdd14f19de1df4ee63b206e84ac7e40 +size 81301 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPad-pseudo.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPad-pseudo.1.png index 9fe58baf32..3a984cb4ca 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPad-pseudo.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPad-pseudo.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1040add34f78fa95ae396d7ce95df29a7f03c73ade149a5d0efa9418335531a6 -size 95828 +oid sha256:35bd1fba8ab30bb7d08080fe06cfadc8d0838a484bb9096c8cefd85b6af70543 +size 85637 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPhone-16-en-GB.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPhone-16-en-GB.1.png index d0e1cc4330..e85bd9e19c 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPhone-16-en-GB.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPhone-16-en-GB.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fdaf986c1521ecb43b117f3197053f589e66e3e496a51d824629d8253653a713 -size 49876 +oid sha256:9658986db1f622979c311716b815190aa409fd70cd71d52ae9cedc5a2a2be60d +size 39632 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPhone-16-pseudo.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPhone-16-pseudo.1.png index bd143b2b96..50d3464c38 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPhone-16-pseudo.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomDirectorySearchScreen-iPhone-16-pseudo.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4840a11a65bc0a611c5cb2b93883cf707f1cbd686359909704398ed87eced86d -size 52399 +oid sha256:73d404858351ed5066e5a5b9c78067c149cbf4f5b835d143172eb047e7bc7299 +size 43558 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Banned.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Banned.png index 6c320b9828..4ca9247c9d 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Banned.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Banned.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f9871ae3306a42d01602c7a8cc2153131c1bd9c91f13129c3bdf0d8ece816c6 -size 68400 +oid sha256:9716ab5589ae525ee33f7c8d56c8de6d75eadbd58de55be381d7b6d1d2fa72d2 +size 68373 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Empty-Banned.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Empty-Banned.png index fb947d7f96..5db0a03b85 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Empty-Banned.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Empty-Banned.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0a96b9608b3fbdef660995e45324eb1c5b5cbdf18cae679f17cded799aa9d1c9 -size 48922 +oid sha256:cc8c8a45449ae6a45e03cc55abbb7daacc73437723386278049702d075b2dfec +size 48907 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Members.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Members.png index 352123acf0..42a29274d7 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Members.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Admin-Members.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58820cced75f459149aa85f2b32ddc9f6311fcb0795c5e8801b45c228751d698 -size 83703 +oid sha256:0cb4f935ad16ab0e44d65f0f3865865ea493be1c882ac6c9dfa0b9ef1ce2b7de +size 83685 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Invites.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Invites.png index 0d7dfda678..ff9a367829 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Invites.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Invites.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b022726222227a8f90998e54d58bcd7ab666089d1d7dff2724f21b11daf2b554 -size 86214 +oid sha256:8b7a2e7b7d6f76a6e2a99608791995c03b938c3157386ccb874e0351989be485 +size 86192 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Member.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Member.png index 9c92bf724b..cea8e3bf1f 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Member.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-en-GB.Member.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f7925fd0beeac60deea2db678b17265aedee906252d97d0214f641c2a21bf5fb -size 37037 +oid sha256:5b50eec37266cca3aaf324a6b477aba2c0e10ac37540ace2f84d9cfcc9b914c4 +size 77856 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Banned.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Banned.png index a44ac201be..e3e36b9ee2 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Banned.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Banned.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de46b50e23ecb747e9d60c9448b60a977571af8e74ce4f5ca20e440189ce36f7 -size 73574 +oid sha256:9d2c1fd3265cdb97ffe95cf0fd795bc0751c86de6d1e6f5228000d8daddbffb3 +size 73543 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Empty-Banned.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Empty-Banned.png index 4bacc94c2d..5804ddf3ad 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Empty-Banned.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Empty-Banned.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9d8830e48e24781b958a21e9ce56ac7f12583cf237fc4a40cff57a4a8fb4e5e2 -size 59454 +oid sha256:4f81f36ffc30df200c36a8bb8c47e47564951262079850d3f3baffdac96a61a2 +size 59461 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Members.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Members.png index e76a1aec2e..97419a8ff9 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Members.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Admin-Members.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:54a2cde62d75459851c485b761aa5161cbb4176560eeaab69fcfa520e362bb11 -size 93420 +oid sha256:65d99cd60b4113ae8d91b8602b39800ea2643160952f1c5d59f9dd28628ea9b2 +size 93372 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Invites.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Invites.png index 6de78ba4b3..b5753e4d3f 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Invites.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Invites.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f4853074c004e451d4d88453b977064c25b59a29803acb1ea5b38882c7860ad3 -size 96319 +oid sha256:e1487324353bcdd77881ba9ca264a05d7a932bb857d4f61accba7c28ea65d871 +size 96301 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Member.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Member.png index 2b199a18e0..c7d567092b 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Member.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_roomMembersListScreen-iPhone-16-pseudo.Member.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4758385db96e9d880f7ff670f1b312964b27910ba1c55ecafa9a451c964ab474 -size 40619 +oid sha256:027180a5377922209a9b58f36c2ab352ae5f58dad3fa653982276ce07d155d38 +size 86305 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_settingsScreen-iPhone-16-en-GB.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_settingsScreen-iPhone-16-en-GB.1.png index 8d385346ec..44b007a17c 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_settingsScreen-iPhone-16-en-GB.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_settingsScreen-iPhone-16-en-GB.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce5e1bd5e6f7325fdea0332cce899a8f0c1439d971d159324d48f89ed3a58ac6 -size 106225 +oid sha256:1062bd3adf6d606bb0d1f8c693bff1e66ae6110e0bf5a6f65037f2b980e6e39e +size 111198 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_settingsScreen-iPhone-16-pseudo.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_settingsScreen-iPhone-16-pseudo.1.png index 8f1bfb9567..8703632b7e 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_settingsScreen-iPhone-16-pseudo.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_settingsScreen-iPhone-16-pseudo.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3755ae2d427b03ba0f591ac1358c8e74c14cb378a20a53560e342b6077562837 -size 123000 +oid sha256:1a3e452e09cb3ab4908ad93c1802ceae66dc60334a2494fce8c34ea58bc2ab7e +size 127950 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemBubbledStylerView-iPhone-16-en-GB.Pinned-messages.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemBubbledStylerView-iPhone-16-en-GB.Pinned-messages.png index b97c73e538..3ccfc81eac 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemBubbledStylerView-iPhone-16-en-GB.Pinned-messages.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemBubbledStylerView-iPhone-16-en-GB.Pinned-messages.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ba473ce453cdd3f505411fb9cfcafb8409d073d0c737ce3716f2c251acb0bf0 -size 494165 +oid sha256:03de5c32a0b0e47ea2b2d54214048fa1f9dadd7a7bed970af935d1c1ca0cf7ce +size 445294 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemBubbledStylerView-iPhone-16-pseudo.Pinned-messages.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemBubbledStylerView-iPhone-16-pseudo.Pinned-messages.png index b97c73e538..3ccfc81eac 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemBubbledStylerView-iPhone-16-pseudo.Pinned-messages.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemBubbledStylerView-iPhone-16-pseudo.Pinned-messages.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ba473ce453cdd3f505411fb9cfcafb8409d073d0c737ce3716f2c251acb0bf0 -size 494165 +oid sha256:03de5c32a0b0e47ea2b2d54214048fa1f9dadd7a7bed970af935d1c1ca0cf7ce +size 445294 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemDebugView-iPhone-16-en-GB.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemDebugView-iPhone-16-en-GB.1.png index bed3e4ee1e..30b892a7ad 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemDebugView-iPhone-16-en-GB.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemDebugView-iPhone-16-en-GB.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e8a1c81979803d04546d37f153017199c560cffe91f12d132449784849f00903 -size 69227 +oid sha256:f8122c559a90fd4425a7117960fad021482fa2c93585a72f6f2814d619d7bf2d +size 69384 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemDebugView-iPhone-16-pseudo.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemDebugView-iPhone-16-pseudo.1.png index 316be7a3bf..7211e600df 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemDebugView-iPhone-16-pseudo.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_timelineItemDebugView-iPhone-16-pseudo.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:69d3cf0672978bc46113354cb6b7ead0b815f1db78a51d1e355a2d7c06fcc7cc -size 70107 +oid sha256:f0f1970da3feb417beeb4a007406510a33a8d204fece27109d883b1b1bb76ea7 +size 70243 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPad-en-GB.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPad-en-GB.1.png index dee8424e61..6c40bc49dc 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPad-en-GB.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPad-en-GB.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a319198ac7b9f91e4ed6bd9411a73fd9b7cabf80483507a4cf975426305379b2 -size 71910 +oid sha256:641bf4dd2d18f7ff9f72d9aadf574fc276deda99525cd6c933506043c60a6856 +size 71904 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPad-pseudo.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPad-pseudo.1.png index dee8424e61..6c40bc49dc 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPad-pseudo.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPad-pseudo.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a319198ac7b9f91e4ed6bd9411a73fd9b7cabf80483507a4cf975426305379b2 -size 71910 +oid sha256:641bf4dd2d18f7ff9f72d9aadf574fc276deda99525cd6c933506043c60a6856 +size 71904 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPhone-16-en-GB.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPhone-16-en-GB.1.png index 0fce89be22..7de4341245 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPhone-16-en-GB.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPhone-16-en-GB.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7fe33b9011954c24dfe13514927cedd7b076f43690f163a13b537a80f998fc8c -size 31324 +oid sha256:31b749bf22b17db53d6a0128b366a73238ee89e7593c71c445e911608835a588 +size 31069 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPhone-16-pseudo.1.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPhone-16-pseudo.1.png index 0fce89be22..7de4341245 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPhone-16-pseudo.1.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_voiceMessagePreviewComposer-iPhone-16-pseudo.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7fe33b9011954c24dfe13514927cedd7b076f43690f163a13b537a80f998fc8c -size 31324 +oid sha256:31b749bf22b17db53d6a0128b366a73238ee89e7593c71c445e911608835a588 +size 31069 From 98d1cc7be59228f0cb09a8315452e8756573f4f5 Mon Sep 17 00:00:00 2001 From: Doug Date: Thu, 26 Sep 2024 12:06:05 +0100 Subject: [PATCH 4/6] Reset the simulators on GitHub before running? --- .github/workflows/integration-tests.yml | 5 ++++- .github/workflows/unit_tests.yml | 3 +++ .github/workflows/unit_tests_enterprise.yml | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 4b0661b05a..e446a5da9a 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -29,7 +29,10 @@ jobs: - name: Setup environment run: source ci_scripts/ci_common.sh && setup_github_actions_environment - + + - name: Reset simulators + run: SNAPSHOT_FORCE_DELETE=1 bundle exec fastlane snapshot reset_simulators + - name: Run tests run: bundle exec fastlane integration_tests env: diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 63fa5e54ed..1d6206923e 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -35,6 +35,9 @@ jobs: - name: SwiftFormat run: swiftformat --lint . + + - name: Reset simulators + run: SNAPSHOT_FORCE_DELETE=1 bundle exec fastlane snapshot reset_simulators - name: Run tests run: bundle exec fastlane unit_tests diff --git a/.github/workflows/unit_tests_enterprise.yml b/.github/workflows/unit_tests_enterprise.yml index 8c195bf915..8df5b704c7 100644 --- a/.github/workflows/unit_tests_enterprise.yml +++ b/.github/workflows/unit_tests_enterprise.yml @@ -44,7 +44,10 @@ jobs: - name: SwiftFormat run: swiftformat --lint . - + + - name: Reset simulators + run: SNAPSHOT_FORCE_DELETE=1 bundle exec fastlane snapshot reset_simulators + - name: Run tests run: bundle exec fastlane unit_tests skip_previews:true From 811b53adaa5c2df960bc47b1286ef588e9f18ba5 Mon Sep 17 00:00:00 2001 From: Doug Date: Thu, 26 Sep 2024 12:29:11 +0100 Subject: [PATCH 5/6] Remove a test that is now handled by Rust. --- .../Sources/TimelineViewModelTests.swift | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/UnitTests/Sources/TimelineViewModelTests.swift b/UnitTests/Sources/TimelineViewModelTests.swift index 9876a7cad1..22e63a25ab 100644 --- a/UnitTests/Sources/TimelineViewModelTests.swift +++ b/UnitTests/Sources/TimelineViewModelTests.swift @@ -256,39 +256,6 @@ class TimelineViewModelTests: XCTestCase { XCTAssertEqual(arguments?.type, .read) } - func testSendMoreReadReceipts() async throws { - // Given a room with only text items in the timeline that are all read. - let items = [TextRoomTimelineItem(eventID: "t1"), - TextRoomTimelineItem(eventID: "t2"), - TextRoomTimelineItem(eventID: "t3")] - let (viewModel, _, timelineProxy, timelineController) = readReceiptsConfiguration(with: items) - viewModel.context.send(viewAction: .sendReadReceiptIfNeeded(items.last!.id)) - try await Task.sleep(for: .milliseconds(100)) - XCTAssertEqual(timelineProxy.sendReadReceiptForTypeCallsCount, 1) - var arguments = timelineProxy.sendReadReceiptForTypeReceivedArguments - XCTAssertEqual(arguments?.eventID, "t3") - XCTAssertEqual(arguments?.type, .read) - - // When sending a receipt for the first item in the timeline. - viewModel.context.send(viewAction: .sendReadReceiptIfNeeded(items.first!.id)) - try await Task.sleep(for: .milliseconds(100)) - - // When a new message is received and marked as read. - let newMessage = TextRoomTimelineItem(eventID: "t4") - timelineController.timelineItems.append(newMessage) - timelineController.callbacks.send(.updatedTimelineItems(timelineItems: timelineController.timelineItems, isSwitchingTimelines: false)) - try await Task.sleep(for: .milliseconds(100)) - - viewModel.context.send(viewAction: .sendReadReceiptIfNeeded(newMessage.id)) - try await Task.sleep(for: .milliseconds(100)) - - // Then the request should be made. - XCTAssertEqual(timelineProxy.sendReadReceiptForTypeCallsCount, 3) - arguments = timelineProxy.sendReadReceiptForTypeReceivedArguments - XCTAssertEqual(arguments?.eventID, "t4") - XCTAssertEqual(arguments?.type, .read) - } - func testSendReadReceiptWithoutEvents() async throws { // Given a room with only virtual items. let items = [SeparatorRoomTimelineItem(timelineID: "v1"), From 134b8f418c9e47240d7ac858ac0fc40bd8195483 Mon Sep 17 00:00:00 2001 From: Doug Date: Thu, 26 Sep 2024 12:48:06 +0100 Subject: [PATCH 6/6] Fix a test that was yielding. --- UnitTests/Sources/ComposerToolbarViewModelTests.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/UnitTests/Sources/ComposerToolbarViewModelTests.swift b/UnitTests/Sources/ComposerToolbarViewModelTests.swift index 162ac0d97f..d788534884 100644 --- a/UnitTests/Sources/ComposerToolbarViewModelTests.swift +++ b/UnitTests/Sources/ComposerToolbarViewModelTests.swift @@ -113,11 +113,11 @@ class ComposerToolbarViewModelTests: XCTestCase { XCTAssertEqual(viewModel.state.suggestions, suggestions) } - func testSuggestionTrigger() async { + func testSuggestionTrigger() async throws { + let deferred = deferFulfillment(wysiwygViewModel.$attributedContent) { $0.plainText == "#not_implemented_yay" } wysiwygViewModel.setMarkdownContent("@test") wysiwygViewModel.setMarkdownContent("#not_implemented_yay") - - await Task.yield() + try await deferred.fulfill() // The first one is nil because when initialised the view model is empty XCTAssertEqual(completionSuggestionServiceMock.setSuggestionTriggerReceivedInvocations, [nil, .init(type: .user, text: "test", range: .init(location: 0, length: 5)), nil])