mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Retrofit deferFulfillment onto snapshot tests. (#3641)
* Retrofit `deferFulfillment` onto snapshot tests. * Convert a bunch of preview tests to the new fulfillment publisher * Convert more tests * Remove unneeded delays from the remaining tests * Remove snapshotting delay option.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,7 @@
|
||||
// Please see LICENSE in the repository root for full details.
|
||||
//
|
||||
|
||||
import Combine
|
||||
import SwiftUI
|
||||
import XCTest
|
||||
|
||||
@@ -50,21 +51,21 @@ class PreviewTests: XCTestCase {
|
||||
|
||||
// MARK: - Snapshots
|
||||
|
||||
func assertSnapshots(matching preview: _Preview, testName: String = #function) {
|
||||
func assertSnapshots(matching preview: _Preview, testName: String = #function) async throws {
|
||||
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 }
|
||||
.onPreferenceChange(SnapshotFulfillmentPublisherPreferenceKey.self) { preferences.fulfillmentPublisher = $0?.publisher }
|
||||
|
||||
// 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)
|
||||
if let fulfillmentPublisher = preferences.fulfillmentPublisher {
|
||||
let deferred = deferFulfillment(fulfillmentPublisher) { $0 == true }
|
||||
try await deferred.fulfill()
|
||||
}
|
||||
|
||||
for deviceName in snapshotDevices {
|
||||
@@ -133,10 +134,10 @@ class PreviewTests: XCTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
private class SnapshotPreferences {
|
||||
var delay: TimeInterval = 0
|
||||
private class SnapshotPreferences: @unchecked Sendable {
|
||||
var precision: Float = 1
|
||||
var perceptualPrecision: Float = 1
|
||||
var fulfillmentPublisher: AnyPublisher<Bool, Never>?
|
||||
}
|
||||
|
||||
// MARK: - SnapshotTesting + Extensions
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:47a99702b22eb7a34297a605c0a148acbd728c6055134118d55ad0fea521e4fe
|
||||
size 92263
|
||||
oid sha256:fbb929cb7177e45396a10b14ff1fddc351cfb6b5a5754fb1f52ef44666ebb3ab
|
||||
size 92017
|
||||
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:82f915f692c622ca6486a0f7a0b8bab6df7959078add40a16ded37593716af57
|
||||
size 893292
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:79634b4686349a426958f301e37662e6f16cca5a0920289d962f0d453f68008c
|
||||
size 92979
|
||||
oid sha256:686e08e7fb182eb86468c8fbc0905e52f26d2319c98e3be022a39181d8b511a9
|
||||
size 92729
|
||||
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9cbb28cd9f361a81b96057ee8738d154a9add7de7a4ca9cdcd1600d499f6bf8d
|
||||
size 909428
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fe5b5125665231d85b57ab1d304c2c17d175caa696ee1f4dcd090438e1282472
|
||||
size 50384
|
||||
oid sha256:d0af4162fc19aa519aa0f2182cd3eab3d9e73d645cb550e545227d6f5617a38e
|
||||
size 50109
|
||||
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:32dde9b6437682f702c13359337b3f21479d138a0cbcf20e47a3ff1b6ecbe2d7
|
||||
size 274869
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9ad1c396b788d81c14139d5a5a174baaaa85e350aee173255cc72e3242f5bf87
|
||||
size 51246
|
||||
oid sha256:ccae5111908061e0a138ae2fc48b1aedc6bd889ed5380f352206bb2940f291a8
|
||||
size 50986
|
||||
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:487cf66a31c068c0bfc33ff95b4a69c9e5a9f77c4f2f958ac266349587e1b098
|
||||
size 293724
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:39c099e692cac9570866390ae3fa3e402cdd14f19de1df4ee63b206e84ac7e40
|
||||
size 81301
|
||||
oid sha256:2c33f7901ac865bbf54c2e76e871cc1a27bf069c8c2951433511c3d710ccd5fa
|
||||
size 97486
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:35bd1fba8ab30bb7d08080fe06cfadc8d0838a484bb9096c8cefd85b6af70543
|
||||
size 85637
|
||||
oid sha256:4825bade716f4055e70dfc82298ddd654825a4f719d59c89b267d32adf26ebc5
|
||||
size 100330
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9658986db1f622979c311716b815190aa409fd70cd71d52ae9cedc5a2a2be60d
|
||||
size 39632
|
||||
oid sha256:0c515c3504ce421c39a3da2455e2ae8c200ef89b2634cc863b65995f096d148f
|
||||
size 54590
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:73d404858351ed5066e5a5b9c78067c149cbf4f5b835d143172eb047e7bc7299
|
||||
size 43558
|
||||
oid sha256:ff01e35da6cecbd2af6a6f06a4488382477b7153507bd82d0fbe63b3f1586e3d
|
||||
size 56960
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:78499a8e00ba1c763e049869a6ade9d15e6e8c8d88c599a4b568cf0c9af29b27
|
||||
size 157618
|
||||
oid sha256:c024f99d4aeea16ec9729974fa663e24a774fccae381c021aaf23fd2b1b06abe
|
||||
size 183812
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:23380ed96834648da7e9d693ea4fd8d50c9ad839f14227ea2548ee175e82f7dc
|
||||
size 106194
|
||||
oid sha256:5fd4218e8976573194f9d8fe97061e850ec961dab5b91ab101fa7b5b1f630fd2
|
||||
size 130938
|
||||
|
||||
Reference in New Issue
Block a user