diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f84d35e1..1c43b4d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,6 +68,10 @@ jobs: runtime: iOS 17.5 os: macos-14 xcode: 15.4 + - platform: [iOS, 18] + runtime: iOS 18.0 + os: macos-14 + xcode: 16.0 - platform: [tvOS, 13] runtime: tvOS 13.4 @@ -92,6 +96,10 @@ jobs: runtime: tvOS 17.5 os: macos-14 xcode: 15.4 + - platform: [tvOS, 18] + runtime: tvOS 18.0 + os: macos-14 + xcode: 16.0 - platform: [watchOS, 8] runtime: watchOS 8.5 @@ -106,6 +114,10 @@ jobs: runtime: watchOS 10.5 os: macos-14 xcode: 15.4 + - platform: [watchOS, 11] + runtime: watchOS 11.0 + os: macos-14 + xcode: 16.0 - platform: [macOS, 12] runtime: macOS 12 diff --git a/Examples/Showcase/Showcase/AppView.swift b/Examples/Showcase/Showcase/AppView.swift index 44083e38..7ac408f6 100644 --- a/Examples/Showcase/Showcase/AppView.swift +++ b/Examples/Showcase/Showcase/AppView.swift @@ -7,7 +7,7 @@ struct AppView: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .window, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { window in window.backgroundColor = .brown } @@ -46,7 +46,7 @@ struct ContentView: View { .tag(5) } #if os(iOS) || os(tvOS) - .introspect(.tabView, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17)) { tabBarController in + .introspect(.tabView, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { tabBarController in tabBarController.tabBar.layer.backgroundColor = UIColor.green.cgColor } #elseif os(macOS) @@ -83,11 +83,11 @@ struct ListShowcase: View { Text("Item 2") } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { tableView in + .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { tableView in tableView.backgroundView = UIView() tableView.backgroundColor = .cyan } - .introspect(.list, on: .iOS(.v16, .v17), .visionOS(.v1)) { collectionView in + .introspect(.list, on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { collectionView in collectionView.backgroundView = UIView() collectionView.subviews.dropFirst(1).first?.backgroundColor = .cyan } @@ -108,11 +108,11 @@ struct ListShowcase: View { Text("Item 1") Text("Item 2") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17), scope: .ancestor) { tableView in + .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), scope: .ancestor) { tableView in tableView.backgroundView = UIView() tableView.backgroundColor = .cyan } - .introspect(.list, on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { collectionView in + .introspect(.list, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { collectionView in collectionView.backgroundView = UIView() collectionView.subviews.dropFirst(1).first?.backgroundColor = .cyan } @@ -150,7 +150,7 @@ struct ScrollViewShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .scrollView, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { scrollView in scrollView.layer.backgroundColor = UIColor.cyan.cgColor } @@ -171,7 +171,7 @@ struct ScrollViewShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .scrollView, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), scope: .ancestor ) { scrollView in scrollView.layer.backgroundColor = UIColor.cyan.cgColor @@ -207,13 +207,13 @@ struct NavigationShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .navigationView(style: .stack), - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { navigationController in navigationController.navigationBar.backgroundColor = .cyan } .introspect( .navigationView(style: .columns), - on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { splitViewController in #if os(visionOS) splitViewController.preferredDisplayMode = .oneBesideSecondary @@ -221,12 +221,12 @@ struct NavigationShowcase: View { splitViewController.preferredDisplayMode = .oneOverSecondary #endif } - .introspect(.navigationView(style: .columns), on: .tvOS(.v13, .v14, .v15, .v16, .v17)) { navigationController in + .introspect(.navigationView(style: .columns), on: .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { navigationController in navigationController.navigationBar.backgroundColor = .cyan } .introspect( .searchField, - on: .iOS(.v15, .v16, .v17), .tvOS(.v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v15, .v16, .v17, .v18), .tvOS(.v15, .v16, .v17, .v18), .visionOS(.v1) ) { searchBar in searchBar.backgroundColor = .red #if os(iOS) @@ -251,7 +251,7 @@ struct PresentationShowcase: View { #if os(iOS) || os(tvOS) .introspect( .sheet, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18) ) { presentationController in presentationController.containerView?.backgroundColor = .red.withAlphaComponent(0.75) } @@ -269,7 +269,7 @@ struct PresentationShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .fullScreenCover, - on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { presentationController in presentationController.containerView?.backgroundColor = .red.withAlphaComponent(0.75) } @@ -284,7 +284,7 @@ struct PresentationShowcase: View { .padding() .introspect( .popover, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { presentationController in presentationController.containerView?.backgroundColor = .red.withAlphaComponent(0.75) } @@ -305,7 +305,7 @@ struct GenericViewShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .view, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { view in view.backgroundColor = .cyan } @@ -320,7 +320,7 @@ struct GenericViewShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .view, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { view in view.backgroundColor = .lightGray } @@ -334,7 +334,7 @@ struct GenericViewShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .view, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { view in view.backgroundColor = .blue } @@ -348,7 +348,7 @@ struct GenericViewShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .view, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { view in view.backgroundColor = .red } @@ -375,7 +375,7 @@ struct SimpleElementsShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .textField, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { textField in textField.backgroundColor = .red } @@ -390,7 +390,7 @@ struct SimpleElementsShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .textField, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { textField in textField.backgroundColor = .green } @@ -408,7 +408,7 @@ struct SimpleElementsShowcase: View { #if os(iOS) .introspect( .toggle, - on: .iOS(.v13, .v14, .v15, .v16, .v17) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18) ) { toggle in toggle.backgroundColor = .red } @@ -422,7 +422,7 @@ struct SimpleElementsShowcase: View { #if os(iOS) .introspect( .toggle, - on: .iOS(.v13, .v14, .v15, .v16, .v17) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18) ) { toggle in toggle.backgroundColor = .green } @@ -436,7 +436,7 @@ struct SimpleElementsShowcase: View { HStack { Slider(value: $sliderValue, in: 0...100) #if os(iOS) - .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { slider in + .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18)) { slider in slider.backgroundColor = .red } #elseif os(macOS) @@ -447,7 +447,7 @@ struct SimpleElementsShowcase: View { Slider(value: $sliderValue, in: 0...100) #if os(iOS) - .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { slider in + .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18)) { slider in slider.backgroundColor = .green } #elseif os(macOS) @@ -462,7 +462,7 @@ struct SimpleElementsShowcase: View { Text("Stepper Red") } #if os(iOS) - .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { stepper in + .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18)) { stepper in stepper.backgroundColor = .red } #elseif os(macOS) @@ -475,7 +475,7 @@ struct SimpleElementsShowcase: View { Text("Stepper Green") } #if os(iOS) - .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { stepper in + .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18)) { stepper in stepper.backgroundColor = .green } #elseif os(macOS) @@ -491,7 +491,7 @@ struct SimpleElementsShowcase: View { Text("DatePicker Red") } #if os(iOS) || os(visionOS) - .introspect(.datePicker, on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1)) { datePicker in + .introspect(.datePicker, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1)) { datePicker in datePicker.backgroundColor = .red } #elseif os(macOS) @@ -512,7 +512,7 @@ struct SimpleElementsShowcase: View { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .picker(style: .segmented), - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1) + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1) ) { datePicker in datePicker.backgroundColor = .red } diff --git a/Package.swift b/Package.swift index 83e453c3..c19540ef 100644 --- a/Package.swift +++ b/Package.swift @@ -19,9 +19,5 @@ let package = Package( name: "SwiftUIIntrospect", path: "Sources" ), - ], - swiftLanguageVersions: [ - .v5, - .version("6.0"), ] ) diff --git a/Package@swift-6.0.swift b/Package@swift-6.0.swift new file mode 100644 index 00000000..c348cd4a --- /dev/null +++ b/Package@swift-6.0.swift @@ -0,0 +1,24 @@ +// swift-tools-version:6.0 + +import PackageDescription + +let package = Package( + name: "swiftui-introspect", + platforms: [ + .iOS(.v13), + .tvOS(.v13), + .macOS(.v10_15), + ], + products: [ + .library(name: "SwiftUIIntrospect", targets: ["SwiftUIIntrospect"]), + .library(name: "SwiftUIIntrospect-Static", type: .static, targets: ["SwiftUIIntrospect"]), + .library(name: "SwiftUIIntrospect-Dynamic", type: .dynamic, targets: ["SwiftUIIntrospect"]), + ], + targets: [ + .target( + name: "SwiftUIIntrospect", + path: "Sources" + ), + ], + swiftLanguageVersions: [.v6] +) diff --git a/Sources/Introspect.swift b/Sources/Introspect.swift index 0db1263d..39a4ea20 100644 --- a/Sources/Introspect.swift +++ b/Sources/Introspect.swift @@ -34,12 +34,13 @@ extension View { /// /// var body: some View { /// TextField("Placeholder", text: $text) - /// .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { + /// .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18)) { /// print(type(of: $0)) // UITextField /// } /// } /// } /// ``` + @MainActor public func introspect( _ viewType: SwiftUIViewType, on platforms: (PlatformViewVersionPredicate)..., @@ -56,6 +57,7 @@ struct IntrospectModifier? let customize: (PlatformSpecificEntity) -> Void + @MainActor init( _ viewType: SwiftUIViewType, platforms: [PlatformViewVersionPredicate], diff --git a/Sources/IntrospectableViewType.swift b/Sources/IntrospectableViewType.swift index c3e6cb8a..8851e6ce 100644 --- a/Sources/IntrospectableViewType.swift +++ b/Sources/IntrospectableViewType.swift @@ -1,4 +1,5 @@ #if !os(watchOS) +@MainActor public protocol IntrospectableViewType { /// The scope of introspection for this particular view type, i.e. where introspect /// should look to find the desired target view relative to the applied diff --git a/Sources/IntrospectionSelector.swift b/Sources/IntrospectionSelector.swift index e0097323..af1b1235 100644 --- a/Sources/IntrospectionSelector.swift +++ b/Sources/IntrospectionSelector.swift @@ -1,11 +1,13 @@ #if !os(watchOS) @_spi(Advanced) -public struct IntrospectionSelector: Sendable { + +@MainActor +public struct IntrospectionSelector { @_spi(Advanced) public static var `default`: Self { .from(Target.self, selector: { $0 }) } @_spi(Advanced) - public static func from(_ entryType: Entry.Type, selector: @MainActor @Sendable @escaping (Entry) -> Target?) -> Self { + public static func from(_ entryType: Entry.Type, selector: @MainActor @escaping (Entry) -> Target?) -> Self { .init( receiverSelector: { controller in controller.as(Entry.Base.self)?.receiver(ofType: Entry.self).flatMap(selector) @@ -16,32 +18,32 @@ public struct IntrospectionSelector: Sendable { ) } - private var receiverSelector: @MainActor @Sendable (IntrospectionPlatformViewController) -> Target? - private var ancestorSelector: @MainActor @Sendable (IntrospectionPlatformViewController) -> Target? + private var receiverSelector: @MainActor (IntrospectionPlatformViewController) -> Target? + private var ancestorSelector: @MainActor (IntrospectionPlatformViewController) -> Target? private init( - receiverSelector: @MainActor @Sendable @escaping (IntrospectionPlatformViewController) -> Target?, - ancestorSelector: @MainActor @Sendable @escaping (IntrospectionPlatformViewController) -> Target? + receiverSelector: @MainActor @escaping (IntrospectionPlatformViewController) -> Target?, + ancestorSelector: @MainActor @escaping (IntrospectionPlatformViewController) -> Target? ) { self.receiverSelector = receiverSelector self.ancestorSelector = ancestorSelector } @_spi(Advanced) - public func withReceiverSelector(_ selector: @MainActor @Sendable @escaping (PlatformViewController) -> Target?) -> Self { + public func withReceiverSelector(_ selector: @MainActor @escaping (PlatformViewController) -> Target?) -> Self { var copy = self copy.receiverSelector = selector return copy } @_spi(Advanced) - public func withAncestorSelector(_ selector: @MainActor @Sendable @escaping (PlatformViewController) -> Target?) -> Self { + public func withAncestorSelector(_ selector: @MainActor @escaping (PlatformViewController) -> Target?) -> Self { var copy = self copy.ancestorSelector = selector return copy } - @MainActor func callAsFunction(_ controller: IntrospectionPlatformViewController, _ scope: IntrospectionScope) -> Target? { + func callAsFunction(_ controller: IntrospectionPlatformViewController, _ scope: IntrospectionScope) -> Target? { if scope.contains(.receiver), let target = receiverSelector(controller) diff --git a/Sources/IntrospectionView.swift b/Sources/IntrospectionView.swift index 2f24832a..c464b5b3 100644 --- a/Sources/IntrospectionView.swift +++ b/Sources/IntrospectionView.swift @@ -3,8 +3,9 @@ import SwiftUI typealias IntrospectionViewID = UUID +@MainActor fileprivate enum IntrospectionStore { - @MainActor static var shared: [IntrospectionViewID: Pair] = [:] + static var shared: [IntrospectionViewID: Pair] = [:] struct Pair { weak var controller: IntrospectionPlatformViewController? @@ -13,7 +14,7 @@ fileprivate enum IntrospectionStore { } extension PlatformEntity { - @MainActor var introspectionAnchorEntity: Base? { + var introspectionAnchorEntity: Base? { if let introspectionController = self as? IntrospectionPlatformViewController { return IntrospectionStore.shared[introspectionController.id]?.anchor~ } diff --git a/Sources/PlatformViewVersion.swift b/Sources/PlatformViewVersion.swift index 4249887a..5c78d5db 100644 --- a/Sources/PlatformViewVersion.swift +++ b/Sources/PlatformViewVersion.swift @@ -1,6 +1,7 @@ #if !os(watchOS) import SwiftUI +@MainActor public struct PlatformViewVersionPredicate { let selector: IntrospectionSelector? @@ -61,6 +62,7 @@ public typealias macOSViewVersion = PlatformViewVersion +@MainActor public enum PlatformViewVersion: Sendable { @_spi(Internals) case available(Version, IntrospectionSelector?) @_spi(Internals) case unavailable @@ -94,6 +96,7 @@ public enum PlatformViewVersion? { if case .available(_, let selector) = self { return selector @@ -114,11 +117,11 @@ public enum PlatformViewVersion Bool { + nonisolated public static func == (lhs: Self, rhs: Self) -> Bool { true } - public static func < (lhs: Self, rhs: Self) -> Bool { + nonisolated public static func < (lhs: Self, rhs: Self) -> Bool { true } } diff --git a/Sources/ViewTypes/DatePickerWithCompactStyle.swift b/Sources/ViewTypes/DatePickerWithCompactStyle.swift index c9023564..4472ac47 100644 --- a/Sources/ViewTypes/DatePickerWithCompactStyle.swift +++ b/Sources/ViewTypes/DatePickerWithCompactStyle.swift @@ -55,7 +55,7 @@ import SwiftUI /// } /// ``` public struct DatePickerWithCompactStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case compact } } diff --git a/Sources/ViewTypes/DatePickerWithFieldStyle.swift b/Sources/ViewTypes/DatePickerWithFieldStyle.swift index eaf416b6..052b6137 100644 --- a/Sources/ViewTypes/DatePickerWithFieldStyle.swift +++ b/Sources/ViewTypes/DatePickerWithFieldStyle.swift @@ -31,7 +31,7 @@ import SwiftUI /// /// Not available. public struct DatePickerWithFieldStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case field } } diff --git a/Sources/ViewTypes/DatePickerWithGraphicalStyle.swift b/Sources/ViewTypes/DatePickerWithGraphicalStyle.swift index 4c611554..fe752533 100644 --- a/Sources/ViewTypes/DatePickerWithGraphicalStyle.swift +++ b/Sources/ViewTypes/DatePickerWithGraphicalStyle.swift @@ -55,7 +55,7 @@ import SwiftUI /// } /// ``` public struct DatePickerWithGraphicalStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case graphical } } diff --git a/Sources/ViewTypes/DatePickerWithStepperFieldStyle.swift b/Sources/ViewTypes/DatePickerWithStepperFieldStyle.swift index da09d7c0..abc4e2fe 100644 --- a/Sources/ViewTypes/DatePickerWithStepperFieldStyle.swift +++ b/Sources/ViewTypes/DatePickerWithStepperFieldStyle.swift @@ -31,7 +31,7 @@ import SwiftUI /// /// Not available. public struct DatePickerWithStepperFieldStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case stepperField } } diff --git a/Sources/ViewTypes/DatePickerWithWheelStyle.swift b/Sources/ViewTypes/DatePickerWithWheelStyle.swift index d0a59f4a..4b20e03a 100644 --- a/Sources/ViewTypes/DatePickerWithWheelStyle.swift +++ b/Sources/ViewTypes/DatePickerWithWheelStyle.swift @@ -43,7 +43,7 @@ import SwiftUI /// } /// ``` public struct DatePickerWithWheelStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case wheel } } diff --git a/Sources/ViewTypes/FormWithGroupedStyle.swift b/Sources/ViewTypes/FormWithGroupedStyle.swift index 88fc68e5..374d2a02 100644 --- a/Sources/ViewTypes/FormWithGroupedStyle.swift +++ b/Sources/ViewTypes/FormWithGroupedStyle.swift @@ -75,7 +75,7 @@ import SwiftUI /// } /// ``` public struct FormWithGroupedStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case grouped } } diff --git a/Sources/ViewTypes/List.swift b/Sources/ViewTypes/List.swift index 9733f894..e623746f 100644 --- a/Sources/ViewTypes/List.swift +++ b/Sources/ViewTypes/List.swift @@ -74,7 +74,7 @@ import SwiftUI /// } /// ``` public struct ListType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case plain } } diff --git a/Sources/ViewTypes/ListWithBorderedStyle.swift b/Sources/ViewTypes/ListWithBorderedStyle.swift index c02bb525..2aa80ed0 100644 --- a/Sources/ViewTypes/ListWithBorderedStyle.swift +++ b/Sources/ViewTypes/ListWithBorderedStyle.swift @@ -33,7 +33,7 @@ import SwiftUI /// /// Not available. public struct ListWithBorderedStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case bordered } } diff --git a/Sources/ViewTypes/ListWithGroupedStyle.swift b/Sources/ViewTypes/ListWithGroupedStyle.swift index 0e7f1129..27a11975 100644 --- a/Sources/ViewTypes/ListWithGroupedStyle.swift +++ b/Sources/ViewTypes/ListWithGroupedStyle.swift @@ -64,7 +64,7 @@ import SwiftUI /// } /// ``` public struct ListWithGroupedStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case grouped } } diff --git a/Sources/ViewTypes/ListWithInsetGroupedStyle.swift b/Sources/ViewTypes/ListWithInsetGroupedStyle.swift index d28e2e76..d31872ab 100644 --- a/Sources/ViewTypes/ListWithInsetGroupedStyle.swift +++ b/Sources/ViewTypes/ListWithInsetGroupedStyle.swift @@ -50,7 +50,7 @@ import SwiftUI /// } /// ``` public struct ListWithInsetGroupedStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case insetGrouped } } diff --git a/Sources/ViewTypes/ListWithInsetStyle.swift b/Sources/ViewTypes/ListWithInsetStyle.swift index 3e7d8856..9e14d88d 100644 --- a/Sources/ViewTypes/ListWithInsetStyle.swift +++ b/Sources/ViewTypes/ListWithInsetStyle.swift @@ -64,7 +64,7 @@ import SwiftUI /// } /// ``` public struct ListWithInsetStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case inset } } diff --git a/Sources/ViewTypes/ListWithSidebarStyle.swift b/Sources/ViewTypes/ListWithSidebarStyle.swift index a6f411c0..c6baff58 100644 --- a/Sources/ViewTypes/ListWithSidebarStyle.swift +++ b/Sources/ViewTypes/ListWithSidebarStyle.swift @@ -64,7 +64,7 @@ import SwiftUI /// } /// ``` public struct ListWithSidebarStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case sidebar } } diff --git a/Sources/ViewTypes/Map.swift b/Sources/ViewTypes/Map.swift index 0268895b..6704be0a 100644 --- a/Sources/ViewTypes/Map.swift +++ b/Sources/ViewTypes/Map.swift @@ -78,6 +78,7 @@ extension iOSViewVersion { public static let v15 = Self(for: .v15) public static let v16 = Self(for: .v16) public static let v17 = Self(for: .v17) + public static let v18 = Self(for: .v18) } extension tvOSViewVersion { diff --git a/Sources/ViewTypes/NavigationSplitView.swift b/Sources/ViewTypes/NavigationSplitView.swift index 8290472d..44ee0c23 100644 --- a/Sources/ViewTypes/NavigationSplitView.swift +++ b/Sources/ViewTypes/NavigationSplitView.swift @@ -30,7 +30,7 @@ import SwiftUI /// } detail: { /// Text("Detail") /// } -/// .introspect(.navigationSplitView, on: .tvOS(.v16, .v17, .v18)) { +/// .introspect(.navigationSplitView, on: .tvOS(.v16, .v17)) { /// print(type(of: $0)) // UINavigationController /// } /// } @@ -90,7 +90,7 @@ extension iOSViewVersion { public static let v18 = Self(for: .v18, selector: selector) private static var selector: IntrospectionSelector { - .default.withAncestorSelector({ $0.splitViewController }) + .default.withAncestorSelector { $0.splitViewController } } } @@ -104,7 +104,8 @@ extension tvOSViewVersion { public static let v16 = Self(for: .v16, selector: selector) public static let v17 = Self(for: .v17, selector: selector) - public static let v18 = Self(for: .v18, selector: selector) + @available(*, unavailable, message: "NavigationSplitView isn't backed by UIKit since tvOS 18") + public static let v18 = Self.unavailable() private static var selector: IntrospectionSelector { .default.withAncestorSelector { $0.navigationController } diff --git a/Sources/ViewTypes/NavigationViewWithColumnsStyle.swift b/Sources/ViewTypes/NavigationViewWithColumnsStyle.swift index d700cf9e..94e8e72b 100644 --- a/Sources/ViewTypes/NavigationViewWithColumnsStyle.swift +++ b/Sources/ViewTypes/NavigationViewWithColumnsStyle.swift @@ -67,7 +67,7 @@ import SwiftUI /// } /// ``` public struct NavigationViewWithColumnsStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case columns } } diff --git a/Sources/ViewTypes/NavigationViewWithStackStyle.swift b/Sources/ViewTypes/NavigationViewWithStackStyle.swift index 993ff226..f44064b3 100644 --- a/Sources/ViewTypes/NavigationViewWithStackStyle.swift +++ b/Sources/ViewTypes/NavigationViewWithStackStyle.swift @@ -55,7 +55,7 @@ import SwiftUI /// } /// ``` public struct NavigationViewWithStackStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case stack } } diff --git a/Sources/ViewTypes/PickerWithMenuStyle.swift b/Sources/ViewTypes/PickerWithMenuStyle.swift index 136d508f..2a7079e2 100644 --- a/Sources/ViewTypes/PickerWithMenuStyle.swift +++ b/Sources/ViewTypes/PickerWithMenuStyle.swift @@ -35,7 +35,7 @@ import SwiftUI /// /// Not available. public struct PickerWithMenuStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case menu } } diff --git a/Sources/ViewTypes/PickerWithSegmentedStyle.swift b/Sources/ViewTypes/PickerWithSegmentedStyle.swift index 45f0f75f..7ad1ff04 100644 --- a/Sources/ViewTypes/PickerWithSegmentedStyle.swift +++ b/Sources/ViewTypes/PickerWithSegmentedStyle.swift @@ -83,7 +83,7 @@ import SwiftUI /// } /// ``` public struct PickerWithSegmentedStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case segmented } } diff --git a/Sources/ViewTypes/PickerWithWheelStyle.swift b/Sources/ViewTypes/PickerWithWheelStyle.swift index 8da83ce0..991fff35 100644 --- a/Sources/ViewTypes/PickerWithWheelStyle.swift +++ b/Sources/ViewTypes/PickerWithWheelStyle.swift @@ -51,7 +51,7 @@ import SwiftUI /// } /// ``` public struct PickerWithWheelStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case wheel } } diff --git a/Sources/ViewTypes/ProgressViewWithCircularStyle.swift b/Sources/ViewTypes/ProgressViewWithCircularStyle.swift index bdf2521d..d6a79677 100644 --- a/Sources/ViewTypes/ProgressViewWithCircularStyle.swift +++ b/Sources/ViewTypes/ProgressViewWithCircularStyle.swift @@ -59,7 +59,7 @@ import SwiftUI /// } /// ``` public struct ProgressViewWithCircularStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case circular } } diff --git a/Sources/ViewTypes/ProgressViewWithLinearStyle.swift b/Sources/ViewTypes/ProgressViewWithLinearStyle.swift index 559dbaf9..9c436166 100644 --- a/Sources/ViewTypes/ProgressViewWithLinearStyle.swift +++ b/Sources/ViewTypes/ProgressViewWithLinearStyle.swift @@ -59,7 +59,7 @@ import SwiftUI /// } /// ``` public struct ProgressViewWithLinearStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case linear } } diff --git a/Sources/ViewTypes/SignInWithAppleButton.swift b/Sources/ViewTypes/SignInWithAppleButton.swift index 76eb35ce..f28d3249 100644 --- a/Sources/ViewTypes/SignInWithAppleButton.swift +++ b/Sources/ViewTypes/SignInWithAppleButton.swift @@ -13,7 +13,7 @@ import SwiftUI /// } onCompletion: { result in /// // do something with result /// } -/// .introspect(.signInWithAppleButton, on: .iOS(.v14, .v15, .v16, .v17)) { +/// .introspect(.signInWithAppleButton, on: .iOS(.v14, .v15, .v16, .v17, .v18)) { /// print(type(of: $0)) // ASAuthorizationAppleIDButton /// } /// } @@ -30,7 +30,7 @@ import SwiftUI /// } onCompletion: { result in /// // do something with result /// } -/// .introspect(.signInWithAppleButton, on: .tvOS(.v14, .v15, .v16, .v17)) { +/// .introspect(.signInWithAppleButton, on: .tvOS(.v14, .v15, .v16, .v17, .v18)) { /// print(type(of: $0)) // ASAuthorizationAppleIDButton /// } /// } diff --git a/Sources/ViewTypes/TabView.swift b/Sources/ViewTypes/TabView.swift index 4f15bf66..a4657d4b 100644 --- a/Sources/ViewTypes/TabView.swift +++ b/Sources/ViewTypes/TabView.swift @@ -70,6 +70,7 @@ extension iOSViewVersion { public static let v17 = Self(for: .v17, selector: selector) public static let v18 = Self(for: .v18, selector: selector) + @MainActor private static var selector: IntrospectionSelector { .default.withAncestorSelector { $0.tabBarController } } @@ -83,6 +84,7 @@ extension tvOSViewVersion { public static let v17 = Self(for: .v17, selector: selector) public static let v18 = Self(for: .v18, selector: selector) + @MainActor private static var selector: IntrospectionSelector { .default.withAncestorSelector { $0.tabBarController } } diff --git a/Sources/ViewTypes/TabViewWithPageStyle.swift b/Sources/ViewTypes/TabViewWithPageStyle.swift index 8d567415..eaada897 100644 --- a/Sources/ViewTypes/TabViewWithPageStyle.swift +++ b/Sources/ViewTypes/TabViewWithPageStyle.swift @@ -58,7 +58,7 @@ import SwiftUI /// } /// ``` public struct TabViewWithPageStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case page } } diff --git a/Sources/ViewTypes/TextFieldWithVerticalAxis.swift b/Sources/ViewTypes/TextFieldWithVerticalAxis.swift index a8501fb2..d76a453c 100644 --- a/Sources/ViewTypes/TextFieldWithVerticalAxis.swift +++ b/Sources/ViewTypes/TextFieldWithVerticalAxis.swift @@ -63,7 +63,7 @@ import SwiftUI /// } /// ``` public struct TextFieldWithVerticalAxisType: IntrospectableViewType { - public enum Axis { + public enum Axis: Sendable { case vertical } } diff --git a/Sources/ViewTypes/ToggleWithButtonStyle.swift b/Sources/ViewTypes/ToggleWithButtonStyle.swift index 06f924d6..d5f9fe43 100644 --- a/Sources/ViewTypes/ToggleWithButtonStyle.swift +++ b/Sources/ViewTypes/ToggleWithButtonStyle.swift @@ -31,7 +31,7 @@ import SwiftUI /// /// Not available. public struct ToggleWithButtonStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case button } } diff --git a/Sources/ViewTypes/ToggleWithCheckboxStyle.swift b/Sources/ViewTypes/ToggleWithCheckboxStyle.swift index bb077a19..ee7844ab 100644 --- a/Sources/ViewTypes/ToggleWithCheckboxStyle.swift +++ b/Sources/ViewTypes/ToggleWithCheckboxStyle.swift @@ -31,7 +31,7 @@ import SwiftUI /// /// Not available. public struct ToggleWithCheckboxStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case checkbox } } diff --git a/Sources/ViewTypes/ToggleWithSwitchStyle.swift b/Sources/ViewTypes/ToggleWithSwitchStyle.swift index 9b737212..2788a36e 100644 --- a/Sources/ViewTypes/ToggleWithSwitchStyle.swift +++ b/Sources/ViewTypes/ToggleWithSwitchStyle.swift @@ -43,7 +43,7 @@ import SwiftUI /// /// Not available. public struct ToggleWithSwitchStyleType: IntrospectableViewType { - public enum Style { + public enum Style: Sendable { case `switch` } } diff --git a/Tests/Tests/PlatformVersionTests.swift b/Tests/Tests/PlatformVersionTests.swift index 0b2e0169..2bd514ec 100644 --- a/Tests/Tests/PlatformVersionTests.swift +++ b/Tests/Tests/PlatformVersionTests.swift @@ -4,31 +4,43 @@ import XCTest final class PlatformVersionTests: XCTestCase { func test_iOS_isCurrent() { #if os(iOS) - if #available(iOS 17, *) { + if #available(iOS 18, *) { + XCTAssertEqual(iOSVersion.v18.isCurrent, true) + XCTAssertEqual(iOSVersion.v17.isCurrent, false) + XCTAssertEqual(iOSVersion.v16.isCurrent, false) + XCTAssertEqual(iOSVersion.v15.isCurrent, false) + XCTAssertEqual(iOSVersion.v14.isCurrent, false) + XCTAssertEqual(iOSVersion.v13.isCurrent, false) + } else if #available(iOS 17, *) { + XCTAssertEqual(iOSVersion.v18.isCurrent, false) XCTAssertEqual(iOSVersion.v17.isCurrent, true) XCTAssertEqual(iOSVersion.v16.isCurrent, false) XCTAssertEqual(iOSVersion.v15.isCurrent, false) XCTAssertEqual(iOSVersion.v14.isCurrent, false) XCTAssertEqual(iOSVersion.v13.isCurrent, false) } else if #available(iOS 16, *) { + XCTAssertEqual(iOSVersion.v18.isCurrent, false) XCTAssertEqual(iOSVersion.v17.isCurrent, false) XCTAssertEqual(iOSVersion.v16.isCurrent, true) XCTAssertEqual(iOSVersion.v15.isCurrent, false) XCTAssertEqual(iOSVersion.v14.isCurrent, false) XCTAssertEqual(iOSVersion.v13.isCurrent, false) } else if #available(iOS 15, *) { + XCTAssertEqual(iOSVersion.v18.isCurrent, false) XCTAssertEqual(iOSVersion.v17.isCurrent, false) XCTAssertEqual(iOSVersion.v16.isCurrent, false) XCTAssertEqual(iOSVersion.v15.isCurrent, true) XCTAssertEqual(iOSVersion.v14.isCurrent, false) XCTAssertEqual(iOSVersion.v13.isCurrent, false) } else if #available(iOS 14, *) { + XCTAssertEqual(iOSVersion.v18.isCurrent, false) XCTAssertEqual(iOSVersion.v17.isCurrent, false) XCTAssertEqual(iOSVersion.v16.isCurrent, false) XCTAssertEqual(iOSVersion.v15.isCurrent, false) XCTAssertEqual(iOSVersion.v14.isCurrent, true) XCTAssertEqual(iOSVersion.v13.isCurrent, false) } else if #available(iOS 13, *) { + XCTAssertEqual(iOSVersion.v18.isCurrent, false) XCTAssertEqual(iOSVersion.v17.isCurrent, false) XCTAssertEqual(iOSVersion.v16.isCurrent, false) XCTAssertEqual(iOSVersion.v15.isCurrent, false) @@ -36,6 +48,7 @@ final class PlatformVersionTests: XCTestCase { XCTAssertEqual(iOSVersion.v13.isCurrent, true) } #else + XCTAssertEqual(iOSVersion.v18.isCurrent, false) XCTAssertEqual(iOSVersion.v17.isCurrent, false) XCTAssertEqual(iOSVersion.v16.isCurrent, false) XCTAssertEqual(iOSVersion.v15.isCurrent, false) @@ -46,31 +59,43 @@ final class PlatformVersionTests: XCTestCase { func test_iOS_isCurrentOrPast() { #if os(iOS) - if #available(iOS 17, *) { + if #available(iOS 18, *) { + XCTAssertEqual(iOSVersion.v18.isCurrentOrPast, true) + XCTAssertEqual(iOSVersion.v17.isCurrentOrPast, true) + XCTAssertEqual(iOSVersion.v16.isCurrentOrPast, true) + XCTAssertEqual(iOSVersion.v15.isCurrentOrPast, true) + XCTAssertEqual(iOSVersion.v14.isCurrentOrPast, true) + XCTAssertEqual(iOSVersion.v13.isCurrentOrPast, true) + } else if #available(iOS 17, *) { + XCTAssertEqual(iOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v17.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v16.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v15.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v14.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v13.isCurrentOrPast, true) } else if #available(iOS 16, *) { + XCTAssertEqual(iOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v16.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v15.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v14.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v13.isCurrentOrPast, true) } else if #available(iOS 15, *) { + XCTAssertEqual(iOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v16.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v15.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v14.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v13.isCurrentOrPast, true) } else if #available(iOS 14, *) { + XCTAssertEqual(iOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v16.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v15.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v14.isCurrentOrPast, true) XCTAssertEqual(iOSVersion.v13.isCurrentOrPast, true) } else if #available(iOS 13, *) { + XCTAssertEqual(iOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v16.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v15.isCurrentOrPast, false) @@ -78,6 +103,7 @@ final class PlatformVersionTests: XCTestCase { XCTAssertEqual(iOSVersion.v13.isCurrentOrPast, true) } #else + XCTAssertEqual(iOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v16.isCurrentOrPast, false) XCTAssertEqual(iOSVersion.v15.isCurrentOrPast, false) @@ -88,31 +114,43 @@ final class PlatformVersionTests: XCTestCase { func test_macOS_isCurrent() { #if os(macOS) - if #available(macOS 14, *) { + if #available(macOS 15, *) { + XCTAssertEqual(macOSVersion.v15.isCurrent, true) + XCTAssertEqual(macOSVersion.v14.isCurrent, false) + XCTAssertEqual(macOSVersion.v13.isCurrent, false) + XCTAssertEqual(macOSVersion.v12.isCurrent, false) + XCTAssertEqual(macOSVersion.v11.isCurrent, false) + XCTAssertEqual(macOSVersion.v10_15.isCurrent, false) + } else if #available(macOS 14, *) { + XCTAssertEqual(macOSVersion.v15.isCurrent, false) XCTAssertEqual(macOSVersion.v14.isCurrent, true) XCTAssertEqual(macOSVersion.v13.isCurrent, false) XCTAssertEqual(macOSVersion.v12.isCurrent, false) XCTAssertEqual(macOSVersion.v11.isCurrent, false) XCTAssertEqual(macOSVersion.v10_15.isCurrent, false) } else if #available(macOS 13, *) { + XCTAssertEqual(macOSVersion.v15.isCurrent, false) XCTAssertEqual(macOSVersion.v14.isCurrent, false) XCTAssertEqual(macOSVersion.v13.isCurrent, true) XCTAssertEqual(macOSVersion.v12.isCurrent, false) XCTAssertEqual(macOSVersion.v11.isCurrent, false) XCTAssertEqual(macOSVersion.v10_15.isCurrent, false) } else if #available(macOS 12, *) { + XCTAssertEqual(macOSVersion.v15.isCurrent, false) XCTAssertEqual(macOSVersion.v14.isCurrent, false) XCTAssertEqual(macOSVersion.v13.isCurrent, false) XCTAssertEqual(macOSVersion.v12.isCurrent, true) XCTAssertEqual(macOSVersion.v11.isCurrent, false) XCTAssertEqual(macOSVersion.v10_15.isCurrent, false) } else if #available(macOS 11, *) { + XCTAssertEqual(macOSVersion.v15.isCurrent, false) XCTAssertEqual(macOSVersion.v14.isCurrent, false) XCTAssertEqual(macOSVersion.v13.isCurrent, false) XCTAssertEqual(macOSVersion.v12.isCurrent, false) XCTAssertEqual(macOSVersion.v11.isCurrent, true) XCTAssertEqual(macOSVersion.v10_15.isCurrent, false) } else if #available(macOS 10.15, *) { + XCTAssertEqual(macOSVersion.v15.isCurrent, false) XCTAssertEqual(macOSVersion.v14.isCurrent, false) XCTAssertEqual(macOSVersion.v13.isCurrent, false) XCTAssertEqual(macOSVersion.v12.isCurrent, false) @@ -120,6 +158,7 @@ final class PlatformVersionTests: XCTestCase { XCTAssertEqual(macOSVersion.v10_15.isCurrent, true) } #else + XCTAssertEqual(macOSVersion.v15.isCurrent, false) XCTAssertEqual(macOSVersion.v14.isCurrent, false) XCTAssertEqual(macOSVersion.v13.isCurrent, false) XCTAssertEqual(macOSVersion.v12.isCurrent, false) @@ -130,31 +169,43 @@ final class PlatformVersionTests: XCTestCase { func test_macOS_isCurrentOrPast() { #if os(macOS) - if #available(macOS 14, *) { + if #available(macOS 15, *) { + XCTAssertEqual(macOSVersion.v15.isCurrentOrPast, true) + XCTAssertEqual(macOSVersion.v14.isCurrentOrPast, true) + XCTAssertEqual(macOSVersion.v13.isCurrentOrPast, true) + XCTAssertEqual(macOSVersion.v12.isCurrentOrPast, true) + XCTAssertEqual(macOSVersion.v11.isCurrentOrPast, true) + XCTAssertEqual(macOSVersion.v10_15.isCurrentOrPast, true) + } else if #available(macOS 14, *) { + XCTAssertEqual(macOSVersion.v15.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v14.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v13.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v12.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v11.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v10_15.isCurrentOrPast, true) } else if #available(macOS 13, *) { + XCTAssertEqual(macOSVersion.v15.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v14.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v13.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v12.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v11.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v10_15.isCurrentOrPast, true) } else if #available(macOS 12, *) { + XCTAssertEqual(macOSVersion.v15.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v14.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v13.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v12.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v11.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v10_15.isCurrentOrPast, true) } else if #available(macOS 11, *) { + XCTAssertEqual(macOSVersion.v15.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v14.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v13.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v12.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v11.isCurrentOrPast, true) XCTAssertEqual(macOSVersion.v10_15.isCurrentOrPast, true) } else if #available(macOS 10.15, *) { + XCTAssertEqual(macOSVersion.v15.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v14.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v13.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v12.isCurrentOrPast, false) @@ -162,6 +213,7 @@ final class PlatformVersionTests: XCTestCase { XCTAssertEqual(macOSVersion.v10_15.isCurrentOrPast, true) } #else + XCTAssertEqual(macOSVersion.v15.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v14.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v13.isCurrentOrPast, false) XCTAssertEqual(macOSVersion.v12.isCurrentOrPast, false) @@ -172,31 +224,44 @@ final class PlatformVersionTests: XCTestCase { func test_tvOS_isCurrent() { #if os(tvOS) - if #available(tvOS 17, *) { + if #available(tvOS 18, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrent, true) + XCTAssertEqual(tvOSVersion.v17.isCurrent, false) + XCTAssertEqual(tvOSVersion.v16.isCurrent, false) + XCTAssertEqual(tvOSVersion.v15.isCurrent, false) + XCTAssertEqual(tvOSVersion.v14.isCurrent, false) + XCTAssertEqual(tvOSVersion.v13.isCurrent, false) + } else if #available(tvOS 17, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrent, false) XCTAssertEqual(tvOSVersion.v17.isCurrent, true) XCTAssertEqual(tvOSVersion.v16.isCurrent, false) XCTAssertEqual(tvOSVersion.v15.isCurrent, false) XCTAssertEqual(tvOSVersion.v14.isCurrent, false) XCTAssertEqual(tvOSVersion.v13.isCurrent, false) } else if #available(tvOS 16, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrent, false) + XCTAssertEqual(tvOSVersion.v17.isCurrent, false) XCTAssertEqual(tvOSVersion.v17.isCurrent, false) XCTAssertEqual(tvOSVersion.v16.isCurrent, true) XCTAssertEqual(tvOSVersion.v15.isCurrent, false) XCTAssertEqual(tvOSVersion.v14.isCurrent, false) XCTAssertEqual(tvOSVersion.v13.isCurrent, false) } else if #available(tvOS 15, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrent, false) XCTAssertEqual(tvOSVersion.v17.isCurrent, false) XCTAssertEqual(tvOSVersion.v16.isCurrent, false) XCTAssertEqual(tvOSVersion.v15.isCurrent, true) XCTAssertEqual(tvOSVersion.v14.isCurrent, false) XCTAssertEqual(tvOSVersion.v13.isCurrent, false) } else if #available(tvOS 14, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrent, false) XCTAssertEqual(tvOSVersion.v17.isCurrent, false) XCTAssertEqual(tvOSVersion.v16.isCurrent, false) XCTAssertEqual(tvOSVersion.v15.isCurrent, false) XCTAssertEqual(tvOSVersion.v14.isCurrent, true) XCTAssertEqual(tvOSVersion.v13.isCurrent, false) } else if #available(tvOS 13, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrent, false) XCTAssertEqual(tvOSVersion.v17.isCurrent, false) XCTAssertEqual(tvOSVersion.v16.isCurrent, false) XCTAssertEqual(tvOSVersion.v15.isCurrent, false) @@ -204,6 +269,7 @@ final class PlatformVersionTests: XCTestCase { XCTAssertEqual(tvOSVersion.v13.isCurrent, true) } #else + XCTAssertEqual(tvOSVersion.v18.isCurrent, false) XCTAssertEqual(tvOSVersion.v17.isCurrent, false) XCTAssertEqual(tvOSVersion.v16.isCurrent, false) XCTAssertEqual(tvOSVersion.v15.isCurrent, false) @@ -214,31 +280,43 @@ final class PlatformVersionTests: XCTestCase { func test_tvOS_isCurrentOrPast() { #if os(tvOS) - if #available(tvOS 17, *) { + if #available(tvOS 18, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrentOrPast, true) + XCTAssertEqual(tvOSVersion.v17.isCurrentOrPast, true) + XCTAssertEqual(tvOSVersion.v16.isCurrentOrPast, true) + XCTAssertEqual(tvOSVersion.v15.isCurrentOrPast, true) + XCTAssertEqual(tvOSVersion.v14.isCurrentOrPast, true) + XCTAssertEqual(tvOSVersion.v13.isCurrentOrPast, true) + } else if #available(tvOS 17, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v17.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v16.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v15.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v14.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v13.isCurrentOrPast, true) } else if #available(tvOS 16, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v16.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v15.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v14.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v13.isCurrentOrPast, true) } else if #available(tvOS 15, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v16.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v15.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v14.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v13.isCurrentOrPast, true) } else if #available(tvOS 14, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v16.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v15.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v14.isCurrentOrPast, true) XCTAssertEqual(tvOSVersion.v13.isCurrentOrPast, true) } else if #available(tvOS 13, *) { + XCTAssertEqual(tvOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v16.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v15.isCurrentOrPast, false) @@ -246,6 +324,7 @@ final class PlatformVersionTests: XCTestCase { XCTAssertEqual(tvOSVersion.v13.isCurrentOrPast, true) } #else + XCTAssertEqual(tvOSVersion.v18.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v17.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v16.isCurrentOrPast, false) XCTAssertEqual(tvOSVersion.v15.isCurrentOrPast, false) diff --git a/Tests/Tests/ViewTypes/ColorPickerTests.swift b/Tests/Tests/ViewTypes/ColorPickerTests.swift index f61bd4b9..d80b48ac 100644 --- a/Tests/Tests/ViewTypes/ColorPickerTests.swift +++ b/Tests/Tests/ViewTypes/ColorPickerTests.swift @@ -27,21 +27,21 @@ final class ColorPickerTests: XCTestCase { VStack { ColorPicker("", selection: .constant(PlatformColor.red.cgColor)) #if os(iOS) || os(visionOS) - .introspect(.colorPicker, on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.colorPicker, on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.colorPicker, on: .macOS(.v11, .v12, .v13, .v14), customize: spy0) #endif ColorPicker("", selection: .constant(PlatformColor.green.cgColor)) #if os(iOS) || os(visionOS) - .introspect(.colorPicker, on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.colorPicker, on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.colorPicker, on: .macOS(.v11, .v12, .v13, .v14), customize: spy1) #endif ColorPicker("", selection: .constant(PlatformColor.blue.cgColor)) #if os(iOS) || os(visionOS) - .introspect(.colorPicker, on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.colorPicker, on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.colorPicker, on: .macOS(.v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/DatePickerTests.swift b/Tests/Tests/ViewTypes/DatePickerTests.swift index 1cdaf623..6b7a3147 100644 --- a/Tests/Tests/ViewTypes/DatePickerTests.swift +++ b/Tests/Tests/ViewTypes/DatePickerTests.swift @@ -24,7 +24,7 @@ final class DatePickerTests: XCTestCase { VStack { DatePicker("", selection: .constant(date0)) #if os(iOS) || os(visionOS) - .introspect(.datePicker, on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.datePicker, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.datePicker, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -32,7 +32,7 @@ final class DatePickerTests: XCTestCase { DatePicker("", selection: .constant(date1)) #if os(iOS) || os(visionOS) - .introspect(.datePicker, on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.datePicker, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.datePicker, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif @@ -40,7 +40,7 @@ final class DatePickerTests: XCTestCase { DatePicker("", selection: .constant(date2)) #if os(iOS) || os(visionOS) - .introspect(.datePicker, on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.datePicker, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.datePicker, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/DatePickerWithCompactFieldStyleTests.swift b/Tests/Tests/ViewTypes/DatePickerWithCompactFieldStyleTests.swift index 3698f84b..bf2dd657 100644 --- a/Tests/Tests/ViewTypes/DatePickerWithCompactFieldStyleTests.swift +++ b/Tests/Tests/ViewTypes/DatePickerWithCompactFieldStyleTests.swift @@ -30,7 +30,7 @@ final class DatePickerWithCompactStyleTests: XCTestCase { DatePicker("", selection: .constant(date0)) .datePickerStyle(.compact) #if os(iOS) || os(visionOS) - .introspect(.datePicker(style: .compact), on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.datePicker(style: .compact), on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.datePicker(style: .compact), on: .macOS(.v10_15_4, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -39,7 +39,7 @@ final class DatePickerWithCompactStyleTests: XCTestCase { DatePicker("", selection: .constant(date1)) .datePickerStyle(.compact) #if os(iOS) || os(visionOS) - .introspect(.datePicker(style: .compact), on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.datePicker(style: .compact), on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.datePicker(style: .compact), on: .macOS(.v10_15_4, .v11, .v12, .v13, .v14), customize: spy1) #endif @@ -48,7 +48,7 @@ final class DatePickerWithCompactStyleTests: XCTestCase { DatePicker("", selection: .constant(date2)) .datePickerStyle(.compact) #if os(iOS) || os(visionOS) - .introspect(.datePicker(style: .compact), on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.datePicker(style: .compact), on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.datePicker(style: .compact), on: .macOS(.v10_15_4, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/DatePickerWithGraphicalStyleTests.swift b/Tests/Tests/ViewTypes/DatePickerWithGraphicalStyleTests.swift index 8aa62db4..74cc2dc4 100644 --- a/Tests/Tests/ViewTypes/DatePickerWithGraphicalStyleTests.swift +++ b/Tests/Tests/ViewTypes/DatePickerWithGraphicalStyleTests.swift @@ -30,7 +30,7 @@ final class DatePickerWithGraphicalStyleTests: XCTestCase { DatePicker("", selection: .constant(date0)) .datePickerStyle(.graphical) #if os(iOS) || os(visionOS) - .introspect(.datePicker(style: .graphical), on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.datePicker(style: .graphical), on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.datePicker(style: .graphical), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -39,7 +39,7 @@ final class DatePickerWithGraphicalStyleTests: XCTestCase { DatePicker("", selection: .constant(date1)) .datePickerStyle(.graphical) #if os(iOS) || os(visionOS) - .introspect(.datePicker(style: .graphical), on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.datePicker(style: .graphical), on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.datePicker(style: .graphical), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif @@ -48,7 +48,7 @@ final class DatePickerWithGraphicalStyleTests: XCTestCase { DatePicker("", selection: .constant(date2)) .datePickerStyle(.graphical) #if os(iOS) || os(visionOS) - .introspect(.datePicker(style: .graphical), on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.datePicker(style: .graphical), on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.datePicker(style: .graphical), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/DatePickerWithWheelStyleTests.swift b/Tests/Tests/ViewTypes/DatePickerWithWheelStyleTests.swift index ac1256f2..d0a86f5c 100644 --- a/Tests/Tests/ViewTypes/DatePickerWithWheelStyleTests.swift +++ b/Tests/Tests/ViewTypes/DatePickerWithWheelStyleTests.swift @@ -23,21 +23,21 @@ final class DatePickerWithWheelStyleTests: XCTestCase { DatePicker("", selection: .constant(date0)) .datePickerStyle(.wheel) #if os(iOS) || os(visionOS) - .introspect(.datePicker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.datePicker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #endif .cornerRadius(8) DatePicker("", selection: .constant(date1)) .datePickerStyle(.wheel) #if os(iOS) || os(visionOS) - .introspect(.datePicker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.datePicker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #endif .cornerRadius(8) DatePicker("", selection: .constant(date2)) .datePickerStyle(.wheel) #if os(iOS) || os(visionOS) - .introspect(.datePicker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.datePicker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #endif } } extraAssertions: { diff --git a/Tests/Tests/ViewTypes/FormTests.swift b/Tests/Tests/ViewTypes/FormTests.swift index c6125c8b..f4580949 100644 --- a/Tests/Tests/ViewTypes/FormTests.swift +++ b/Tests/Tests/ViewTypes/FormTests.swift @@ -21,15 +21,15 @@ final class FormTests: XCTestCase { Text("Item 1") } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.form, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { spy0($0) } - .introspect(.form, on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } + .introspect(.form, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { spy0($0) } + .introspect(.form, on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } #endif Form { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.form, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17), scope: .ancestor) { spy1($0) } - .introspect(.form, on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { spy1($0) } + .introspect(.form, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), scope: .ancestor) { spy1($0) } + .introspect(.form, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { spy1($0) } #endif } } diff --git a/Tests/Tests/ViewTypes/FormWithGroupedStyleTests.swift b/Tests/Tests/ViewTypes/FormWithGroupedStyleTests.swift index d6fdef3b..53c1ec36 100644 --- a/Tests/Tests/ViewTypes/FormWithGroupedStyleTests.swift +++ b/Tests/Tests/ViewTypes/FormWithGroupedStyleTests.swift @@ -26,8 +26,8 @@ final class FormWithGroupedStyleTests: XCTestCase { } .formStyle(.grouped) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.form(style: .grouped), on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } - .introspect(.form(style: .grouped), on: .tvOS(.v16, .v17)) { spy0($0) } + .introspect(.form(style: .grouped), on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } + .introspect(.form(style: .grouped), on: .tvOS(.v16, .v17, .v18)) { spy0($0) } #elseif os(macOS) .introspect(.form(style: .grouped), on: .macOS(.v13, .v14)) { spy0($0) } #endif @@ -35,8 +35,8 @@ final class FormWithGroupedStyleTests: XCTestCase { Form { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.form(style: .grouped), on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { spy1($0) } - .introspect(.form(style: .grouped), on: .tvOS(.v16, .v17), scope: .ancestor) { spy1($0) } + .introspect(.form(style: .grouped), on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { spy1($0) } + .introspect(.form(style: .grouped), on: .tvOS(.v16, .v17, .v18), scope: .ancestor) { spy1($0) } #elseif os(macOS) .introspect(.form(style: .grouped), on: .macOS(.v13, .v14), scope: .ancestor) { spy1($0) } #endif diff --git a/Tests/Tests/ViewTypes/FullScreenCoverTests.swift b/Tests/Tests/ViewTypes/FullScreenCoverTests.swift index 66944199..92aabcea 100644 --- a/Tests/Tests/ViewTypes/FullScreenCoverTests.swift +++ b/Tests/Tests/ViewTypes/FullScreenCoverTests.swift @@ -20,7 +20,7 @@ final class FullScreenCoverTests: XCTestCase { #if os(iOS) || os(tvOS) || os(visionOS) .introspect( .fullScreenCover, - on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), + on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0 ) #endif diff --git a/Tests/Tests/ViewTypes/ListCellTests.swift b/Tests/Tests/ViewTypes/ListCellTests.swift index 2d4b65a9..d6167827 100644 --- a/Tests/Tests/ViewTypes/ListCellTests.swift +++ b/Tests/Tests/ViewTypes/ListCellTests.swift @@ -17,8 +17,8 @@ final class ListCellTests: XCTestCase { List { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.listCell, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { spy($0) } - .introspect(.listCell, on: .iOS(.v16, .v17), .visionOS(.v1)) { spy($0) } + .introspect(.listCell, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { spy($0) } + .introspect(.listCell, on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy($0) } #elseif os(macOS) .introspect(.listCell, on: .macOS(.v10_15, .v11, .v12, .v13, .v14)) { spy($0) } #endif @@ -33,8 +33,8 @@ final class ListCellTests: XCTestCase { List { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.listCell, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { spy($0) } - .introspect(.listCell, on: .iOS(.v16, .v17), .visionOS(.v1)) { spy($0) } + .introspect(.listCell, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { spy($0) } + .introspect(.listCell, on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy($0) } #elseif os(macOS) .introspect(.listCell, on: .macOS(.v10_15, .v11, .v12, .v13, .v14)) { spy($0) } #endif diff --git a/Tests/Tests/ViewTypes/ListTests.swift b/Tests/Tests/ViewTypes/ListTests.swift index fe722b93..2867fc57 100644 --- a/Tests/Tests/ViewTypes/ListTests.swift +++ b/Tests/Tests/ViewTypes/ListTests.swift @@ -20,8 +20,8 @@ final class ListTests: XCTestCase { Text("Item 1") } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { spy0($0) } - .introspect(.list, on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } + .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { spy0($0) } + .introspect(.list, on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } #elseif os(macOS) .introspect(.list, on: .macOS(.v10_15, .v11, .v12, .v13, .v14)) { spy0($0) } #endif @@ -29,8 +29,8 @@ final class ListTests: XCTestCase { List { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17), scope: .ancestor) { spy1($0) } - .introspect(.list, on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { spy1($0) } + .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), scope: .ancestor) { spy1($0) } + .introspect(.list, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { spy1($0) } #elseif os(macOS) .introspect(.list, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), scope: .ancestor) { spy1($0) } #endif @@ -54,13 +54,13 @@ final class ListTests: XCTestCase { Text("Item 1") } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { spy1($0) } - .introspect(.list, on: .iOS(.v16, .v17), .visionOS(.v1)) { spy1($0) } + .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { spy1($0) } + .introspect(.list, on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy1($0) } #endif } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { spy0($0) } - .introspect(.list, on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } + .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { spy0($0) } + .introspect(.list, on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } #endif } extraAssertions: { XCTAssert($0[safe: 0] !== $0[safe: 1]) @@ -78,8 +78,8 @@ final class ListTests: XCTestCase { Text("Item 1") } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { spy0($0) } - .introspect(.list, on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } + .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { spy0($0) } + .introspect(.list, on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } #elseif os(macOS) .introspect(.list, on: .macOS(.v10_15, .v11, .v12, .v13, .v14)) { spy0($0) } #endif @@ -90,8 +90,8 @@ final class ListTests: XCTestCase { List { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17), scope: .ancestor) { spy1($0) } - .introspect(.list, on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { spy1($0) } + .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), scope: .ancestor) { spy1($0) } + .introspect(.list, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { spy1($0) } #elseif os(macOS) .introspect(.list, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), scope: .ancestor) { spy1($0) } #endif diff --git a/Tests/Tests/ViewTypes/ListWithGroupedStyleTests.swift b/Tests/Tests/ViewTypes/ListWithGroupedStyleTests.swift index 5949ee45..0298705b 100644 --- a/Tests/Tests/ViewTypes/ListWithGroupedStyleTests.swift +++ b/Tests/Tests/ViewTypes/ListWithGroupedStyleTests.swift @@ -20,15 +20,15 @@ final class ListWithGroupedStyleTests: XCTestCase { } .listStyle(.grouped) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list(style: .grouped), on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { spy0($0) } - .introspect(.list(style: .grouped), on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } + .introspect(.list(style: .grouped), on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { spy0($0) } + .introspect(.list(style: .grouped), on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } #endif List { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list(style: .grouped), on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17), scope: .ancestor) { spy1($0) } - .introspect(.list(style: .grouped), on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { spy1($0) } + .introspect(.list(style: .grouped), on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), scope: .ancestor) { spy1($0) } + .introspect(.list(style: .grouped), on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { spy1($0) } #endif } .listStyle(.grouped) diff --git a/Tests/Tests/ViewTypes/ListWithInsetGroupedStyleTests.swift b/Tests/Tests/ViewTypes/ListWithInsetGroupedStyleTests.swift index 12f6cd8f..e20d6c58 100644 --- a/Tests/Tests/ViewTypes/ListWithInsetGroupedStyleTests.swift +++ b/Tests/Tests/ViewTypes/ListWithInsetGroupedStyleTests.swift @@ -26,14 +26,14 @@ final class ListWithInsetGroupedStyleTests: XCTestCase { .listStyle(.insetGrouped) #if os(iOS) || os(visionOS) .introspect(.list(style: .insetGrouped), on: .iOS(.v14, .v15)) { spy0($0) } - .introspect(.list(style: .insetGrouped), on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } + .introspect(.list(style: .insetGrouped), on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } #endif List { Text("Item 1") #if os(iOS) || os(visionOS) .introspect(.list(style: .insetGrouped), on: .iOS(.v14, .v15), scope: .ancestor) { spy1($0) } - .introspect(.list(style: .insetGrouped), on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { spy1($0) } + .introspect(.list(style: .insetGrouped), on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { spy1($0) } #endif } .listStyle(.insetGrouped) diff --git a/Tests/Tests/ViewTypes/ListWithInsetStyleTests.swift b/Tests/Tests/ViewTypes/ListWithInsetStyleTests.swift index db88d126..e38193ca 100644 --- a/Tests/Tests/ViewTypes/ListWithInsetStyleTests.swift +++ b/Tests/Tests/ViewTypes/ListWithInsetStyleTests.swift @@ -28,7 +28,7 @@ final class ListWithInsetStyleTests: XCTestCase { .listStyle(.inset) #if os(iOS) || os(visionOS) .introspect(.list(style: .inset), on: .iOS(.v14, .v15)) { spy0($0) } - .introspect(.list(style: .inset), on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } + .introspect(.list(style: .inset), on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } #elseif os(macOS) .introspect(.list(style: .inset), on: .macOS(.v11, .v12, .v13, .v14)) { spy0($0) } #endif @@ -37,7 +37,7 @@ final class ListWithInsetStyleTests: XCTestCase { Text("Item 1") #if os(iOS) || os(visionOS) .introspect(.list(style: .inset), on: .iOS(.v14, .v15), scope: .ancestor) { spy1($0) } - .introspect(.list(style: .inset), on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { spy1($0) } + .introspect(.list(style: .inset), on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { spy1($0) } #elseif os(macOS) .introspect(.list(style: .inset), on: .macOS(.v11, .v12, .v13, .v14), scope: .ancestor) { spy1($0) } #endif diff --git a/Tests/Tests/ViewTypes/ListWithPlainStyleTests.swift b/Tests/Tests/ViewTypes/ListWithPlainStyleTests.swift index 1ad621f3..b038f96d 100644 --- a/Tests/Tests/ViewTypes/ListWithPlainStyleTests.swift +++ b/Tests/Tests/ViewTypes/ListWithPlainStyleTests.swift @@ -21,8 +21,8 @@ final class ListWithPlainStyleTests: XCTestCase { } .listStyle(.plain) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list(style: .plain), on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17)) { spy0($0) } - .introspect(.list(style: .plain), on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } + .introspect(.list(style: .plain), on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18)) { spy0($0) } + .introspect(.list(style: .plain), on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } #elseif os(macOS) .introspect(.list(style: .plain), on: .macOS(.v10_15, .v11, .v12, .v13, .v14)) { spy0($0) } #endif @@ -30,8 +30,8 @@ final class ListWithPlainStyleTests: XCTestCase { List { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.list(style: .plain), on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17), scope: .ancestor) { spy1($0) } - .introspect(.list(style: .plain), on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { spy1($0) } + .introspect(.list(style: .plain), on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), scope: .ancestor) { spy1($0) } + .introspect(.list(style: .plain), on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { spy1($0) } #elseif os(macOS) .introspect(.list(style: .plain), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), scope: .ancestor) { spy1($0) } #endif diff --git a/Tests/Tests/ViewTypes/ListWithSidebarStyleTests.swift b/Tests/Tests/ViewTypes/ListWithSidebarStyleTests.swift index 43de00ef..6b34d73d 100644 --- a/Tests/Tests/ViewTypes/ListWithSidebarStyleTests.swift +++ b/Tests/Tests/ViewTypes/ListWithSidebarStyleTests.swift @@ -28,7 +28,7 @@ final class ListWithSidebarStyleTests: XCTestCase { .listStyle(.sidebar) #if os(iOS) || os(visionOS) .introspect(.list(style: .sidebar), on: .iOS(.v14, .v15)) { spy0($0) } - .introspect(.list(style: .sidebar), on: .iOS(.v16, .v17), .visionOS(.v1)) { spy0($0) } + .introspect(.list(style: .sidebar), on: .iOS(.v16, .v17, .v18), .visionOS(.v1)) { spy0($0) } #elseif os(macOS) .introspect(.list(style: .sidebar), on: .macOS(.v10_15, .v11, .v12, .v13, .v14)) { spy0($0) } #endif @@ -37,7 +37,7 @@ final class ListWithSidebarStyleTests: XCTestCase { Text("Item 1") #if os(iOS) || os(visionOS) .introspect(.list(style: .sidebar), on: .iOS(.v14, .v15), scope: .ancestor) { spy1($0) } - .introspect(.list(style: .sidebar), on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor) { spy1($0) } + .introspect(.list(style: .sidebar), on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor) { spy1($0) } #elseif os(macOS) .introspect(.list(style: .sidebar), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), scope: .ancestor) { spy1($0) } #endif diff --git a/Tests/Tests/ViewTypes/MapTests.swift b/Tests/Tests/ViewTypes/MapTests.swift index 27032671..451e87be 100644 --- a/Tests/Tests/ViewTypes/MapTests.swift +++ b/Tests/Tests/ViewTypes/MapTests.swift @@ -25,21 +25,21 @@ final class MapTests: XCTestCase { Map(coordinateRegion: region) .introspect( .map, - on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .macOS(.v11, .v12, .v13, .v14), .visionOS(.v1), + on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .macOS(.v11, .v12, .v13, .v14), .visionOS(.v1), customize: spy0 ) Map(coordinateRegion: region) .introspect( .map, - on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .macOS(.v11, .v12, .v13, .v14), .visionOS(.v1), + on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .macOS(.v11, .v12, .v13, .v14), .visionOS(.v1), customize: spy1 ) Map(coordinateRegion: region) .introspect( .map, - on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .macOS(.v11, .v12, .v13, .v14), .visionOS(.v1), + on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .macOS(.v11, .v12, .v13, .v14), .visionOS(.v1), customize: spy2 ) } diff --git a/Tests/Tests/ViewTypes/NavigationSplitViewTests.swift b/Tests/Tests/ViewTypes/NavigationSplitViewTests.swift index 391ebe9d..5802f2a8 100644 --- a/Tests/Tests/ViewTypes/NavigationSplitViewTests.swift +++ b/Tests/Tests/ViewTypes/NavigationSplitViewTests.swift @@ -17,6 +17,9 @@ final class NavigationSplitViewTests: XCTestCase { guard #available(iOS 16, tvOS 16, macOS 13, *) else { throw XCTSkip() } + guard #unavailable(tvOS 18) else { + throw XCTSkip() + } XCTAssertViewIntrospection(of: PlatformNavigationSplitView.self) { spies in let spy = spies[0] @@ -33,7 +36,7 @@ final class NavigationSplitViewTests: XCTestCase { } } #if os(iOS) || os(visionOS) - .introspect(.navigationSplitView, on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy) + .introspect(.navigationSplitView, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy) #elseif os(tvOS) .introspect(.navigationSplitView, on: .tvOS(.v16, .v17), customize: spy) #elseif os(macOS) @@ -46,6 +49,9 @@ final class NavigationSplitViewTests: XCTestCase { guard #available(iOS 16, tvOS 16, macOS 13, *) else { throw XCTSkip() } + guard #unavailable(tvOS 18) else { + throw XCTSkip() + } XCTAssertViewIntrospection(of: PlatformNavigationSplitView.self) { spies in let spy = spies[0] @@ -56,7 +62,7 @@ final class NavigationSplitViewTests: XCTestCase { Color.red Text("Sidebar") #if os(iOS) || os(visionOS) - .introspect(.navigationSplitView, on: .iOS(.v16, .v17), .visionOS(.v1), scope: .ancestor, customize: spy) + .introspect(.navigationSplitView, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor, customize: spy) #elseif os(tvOS) .introspect(.navigationSplitView, on: .tvOS(.v16, .v17), scope: .ancestor, customize: spy) #elseif os(macOS) diff --git a/Tests/Tests/ViewTypes/NavigationStackTests.swift b/Tests/Tests/ViewTypes/NavigationStackTests.swift index 9ed4ac0c..e484a6b7 100644 --- a/Tests/Tests/ViewTypes/NavigationStackTests.swift +++ b/Tests/Tests/ViewTypes/NavigationStackTests.swift @@ -25,7 +25,7 @@ final class NavigationStackTests: XCTestCase { } } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.navigationStack, on: .iOS(.v16, .v17), .tvOS(.v16, .v17), .visionOS(.v1), customize: spy) + .introspect(.navigationStack, on: .iOS(.v16, .v17, .v18), .tvOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy) #endif } } @@ -43,7 +43,7 @@ final class NavigationStackTests: XCTestCase { Color.red Text("Something") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.navigationStack, on: .iOS(.v16, .v17), .tvOS(.v16, .v17), .visionOS(.v1), scope: .ancestor, customize: spy) + .introspect(.navigationStack, on: .iOS(.v16, .v17, .v18), .tvOS(.v16, .v17, .v18), .visionOS(.v1), scope: .ancestor, customize: spy) #endif } } diff --git a/Tests/Tests/ViewTypes/NavigationViewWithColumnsStyleTests.swift b/Tests/Tests/ViewTypes/NavigationViewWithColumnsStyleTests.swift index 4a1ae555..b22feeee 100644 --- a/Tests/Tests/ViewTypes/NavigationViewWithColumnsStyleTests.swift +++ b/Tests/Tests/ViewTypes/NavigationViewWithColumnsStyleTests.swift @@ -24,9 +24,9 @@ final class NavigationViewWithColumnsStyleTests: XCTestCase { } .navigationViewStyle(DoubleColumnNavigationViewStyle()) #if os(iOS) || os(visionOS) - .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy) + .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy) #elseif os(tvOS) - .introspect(.navigationView(style: .columns), on: .tvOS(.v13, .v14, .v15, .v16, .v17), customize: spy) + .introspect(.navigationView(style: .columns), on: .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy) #elseif os(macOS) .introspect(.navigationView(style: .columns), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy) #endif @@ -42,9 +42,9 @@ final class NavigationViewWithColumnsStyleTests: XCTestCase { Color.red Text("Something") #if os(iOS) || os(visionOS) - .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), scope: .ancestor, customize: spy) + .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), scope: .ancestor, customize: spy) #elseif os(tvOS) - .introspect(.navigationView(style: .columns), on: .tvOS(.v13, .v14, .v15, .v16, .v17), scope: .ancestor, customize: spy) + .introspect(.navigationView(style: .columns), on: .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), scope: .ancestor, customize: spy) #elseif os(macOS) .introspect(.navigationView(style: .columns), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), scope: .ancestor, customize: spy) #endif @@ -53,7 +53,7 @@ final class NavigationViewWithColumnsStyleTests: XCTestCase { .navigationViewStyle(DoubleColumnNavigationViewStyle()) #if os(iOS) // NB: this is necessary for ancestor introspection to work, because initially on iPad the "Customized" text isn't shown as it's hidden in the sidebar. This is why ancestor introspection is discouraged for most situations and it's opt-in. - .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17)) { + .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18)) { $0.preferredDisplayMode = .oneOverSecondary } #endif diff --git a/Tests/Tests/ViewTypes/NavigationViewWithStackStyleTests.swift b/Tests/Tests/ViewTypes/NavigationViewWithStackStyleTests.swift index 95ad9133..d9b975dc 100644 --- a/Tests/Tests/ViewTypes/NavigationViewWithStackStyleTests.swift +++ b/Tests/Tests/ViewTypes/NavigationViewWithStackStyleTests.swift @@ -21,7 +21,7 @@ final class NavigationViewWithStackStyleTests: XCTestCase { } .navigationViewStyle(.stack) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.navigationView(style: .stack), on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy) + .introspect(.navigationView(style: .stack), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy) #endif } } @@ -35,7 +35,7 @@ final class NavigationViewWithStackStyleTests: XCTestCase { Color.red Text("Something") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.navigationView(style: .stack), on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), scope: .ancestor, customize: spy) + .introspect(.navigationView(style: .stack), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), scope: .ancestor, customize: spy) #endif } } diff --git a/Tests/Tests/ViewTypes/PageControlTests.swift b/Tests/Tests/ViewTypes/PageControlTests.swift index 2b6aed8b..4e40fd52 100644 --- a/Tests/Tests/ViewTypes/PageControlTests.swift +++ b/Tests/Tests/ViewTypes/PageControlTests.swift @@ -24,7 +24,7 @@ final class PageControlTests: XCTestCase { } .tabViewStyle(.page(indexDisplayMode: .always)) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.pageControl, on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy) + .introspect(.pageControl, on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy) #endif } } diff --git a/Tests/Tests/ViewTypes/PickerWithSegmentedStyleTests.swift b/Tests/Tests/ViewTypes/PickerWithSegmentedStyleTests.swift index 109c27d3..681e53c8 100644 --- a/Tests/Tests/ViewTypes/PickerWithSegmentedStyleTests.swift +++ b/Tests/Tests/ViewTypes/PickerWithSegmentedStyleTests.swift @@ -22,7 +22,7 @@ final class PickerWithSegmentedStyleTests: XCTestCase { } .pickerStyle(.segmented) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.picker(style: .segmented), on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.picker(style: .segmented), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.picker(style: .segmented), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -34,7 +34,7 @@ final class PickerWithSegmentedStyleTests: XCTestCase { } .pickerStyle(.segmented) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.picker(style: .segmented), on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.picker(style: .segmented), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.picker(style: .segmented), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif @@ -47,7 +47,7 @@ final class PickerWithSegmentedStyleTests: XCTestCase { } .pickerStyle(.segmented) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.picker(style: .segmented), on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.picker(style: .segmented), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.picker(style: .segmented), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/PickerWithWheelStyleTests.swift b/Tests/Tests/ViewTypes/PickerWithWheelStyleTests.swift index 10be27b9..0fc1caa7 100644 --- a/Tests/Tests/ViewTypes/PickerWithWheelStyleTests.swift +++ b/Tests/Tests/ViewTypes/PickerWithWheelStyleTests.swift @@ -21,7 +21,7 @@ final class PickerWithWheelStyleTests: XCTestCase { } .pickerStyle(.wheel) #if os(iOS) || os(visionOS) - .introspect(.picker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.picker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #endif .cornerRadius(8) @@ -31,7 +31,7 @@ final class PickerWithWheelStyleTests: XCTestCase { } .pickerStyle(.wheel) #if os(iOS) || os(visionOS) - .introspect(.picker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.picker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #endif .cornerRadius(8) @@ -42,7 +42,7 @@ final class PickerWithWheelStyleTests: XCTestCase { } .pickerStyle(.wheel) #if os(iOS) || os(visionOS) - .introspect(.picker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.picker(style: .wheel), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #endif } } extraAssertions: { diff --git a/Tests/Tests/ViewTypes/PopoverTests.swift b/Tests/Tests/ViewTypes/PopoverTests.swift index 9b31e073..6e9b68cd 100644 --- a/Tests/Tests/ViewTypes/PopoverTests.swift +++ b/Tests/Tests/ViewTypes/PopoverTests.swift @@ -14,7 +14,7 @@ final class PopoverTests: XCTestCase { Text("Popover") .introspect( .popover, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0 ) } diff --git a/Tests/Tests/ViewTypes/ProgressViewWithCircularStyleTests.swift b/Tests/Tests/ViewTypes/ProgressViewWithCircularStyleTests.swift index b39448a4..af3802d1 100644 --- a/Tests/Tests/ViewTypes/ProgressViewWithCircularStyleTests.swift +++ b/Tests/Tests/ViewTypes/ProgressViewWithCircularStyleTests.swift @@ -24,7 +24,7 @@ final class ProgressViewWithCircularStyleTests: XCTestCase { ProgressView(value: 0.25) .progressViewStyle(.circular) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.progressView(style: .circular), on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.progressView(style: .circular), on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.progressView(style: .circular), on: .macOS(.v11, .v12, .v13, .v14), customize: spy0) #endif @@ -32,7 +32,7 @@ final class ProgressViewWithCircularStyleTests: XCTestCase { ProgressView(value: 0.5) .progressViewStyle(.circular) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.progressView(style: .circular), on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.progressView(style: .circular), on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.progressView(style: .circular), on: .macOS(.v11, .v12, .v13, .v14), customize: spy1) #endif @@ -40,7 +40,7 @@ final class ProgressViewWithCircularStyleTests: XCTestCase { ProgressView(value: 0.75) .progressViewStyle(.circular) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.progressView(style: .circular), on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.progressView(style: .circular), on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.progressView(style: .circular), on: .macOS(.v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/ProgressViewWithLinearStyleTests.swift b/Tests/Tests/ViewTypes/ProgressViewWithLinearStyleTests.swift index d6b889c2..f833f5c9 100644 --- a/Tests/Tests/ViewTypes/ProgressViewWithLinearStyleTests.swift +++ b/Tests/Tests/ViewTypes/ProgressViewWithLinearStyleTests.swift @@ -24,7 +24,7 @@ final class ProgressViewWithLinearStyleTests: XCTestCase { ProgressView(value: 0.25) .progressViewStyle(.linear) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.progressView(style: .linear), on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.progressView(style: .linear), on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.progressView(style: .linear), on: .macOS(.v11, .v12, .v13, .v14), customize: spy0) #endif @@ -32,7 +32,7 @@ final class ProgressViewWithLinearStyleTests: XCTestCase { ProgressView(value: 0.5) .progressViewStyle(.linear) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.progressView(style: .linear), on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.progressView(style: .linear), on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.progressView(style: .linear), on: .macOS(.v11, .v12, .v13, .v14), customize: spy1) #endif @@ -40,7 +40,7 @@ final class ProgressViewWithLinearStyleTests: XCTestCase { ProgressView(value: 0.75) .progressViewStyle(.linear) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.progressView(style: .linear), on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.progressView(style: .linear), on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.progressView(style: .linear), on: .macOS(.v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/ScrollViewTests.swift b/Tests/Tests/ViewTypes/ScrollViewTests.swift index caa9c6dc..6a973bd2 100644 --- a/Tests/Tests/ViewTypes/ScrollViewTests.swift +++ b/Tests/Tests/ViewTypes/ScrollViewTests.swift @@ -20,7 +20,7 @@ final class ScrollViewTests: XCTestCase { Text("Item 1") } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.scrollView, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -28,7 +28,7 @@ final class ScrollViewTests: XCTestCase { ScrollView(showsIndicators: true) { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), scope: .ancestor, customize: spy1) + .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), scope: .ancestor, customize: spy1) #elseif os(macOS) .introspect(.scrollView, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), scope: .ancestor, customize: spy1) #endif @@ -62,13 +62,13 @@ final class ScrollViewTests: XCTestCase { Text("Item 1") } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.scrollView, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.scrollView, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -98,7 +98,7 @@ final class ScrollViewTests: XCTestCase { Text("Item 1") } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.scrollView, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -109,7 +109,7 @@ final class ScrollViewTests: XCTestCase { ScrollView(showsIndicators: true) { Text("Item 1") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), scope: .ancestor, customize: spy1) + .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), scope: .ancestor, customize: spy1) #elseif os(macOS) .introspect(.scrollView, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), scope: .ancestor, customize: spy1) #endif diff --git a/Tests/Tests/ViewTypes/SearchFieldTests.swift b/Tests/Tests/ViewTypes/SearchFieldTests.swift index ce197d77..890f75c2 100644 --- a/Tests/Tests/ViewTypes/SearchFieldTests.swift +++ b/Tests/Tests/ViewTypes/SearchFieldTests.swift @@ -24,7 +24,7 @@ final class SearchFieldTests: XCTestCase { } .navigationViewStyle(.stack) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.searchField, on: .iOS(.v15, .v16, .v17), .tvOS(.v15, .v16, .v17), .visionOS(.v1), customize: spy) + .introspect(.searchField, on: .iOS(.v15, .v16, .v17, .v18), .tvOS(.v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy) #endif } } @@ -41,7 +41,7 @@ final class SearchFieldTests: XCTestCase { Text("Customized") .searchable(text: .constant("")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.searchField, on: .iOS(.v15, .v16, .v17), .tvOS(.v15, .v16, .v17), .visionOS(.v1), scope: .ancestor, customize: spy) + .introspect(.searchField, on: .iOS(.v15, .v16, .v17, .v18), .tvOS(.v15, .v16, .v17, .v18), .visionOS(.v1), scope: .ancestor, customize: spy) #endif } .navigationViewStyle(.stack) @@ -62,11 +62,11 @@ final class SearchFieldTests: XCTestCase { } .navigationViewStyle(DoubleColumnNavigationViewStyle()) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.searchField, on: .iOS(.v15, .v16, .v17), .tvOS(.v15, .v16, .v17), .visionOS(.v1), customize: spy) + .introspect(.searchField, on: .iOS(.v15, .v16, .v17, .v18), .tvOS(.v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy) #endif #if os(iOS) // NB: this is necessary for introspection to work, because on iPad the search field is in the sidebar, which is initially hidden. - .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17)) { + .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18)) { $0.preferredDisplayMode = .oneOverSecondary } #endif @@ -85,13 +85,13 @@ final class SearchFieldTests: XCTestCase { Text("Customized") .searchable(text: .constant("")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.searchField, on: .iOS(.v15, .v16, .v17), .tvOS(.v15, .v16, .v17), .visionOS(.v1), scope: .ancestor, customize: spy) + .introspect(.searchField, on: .iOS(.v15, .v16, .v17, .v18), .tvOS(.v15, .v16, .v17, .v18), .visionOS(.v1), scope: .ancestor, customize: spy) #endif } .navigationViewStyle(DoubleColumnNavigationViewStyle()) #if os(iOS) // NB: this is necessary for introspection to work, because on iPad the search field is in the sidebar, which is initially hidden. - .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17)) { + .introspect(.navigationView(style: .columns), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18)) { $0.preferredDisplayMode = .oneOverSecondary } #endif diff --git a/Tests/Tests/ViewTypes/SecureFieldTests.swift b/Tests/Tests/ViewTypes/SecureFieldTests.swift index bc2174d6..5a6acafc 100644 --- a/Tests/Tests/ViewTypes/SecureFieldTests.swift +++ b/Tests/Tests/ViewTypes/SecureFieldTests.swift @@ -19,7 +19,7 @@ final class SecureFieldTests: XCTestCase { VStack { SecureField("", text: .constant("Secure Field 0")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.secureField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -27,7 +27,7 @@ final class SecureFieldTests: XCTestCase { SecureField("", text: .constant("Secure Field 1")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.secureField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif @@ -35,7 +35,7 @@ final class SecureFieldTests: XCTestCase { SecureField("", text: .constant("Secure Field 2")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.secureField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif @@ -62,21 +62,21 @@ final class SecureFieldTests: XCTestCase { List { SecureField("", text: .constant("Secure Field 0")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.secureField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif SecureField("", text: .constant("Secure Field 1")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.secureField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif SecureField("", text: .constant("Secure Field 2")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.secureField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.secureField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/SheetTests.swift b/Tests/Tests/ViewTypes/SheetTests.swift index 6607f96d..b958a27b 100644 --- a/Tests/Tests/ViewTypes/SheetTests.swift +++ b/Tests/Tests/ViewTypes/SheetTests.swift @@ -15,7 +15,7 @@ final class SheetTests: XCTestCase { Text("Sheet") .introspect( .sheet, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy0 ) } @@ -35,7 +35,7 @@ final class SheetTests: XCTestCase { Text("Sheet") .introspect( .sheet, - on: .iOS(.v15, .v16, .v17), + on: .iOS(.v15, .v16, .v17, .v18), customize: spy0 ) } @@ -51,7 +51,7 @@ final class SheetTests: XCTestCase { Text("Content") .introspect( .sheet, - on: .tvOS(.v13, .v14, .v15, .v16, .v17), + on: .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy0 ) } diff --git a/Tests/Tests/ViewTypes/SliderTests.swift b/Tests/Tests/ViewTypes/SliderTests.swift index cb2c6e9e..db608dc1 100644 --- a/Tests/Tests/ViewTypes/SliderTests.swift +++ b/Tests/Tests/ViewTypes/SliderTests.swift @@ -20,7 +20,7 @@ final class SliderTests: XCTestCase { VStack { Slider(value: .constant(0.2), in: 0...1) #if os(iOS) - .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy0) + .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy0) #elseif os(macOS) .introspect(.slider, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -28,7 +28,7 @@ final class SliderTests: XCTestCase { Slider(value: .constant(0.5), in: 0...1) #if os(iOS) - .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy1) + .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy1) #elseif os(macOS) .introspect(.slider, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif @@ -36,7 +36,7 @@ final class SliderTests: XCTestCase { Slider(value: .constant(0.8), in: 0...1) #if os(iOS) - .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy2) + .introspect(.slider, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy2) #elseif os(macOS) .introspect(.slider, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/StepperTests.swift b/Tests/Tests/ViewTypes/StepperTests.swift index bf36df46..0e7546af 100644 --- a/Tests/Tests/ViewTypes/StepperTests.swift +++ b/Tests/Tests/ViewTypes/StepperTests.swift @@ -20,7 +20,7 @@ final class StepperTests: XCTestCase { VStack { Stepper("", value: .constant(0), in: 0...10) #if os(iOS) - .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy0) + .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy0) #elseif os(macOS) .introspect(.stepper, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -28,7 +28,7 @@ final class StepperTests: XCTestCase { Stepper("", value: .constant(0), in: 0...10) #if os(iOS) - .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy1) + .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy1) #elseif os(macOS) .introspect(.stepper, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif @@ -36,7 +36,7 @@ final class StepperTests: XCTestCase { Stepper("", value: .constant(0), in: 0...10) #if os(iOS) - .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy2) + .introspect(.stepper, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy2) #elseif os(macOS) .introspect(.stepper, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/TabViewTests.swift b/Tests/Tests/ViewTypes/TabViewTests.swift index 45b8db7f..b8ae2a9a 100644 --- a/Tests/Tests/ViewTypes/TabViewTests.swift +++ b/Tests/Tests/ViewTypes/TabViewTests.swift @@ -22,7 +22,7 @@ final class TabViewTests: XCTestCase { } } #if os(iOS) || os(tvOS) - .introspect(.tabView, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), customize: spy) + .introspect(.tabView, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy) #elseif os(macOS) .introspect(.tabView, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy) #endif @@ -38,7 +38,7 @@ final class TabViewTests: XCTestCase { Color.red Text("Something") #if os(iOS) || os(tvOS) - .introspect(.tabView, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), scope: .ancestor, customize: spy) + .introspect(.tabView, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), scope: .ancestor, customize: spy) #elseif os(macOS) .introspect(.tabView, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), scope: .ancestor, customize: spy) #endif diff --git a/Tests/Tests/ViewTypes/TabViewWithPageStyleTests.swift b/Tests/Tests/ViewTypes/TabViewWithPageStyleTests.swift index 3506ce46..58e80594 100644 --- a/Tests/Tests/ViewTypes/TabViewWithPageStyleTests.swift +++ b/Tests/Tests/ViewTypes/TabViewWithPageStyleTests.swift @@ -24,7 +24,7 @@ final class TabViewWithPageStyleTests: XCTestCase { } .tabViewStyle(.page) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.tabView(style: .page), on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy) + .introspect(.tabView(style: .page), on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy) #endif } } @@ -40,7 +40,7 @@ final class TabViewWithPageStyleTests: XCTestCase { TabView { Text("Page 1").frame(maxWidth: .infinity, maxHeight: .infinity).background(Color.red) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.tabView(style: .page), on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), scope: .ancestor, customize: spy) + .introspect(.tabView(style: .page), on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), scope: .ancestor, customize: spy) #endif Text("Page 2").frame(maxWidth: .infinity, maxHeight: .infinity).background(Color.blue) } diff --git a/Tests/Tests/ViewTypes/TableTests.swift b/Tests/Tests/ViewTypes/TableTests.swift index 2c13fe18..84fdebd3 100644 --- a/Tests/Tests/ViewTypes/TableTests.swift +++ b/Tests/Tests/ViewTypes/TableTests.swift @@ -25,21 +25,21 @@ final class TableTests: XCTestCase { VStack { TipTable() #if os(iOS) || os(visionOS) - .introspect(.table, on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.table, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.table, on: .macOS(.v12, .v13, .v14), customize: spy0) #endif TipTable() #if os(iOS) || os(visionOS) - .introspect(.table, on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.table, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.table, on: .macOS(.v12, .v13, .v14), customize: spy1) #endif TipTable() #if os(iOS) || os(visionOS) - .introspect(.table, on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.table, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.table, on: .macOS(.v12, .v13, .v14), customize: spy2) #endif @@ -61,7 +61,7 @@ final class TableTests: XCTestCase { TipTable() .tableStyle(.inset) #if os(iOS) || os(visionOS) - .introspect(.table, on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.table, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.table, on: .macOS(.v12, .v13, .v14), customize: spy0) #endif @@ -69,7 +69,7 @@ final class TableTests: XCTestCase { TipTable() .tableStyle(.inset) #if os(iOS) || os(visionOS) - .introspect(.table, on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.table, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.table, on: .macOS(.v12, .v13, .v14), customize: spy1) #endif @@ -77,7 +77,7 @@ final class TableTests: XCTestCase { TipTable() .tableStyle(.inset) #if os(iOS) || os(visionOS) - .introspect(.table, on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.table, on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.table, on: .macOS(.v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/TextEditorTests.swift b/Tests/Tests/ViewTypes/TextEditorTests.swift index 17469009..157c6abc 100644 --- a/Tests/Tests/ViewTypes/TextEditorTests.swift +++ b/Tests/Tests/ViewTypes/TextEditorTests.swift @@ -25,7 +25,7 @@ final class TextEditorTests: XCTestCase { VStack { TextEditor(text: .constant("Text Field 0")) #if os(iOS) || os(visionOS) - .introspect(.textEditor, on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.textEditor, on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.textEditor, on: .macOS(.v11, .v12, .v13, .v14), customize: spy0) #endif @@ -33,7 +33,7 @@ final class TextEditorTests: XCTestCase { TextEditor(text: .constant("Text Field 1")) #if os(iOS) || os(visionOS) - .introspect(.textEditor, on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.textEditor, on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.textEditor, on: .macOS(.v11, .v12, .v13, .v14), customize: spy1) #endif @@ -41,7 +41,7 @@ final class TextEditorTests: XCTestCase { TextEditor(text: .constant("Text Field 2")) #if os(iOS) || os(visionOS) - .introspect(.textEditor, on: .iOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.textEditor, on: .iOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.textEditor, on: .macOS(.v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/TextFieldTests.swift b/Tests/Tests/ViewTypes/TextFieldTests.swift index fde6895e..148a2ed2 100644 --- a/Tests/Tests/ViewTypes/TextFieldTests.swift +++ b/Tests/Tests/ViewTypes/TextFieldTests.swift @@ -19,7 +19,7 @@ final class TextFieldTests: XCTestCase { VStack { TextField("", text: .constant("Text Field 0")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.textField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -27,7 +27,7 @@ final class TextFieldTests: XCTestCase { TextField("", text: .constant("Text Field 1")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.textField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif @@ -35,7 +35,7 @@ final class TextFieldTests: XCTestCase { TextField("", text: .constant("Text Field 2")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.textField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif @@ -62,21 +62,21 @@ final class TextFieldTests: XCTestCase { List { TextField("", text: .constant("Text Field 0")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.textField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif TextField("", text: .constant("Text Field 1")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.textField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif TextField("", text: .constant("Text Field 2")) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.textField, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/TextFieldWithVerticalAxisTests.swift b/Tests/Tests/ViewTypes/TextFieldWithVerticalAxisTests.swift index b124e832..f5964743 100644 --- a/Tests/Tests/ViewTypes/TextFieldWithVerticalAxisTests.swift +++ b/Tests/Tests/ViewTypes/TextFieldWithVerticalAxisTests.swift @@ -26,9 +26,9 @@ final class TextFieldWithVerticalAxisTests: XCTestCase { VStack { TextField("", text: .constant("Text Field 1"), axis: .vertical) #if os(iOS) || os(visionOS) - .introspect(.textField(axis: .vertical), on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.textField(axis: .vertical), on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(tvOS) - .introspect(.textField(axis: .vertical), on: .tvOS(.v16, .v17), customize: spy0) + .introspect(.textField(axis: .vertical), on: .tvOS(.v16, .v17, .v18), customize: spy0) #elseif os(macOS) .introspect(.textField(axis: .vertical), on: .macOS(.v13, .v14), customize: spy0) #endif @@ -36,9 +36,9 @@ final class TextFieldWithVerticalAxisTests: XCTestCase { TextField("", text: .constant("Text Field 2"), axis: .vertical) #if os(iOS) || os(visionOS) - .introspect(.textField(axis: .vertical), on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.textField(axis: .vertical), on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(tvOS) - .introspect(.textField(axis: .vertical), on: .tvOS(.v16, .v17), customize: spy1) + .introspect(.textField(axis: .vertical), on: .tvOS(.v16, .v17, .v18), customize: spy1) #elseif os(macOS) .introspect(.textField(axis: .vertical), on: .macOS(.v13, .v14), customize: spy1) #endif @@ -46,9 +46,9 @@ final class TextFieldWithVerticalAxisTests: XCTestCase { TextField("", text: .constant("Text Field 3"), axis: .vertical) #if os(iOS) || os(visionOS) - .introspect(.textField(axis: .vertical), on: .iOS(.v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.textField(axis: .vertical), on: .iOS(.v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(tvOS) - .introspect(.textField(axis: .vertical), on: .tvOS(.v16, .v17), customize: spy2) + .introspect(.textField(axis: .vertical), on: .tvOS(.v16, .v17, .v18), customize: spy2) #elseif os(macOS) .introspect(.textField(axis: .vertical), on: .macOS(.v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/ToggleTests.swift b/Tests/Tests/ViewTypes/ToggleTests.swift index 765d6ebb..632d53d3 100644 --- a/Tests/Tests/ViewTypes/ToggleTests.swift +++ b/Tests/Tests/ViewTypes/ToggleTests.swift @@ -20,21 +20,21 @@ final class ToggleTests: XCTestCase { VStack { Toggle("", isOn: .constant(true)) #if os(iOS) - .introspect(.toggle, on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy0) + .introspect(.toggle, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy0) #elseif os(macOS) .introspect(.toggle, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif Toggle("", isOn: .constant(false)) #if os(iOS) - .introspect(.toggle, on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy1) + .introspect(.toggle, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy1) #elseif os(macOS) .introspect(.toggle, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif Toggle("", isOn: .constant(true)) #if os(iOS) - .introspect(.toggle, on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy2) + .introspect(.toggle, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy2) #elseif os(macOS) .introspect(.toggle, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/ToggleWithSwitchStyleTests.swift b/Tests/Tests/ViewTypes/ToggleWithSwitchStyleTests.swift index 6a3b7758..5402ba40 100644 --- a/Tests/Tests/ViewTypes/ToggleWithSwitchStyleTests.swift +++ b/Tests/Tests/ViewTypes/ToggleWithSwitchStyleTests.swift @@ -21,7 +21,7 @@ final class ToggleWithSwitchStyleTests: XCTestCase { Toggle("", isOn: .constant(true)) .toggleStyle(.switch) #if os(iOS) - .introspect(.toggle(style: .switch), on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy0) + .introspect(.toggle(style: .switch), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy0) #elseif os(macOS) .introspect(.toggle(style: .switch), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif @@ -29,7 +29,7 @@ final class ToggleWithSwitchStyleTests: XCTestCase { Toggle("", isOn: .constant(false)) .toggleStyle(.switch) #if os(iOS) - .introspect(.toggle(style: .switch), on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy1) + .introspect(.toggle(style: .switch), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy1) #elseif os(macOS) .introspect(.toggle(style: .switch), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif @@ -37,7 +37,7 @@ final class ToggleWithSwitchStyleTests: XCTestCase { Toggle("", isOn: .constant(true)) .toggleStyle(.switch) #if os(iOS) - .introspect(.toggle(style: .switch), on: .iOS(.v13, .v14, .v15, .v16, .v17), customize: spy2) + .introspect(.toggle(style: .switch), on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), customize: spy2) #elseif os(macOS) .introspect(.toggle(style: .switch), on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/VideoPlayerTests.swift b/Tests/Tests/ViewTypes/VideoPlayerTests.swift index c7019722..33f7722f 100644 --- a/Tests/Tests/ViewTypes/VideoPlayerTests.swift +++ b/Tests/Tests/ViewTypes/VideoPlayerTests.swift @@ -30,21 +30,21 @@ final class VideoPlayerTests: XCTestCase { VStack { VideoPlayer(player: AVPlayer(url: videoURL0)) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.videoPlayer, on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.videoPlayer, on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.videoPlayer, on: .macOS(.v11, .v12, .v13, .v14), customize: spy0) #endif VideoPlayer(player: AVPlayer(url: videoURL1)) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.videoPlayer, on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.videoPlayer, on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.videoPlayer, on: .macOS(.v11, .v12, .v13, .v14), customize: spy1) #endif VideoPlayer(player: AVPlayer(url: videoURL2)) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.videoPlayer, on: .iOS(.v14, .v15, .v16, .v17), .tvOS(.v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.videoPlayer, on: .iOS(.v14, .v15, .v16, .v17, .v18), .tvOS(.v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.videoPlayer, on: .macOS(.v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/ViewControllerTests.swift b/Tests/Tests/ViewTypes/ViewControllerTests.swift index 0f4d6d31..fb1e9960 100644 --- a/Tests/Tests/ViewTypes/ViewControllerTests.swift +++ b/Tests/Tests/ViewTypes/ViewControllerTests.swift @@ -16,7 +16,7 @@ final class ViewControllerTests: XCTestCase { Text("Root").frame(maxWidth: .infinity, maxHeight: .infinity).background(Color.red) .introspect( .viewController, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2 ) } @@ -27,13 +27,13 @@ final class ViewControllerTests: XCTestCase { } .introspect( .viewController, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1 ) } .introspect( .viewController, - on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), + on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0 ) } extraAssertions: { diff --git a/Tests/Tests/ViewTypes/ViewTests.swift b/Tests/Tests/ViewTypes/ViewTests.swift index b7457940..354b146a 100644 --- a/Tests/Tests/ViewTypes/ViewTests.swift +++ b/Tests/Tests/ViewTypes/ViewTests.swift @@ -13,21 +13,21 @@ final class ViewTests: XCTestCase { VStack(spacing: 10) { Image(systemName: "scribble").resizable().frame(height: 30) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.view, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.view, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.view, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif Text("Text").frame(height: 40) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.view, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.view, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.view, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif } .padding(10) #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.view, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.view, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.view, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/Tests/Tests/ViewTypes/WindowTests.swift b/Tests/Tests/ViewTypes/WindowTests.swift index cf474426..abf1efd6 100644 --- a/Tests/Tests/ViewTypes/WindowTests.swift +++ b/Tests/Tests/ViewTypes/WindowTests.swift @@ -19,20 +19,20 @@ final class WindowTests: XCTestCase { VStack { Image(systemName: "scribble") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.window, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy0) + .introspect(.window, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy0) #elseif os(macOS) .introspect(.window, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy0) #endif Text("Text") #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.window, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy1) + .introspect(.window, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy1) #elseif os(macOS) .introspect(.window, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy1) #endif } #if os(iOS) || os(tvOS) || os(visionOS) - .introspect(.window, on: .iOS(.v13, .v14, .v15, .v16, .v17), .tvOS(.v13, .v14, .v15, .v16, .v17), .visionOS(.v1), customize: spy2) + .introspect(.window, on: .iOS(.v13, .v14, .v15, .v16, .v17, .v18), .tvOS(.v13, .v14, .v15, .v16, .v17, .v18), .visionOS(.v1), customize: spy2) #elseif os(macOS) .introspect(.window, on: .macOS(.v10_15, .v11, .v12, .v13, .v14), customize: spy2) #endif diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 1b6032e0..776dd8f6 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -7,6 +7,7 @@ devices = { 15 => ["iPhone SE (3rd generation) (15.5)", "iPad Air (5th generation) (15.5)",], 16 => ["iPhone 14 (16.4)", "iPad Pro (11-inch) (4th generation) (16.4)"], 17 => ["iPhone 14 (17.5)", "iPad Pro (11-inch) (4th generation) (17.5)"], + 18 => ["iPhone 15 (18.0)", "iPad Pro 11-inch (M4) (18.0)"], }, "tvos" => { 13 => ["Apple TV (13.4)"], @@ -14,11 +15,13 @@ devices = { 15 => ["Apple TV (15.4)"], 16 => ["Apple TV (16.4)"], 17 => ["Apple TV (17.5)"], + 18 => ["Apple TV (18.0)"], }, "watchos" => { 8 => ["Apple Watch Series 7 (45mm) (8.5)"], 9 => ["Apple Watch Series 8 (45mm) (9.4)"], 10 => ["Apple Watch Series 9 (45mm) (10.5)"], + 11 => ["Apple Watch Series 9 (45mm) (11.0)"], }, "visionos" => { 1 => ["Apple Vision Pro (1.2)"],