Skip to content

Commit 5a9da98

Browse files
committed
Implements per default addition of one accessibility snapshot per view
1 parent 342795c commit 5a9da98

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

Package.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,16 @@ let package = Package(
1717
],
1818
dependencies: [
1919
.package(name: "swift-snapshot-testing", url: "https://github.com/pointfreeco/swift-snapshot-testing.git", .upToNextMajor(from: "1.12.0")),
20-
.package(name: "SwiftRex", url: "https://github.com/SwiftRex/SwiftRex.git", .upToNextMajor(from: "0.8.12"))
20+
.package(name: "SwiftRex", url: "https://github.com/SwiftRex/SwiftRex.git", .upToNextMajor(from: "0.8.12")),
21+
.package(name: "AccessibilitySnapshot", url: "https://github.com/cashapp/AccessibilitySnapshot.git", from: "0.7.0"),
2122
],
2223
targets: [
2324
.target(
2425
name: "TestingExtensions",
2526
dependencies: [
2627
.product(name: "SnapshotTesting", package: "swift-snapshot-testing"),
27-
.product(name: "CombineRexDynamic", package: "SwiftRex")
28+
.product(name: "CombineRexDynamic", package: "SwiftRex"),
29+
.product(name: "AccessibilitySnapshot", package: "AccessibilitySnapshot")
2830
]
2931
)
3032
]

Sources/TestingExtensions/SnapshotTestBase.swift

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Foundation
1111
import SnapshotTesting
1212
import SwiftUI
1313
import XCTest
14+
import AccessibilitySnapshot
1415

1516
open class SnapshotTestBase: XCTestCase {
1617
public var allowAnimations: Bool = false
@@ -28,10 +29,17 @@ open class SnapshotTestBase: XCTestCase {
2829
("iPadPro", .iPadPro12_9(.portrait))
2930
]
3031
}
32+
33+
open var accessibilityDevices: [(name: String, device: ViewImageConfig)] {
34+
[
35+
("iPhone13pro", .iPhone13)
36+
]
37+
}
3138

3239
open func assertSnapshotDevices<V: View>(
3340
_ view: V,
3441
devices: [(name: String, device: ViewImageConfig)]? = nil,
42+
accessibilityDevices: [(name: String, device: ViewImageConfig)]? = nil,
3543
style: [UIUserInterfaceStyle] = [.unspecified],
3644
imageDiffPrecision: Float = 1.0,
3745
file: StaticString = #file,
@@ -64,6 +72,17 @@ open class SnapshotTestBase: XCTestCase {
6472
)
6573
}
6674
}
75+
76+
(accessibilityDevices ?? self.accessibilityDevices).forEach { config in
77+
let vc = UIHostingController(rootView: view)
78+
assertSnapshot(
79+
of: vc,
80+
as: .accessibilityImage(showActivationPoints: .always),
81+
file: file,
82+
testName: "\(testName)-\(config.name)-accessibility",
83+
line: line
84+
)
85+
}
6786
}
6887
}
6988
#endif

0 commit comments

Comments
 (0)