Fix preference tests
This commit is contained in:
parent
510584cb15
commit
44a61d60db
|
@ -41,7 +41,9 @@ final class PreferenceTests: XCTestCase {
|
|||
}
|
||||
let reconciler = TestFiberRenderer(.root, size: .init(width: 500, height: 500))
|
||||
.render(TestView())
|
||||
reconciler.turnRunLoop()
|
||||
reconciler.fiberChanged(reconciler.current)
|
||||
reconciler.turnRunLoop()
|
||||
}
|
||||
|
||||
func testOverlay() {
|
||||
|
@ -52,25 +54,16 @@ final class PreferenceTests: XCTestCase {
|
|||
.preference(key: TestKey.self, value: 3)
|
||||
.overlayPreferenceValue(TestKey.self) {
|
||||
Text("\($0)")
|
||||
.identified(by: "overlay")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let reconciler = TestFiberRenderer(.root, size: .init(width: 500, height: 500))
|
||||
.render(TestView())
|
||||
var overlayValue: FiberReconciler<TestFiberRenderer>.Fiber? {
|
||||
reconciler.current // RootView
|
||||
.child? // LayoutView
|
||||
.child? // ModifiedContent
|
||||
.child? // _ViewModifier_Content
|
||||
.child? // TestView
|
||||
.child? // _DelayedPreferenceView
|
||||
.child? // ModifiedContent
|
||||
.child? // _OverlayLayout
|
||||
.child?.sibling? // _PreferenceReadingView
|
||||
.child
|
||||
}
|
||||
|
||||
reconciler.expect(overlayValue, equals: Text("5"))
|
||||
reconciler.turnRunLoop()
|
||||
|
||||
XCTAssertEqual(reconciler.findView(id: "overlay").view, Text("5"))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,40 +20,6 @@ import XCTest
|
|||
@_spi(TokamakCore) @testable import TokamakCore
|
||||
import TokamakTestRenderer
|
||||
|
||||
extension FiberReconciler {
|
||||
/// Expect a `Fiber` to represent a particular `View` type.
|
||||
func expect<V>(
|
||||
_ fiber: Fiber?,
|
||||
represents viewType: V.Type,
|
||||
_ message: String? = nil
|
||||
) where V: View {
|
||||
guard case let .view(view, _) = fiber?.content else {
|
||||
return XCTAssert(false, "Fiber does not exit")
|
||||
}
|
||||
if let message = message {
|
||||
XCTAssert(type(of: view) == viewType, message)
|
||||
} else {
|
||||
XCTAssert(type(of: view) == viewType)
|
||||
}
|
||||
}
|
||||
|
||||
/// Expect a `Fiber` to represent a `View` matching`testView`.
|
||||
func expect<V>(
|
||||
_ fiber: Fiber?,
|
||||
equals testView: V,
|
||||
_ message: String? = nil
|
||||
) where V: View & Equatable {
|
||||
guard case let .view(fiberView, _) = fiber?.content else {
|
||||
return XCTAssert(false, "Fiber does not exit")
|
||||
}
|
||||
if let message = message {
|
||||
XCTAssertEqual(fiberView as? V, testView, message)
|
||||
} else {
|
||||
XCTAssertEqual(fiberView as? V, testView)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final class VisitorTests: XCTestCase {
|
||||
func testCounter() {
|
||||
struct TestView: View {
|
||||
|
|
Loading…
Reference in New Issue