Skip to content

Commit 5ef2f1f

Browse files
Improve UIView Auto Layout tests (#337)
* Improve `UIView` Auto Layout tests * Add local variable to DRY implementation * Add non-zero dimensions * Use consistent formatting
1 parent 9d33ee2 commit 5ef2f1f

File tree

2 files changed

+426
-173
lines changed

2 files changed

+426
-173
lines changed

Tests/LayoutTests/Support/NimbleMatchers.swift

+7-3
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,19 @@ extension XCTestCase {
2828
// swiftlint:disable cyclomatic_complexity
2929

3030
@MainActor
31-
internal func match(_ expectedConstraint: NSLayoutConstraint) -> Matcher<NSLayoutConstraint> {
31+
internal func match(
32+
_ expectedConstraint: NSLayoutConstraint,
33+
isActive: Bool? = nil // swiftlint:disable:this discouraged_optional_boolean
34+
) -> Matcher<NSLayoutConstraint> {
3235
// swiftlint:disable:next closure_body_length
3336
Matcher { expression in
3437
guard let constraint: NSLayoutConstraint = try expression.evaluate()
3538
else { return MatcherResult(status: .fail, message: .expectedTo("not be nil, got <nil>")) }
36-
guard constraint.isActive == expectedConstraint.isActive
39+
let isActiveExpected: Bool = isActive ?? expectedConstraint.isActive
40+
guard constraint.isActive == isActiveExpected
3741
else {
3842
let message: String = """
39-
match `isActive` <\(expectedConstraint.isActive)>, \
43+
match `isActive` <\(isActiveExpected)>, \
4044
got <\(constraint.isActive)>
4145
"""
4246
return MatcherResult(status: .fail, message: .expectedTo(message))

0 commit comments

Comments
 (0)