pointfreeco/swift-snapshot-testing

Snapshot testing a SwiftUI view with ScrollViewReader not expecting as Preview/Simulator

WedgeSparda opened this issue · 1 comments

Hi, I'm snapshot testing a SwiftUI view which contains a ScrollView inside a ScrollViewReader. On the onAppear of the ScrollView I'm using the scrollReader to scroll to the bottom using
a @namespace

public struct MyView: View {

    @Namespace private var bottomID

    public var body: some View {
        ScrollViewReader { scrollReader in
            ScrollView([], showsIndicators: false) {
                // ...
                VStack {
                    // ...
                }
               .id(bottomID)
            }
            .onAppear {
                scrollReader.scrollTo(bottomID)
            }
        }
    }

The scrollview is disabled by default and its purpose is to set the content aligned to the bottom.

Is working correctly on the previews, simulator and device, but the snapshot is not performing the scroll, even using the .wait strategy and cheching with a breakpoint that scrollReader.scrollTo(bottomID) is being called.

What I'm doing wrong?

Thanks for your time

I'm running into the same issue with scrolling - I was getting inconsistent behaviour when the snapshot tests on CI were incorrectly scrolling even though on local machines they weren't.
I unfortunately had to turn off the scrolling for the snapshot tests completely.
Would be great if there was a solution to run onAppear code for snapshots.