From 785930284b21f48a3466c11548c40e7d2e30a489 Mon Sep 17 00:00:00 2001 From: johnpatrickmorgan Date: Fri, 17 Jan 2025 10:07:48 +0000 Subject: [PATCH 1/2] Ensure subscription is not invalidated until isLoading becomes false --- Sources/SnapshotTesting/Common/View.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/SnapshotTesting/Common/View.swift b/Sources/SnapshotTesting/Common/View.swift index 753153749..5c1d1cc85 100644 --- a/Sources/SnapshotTesting/Common/View.swift +++ b/Sources/SnapshotTesting/Common/View.swift @@ -889,10 +889,10 @@ var subscription: NSKeyValueObservation? subscription = wkWebView.observe(\.isLoading, options: [.initial, .new]) { (webview, change) in - subscription?.invalidate() - subscription = nil if change.newValue == false { work() + subscription?.invalidate() + subscription = nil } } } else { From 4d7e3ea24fd4f3c8a3390cf3bb85b58fd0cf1644 Mon Sep 17 00:00:00 2001 From: johnpatrickmorgan Date: Fri, 17 Jan 2025 12:03:02 +0000 Subject: [PATCH 2/2] Add WKWebView to a window before snapshotting on iOS --- Sources/SnapshotTesting/Common/View.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sources/SnapshotTesting/Common/View.swift b/Sources/SnapshotTesting/Common/View.swift index 5c1d1cc85..79707310a 100644 --- a/Sources/SnapshotTesting/Common/View.swift +++ b/Sources/SnapshotTesting/Common/View.swift @@ -840,6 +840,9 @@ window.contentView = NSView() window.contentView?.addSubview(self) window.makeKey() + #elseif os(iOS) + let window = UIWindow() + window.addSubview(self) #endif return perform() }