From 031950679c5362bfb7c888af10c5be938f50df2d Mon Sep 17 00:00:00 2001 From: Kyoichi Taniguchi Date: Sun, 2 Aug 2026 00:25:41 +0900 Subject: [PATCH] =?UTF-8?q?=E6=A9=9F=E8=83=BD:=20iPad=20=E3=81=AE=E5=88=86?= =?UTF-8?q?=E5=89=B2=E5=B9=85=E3=81=A8=E6=96=87=E5=AD=97=E3=82=B5=E3=82=A4?= =?UTF-8?q?=E3=82=BA=E3=81=AE=E8=BB=B8=E3=82=92=E8=B6=B3=E3=81=99=EF=BC=88?= =?UTF-8?q?2.1.0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit iPadOS 26 で Split View / Slide Over が廃止され、ウィンドウが自由リサイズになった。 HIG は画面の 1/2・1/3・1/4 の各幅で検証せよと書いているが、この装置には全画面の iPad しか無かったので、狭いウィンドウでの崩れが撮れなかった。 `SnapshotDevice` に `iPadPro11Half`(597×834)と `iPadPro11Third`(398×834)を足す。 幅は横向き(1194pt)を基準に取る —— 縦向きの 1/3 は 278pt で、iPadOS が許す ウィンドウの最小幅を下回り、実際には作れない面を撮ることになる。 あわせて文字サイズの軸(`SnapshotDynamicType`)を足す。タイポグラフィが Dynamic Type に追随するようになると、大きい文字での崩れが初めて撮れるようになる。 SwiftUI の環境だけでなく `preferredContentSizeCategory` trait にも効かせる —— 環境だけだと、UIKit が寸法を決める部分(ナビゲーションバー・リスト行の最小高)が 既定サイズのまま残り、実機と違う絵になる。 既存の参照画像を守るために 2 つ手当てした: - 既定の端末を `SnapshotDevice.allCases` から `standardDevices`(従来の 3 台)に変更。 allCases のままだと、端末を足すたびに全スイートの枚数が黙って増え、 参照画像の無い面が失敗として現れる - 既定の文字サイズではファイル名を変えない。アクセシビリティサイズのときだけ `_{dynamicType}` を付ける Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01CJezxiamqVBJw6eAm2qcxH --- CHANGELOG.md | 31 ++++++ README.ja.md | 35 +++++-- README.md | 37 +++++-- Sources/VisualTesting/Assertions.swift | 72 +++++++++----- Sources/VisualTesting/CatalogGenerator.swift | 21 ++-- Sources/VisualTesting/Configuration.swift | 92 +++++++++++++++++- Sources/VisualTesting/Manifest.swift | 5 +- .../IntegrationTests.swift | 46 +++++++++ .../iPadPro11Half/splitWidths.light_en.png | Bin 0 -> 100718 bytes .../iPadPro11Third/splitWidths.light_en.png | Bin 0 -> 75141 bytes .../iPhoneSE/dynamicType.light_en.png | Bin 0 -> 59655 bytes .../dynamicType.light_en_accessibility3.png | Bin 0 -> 78771 bytes .../AdaptiveSample/manifest.json | 44 +++++++++ .../__Snapshots__/MixedSample/manifest.json | 2 +- .../SampleComponent/manifest.json | 2 +- .../__Snapshots__/SampleView/manifest.json | 2 +- 16 files changed, 335 insertions(+), 54 deletions(-) create mode 100644 Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/iPadPro11Half/splitWidths.light_en.png create mode 100644 Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/iPadPro11Third/splitWidths.light_en.png create mode 100644 Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/iPhoneSE/dynamicType.light_en.png create mode 100644 Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/iPhoneSE/dynamicType.light_en_accessibility3.png create mode 100644 Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/manifest.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fcf723..df407ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,37 @@ なし +## [2.1.0] - 2026-08-02 + +### 追加 + +- **iPad の分割幅を `SnapshotDevice` に追加**: `iPadPro11Half`(597×834)と + `iPadPro11Third`(398×834)。iPadOS 26 で Split View / Slide Over が廃止され、 + ウィンドウが自由リサイズになったため、HIG が求める 1/2・1/3 幅での検証を撮れるようにした。 + 幅は横向き(1194pt)を基準に取る —— 縦向きの 1/3(278pt)は iPadOS が許す + ウィンドウ最小幅を下回り、実際には作れない面になるため。 + **どちらの幅も horizontal size class は compact に落ちる。** +- **文字サイズの軸 `SnapshotDynamicType`**: `.standard`(`.large`)と + `.accessibility3`。`SnapshotConfiguration.dynamicTypes` で指定する。 + SwiftUI の `\.dynamicTypeSize` 環境と `ViewImageConfig` の + `preferredContentSizeCategory` trait の両方に効かせる —— 環境だけだと、 + UIKit が寸法を決める部分(ナビゲーションバー・リスト行の最小高)が既定サイズのまま残る。 +- `SnapshotEntry.dynamicType`(`String?`)。既定サイズでは `nil`。 +- `SnapshotConfiguration.standardDevices`(既定で撮る 3 端末)。 + +### 変更 + +- **`SnapshotConfiguration` の既定端末を `SnapshotDevice.allCases` から + `standardDevices` に変更した。** 端末を 1 つ足すたびに既存の全スイートが撮る枚数が + 黙って増え、参照画像の無い面が失敗として現れるため。分割幅は使うスイートが明示的に足す。 + **2.0 系で撮った参照画像はそのまま使える**(既定の行列は変わっていない)。 + +### 互換性 + +- 既定の文字サイズでは参照画像の名前を変えない(`{state}.{theme}_{locale}.png`)。 + アクセシビリティサイズのときだけ `_{dynamicType}` が付く。2.0 系で記録した画像の + 撮り直しは不要。 + ## [2.0.0] - 2026-06-06 ### 破壊的変更 diff --git a/README.ja.md b/README.ja.md index 7dc4bdf..6518f2f 100644 --- a/README.ja.md +++ b/README.ja.md @@ -12,9 +12,9 @@ SwiftUI向けのスナップショットテストライブラリ。宣言的マ ## 特徴 - **宣言的マクロ**: `@SnapshotSuite` / `@Snapshot` / `@ComponentSnapshot` で View を返すだけ -- **マトリクステスト**: デバイス × テーマ × ロケールの全組み合わせを自動生成 +- **マトリクステスト**: デバイス × テーマ × ロケール × 文字サイズの全組み合わせを自動生成 - **デバイスサブディレクトリ**: `__Snapshots__/{ViewName}/{device}/{stateName}.{theme}_{locale}.png` で自動整理 -- **iPad 対応**: iPhone16 + iPhoneSE + iPadPro11 の3デバイスをデフォルトサポート +- **iPad 対応**: iPhone16 + iPhoneSE + iPadPro11 の3デバイスをデフォルトサポート。iPadOS 26 のウィンドウ幅(1/2・1/3)は明示指定で足せる - **メタデータカタログ**: per-view `manifest.json` とルート `snapshot-catalog.json` を自動生成 - **テーマシステム統合**: `ThemeApplicable` プロトコルで任意のテーマシステムと接続 - **View / Component 分離**: View は全軸マトリクス、コンポーネントはテーマ軸のみでテスト @@ -329,16 +329,25 @@ public struct SnapshotCase: Sendable, CustomTestStringConvertible { | `devices` | `[SnapshotDevice]` | `[.iPhone16, .iPhoneSE, .iPadPro11]` | テスト対象デバイス | | `themes` | `[SnapshotTheme]` | `[.light, .dark]` | テスト対象テーマ | | `locales` | `[String]` | `["en", "ja"]` | テスト対象ロケール | +| `dynamicTypes` | `[SnapshotDynamicType]` | `[.standard]` | テスト対象の文字サイズ | | `precision` | `Float` | `0.99` | ピクセル精度 | | `perceptualPrecision` | `Float` | `0.98` | 知覚的精度 | ### SnapshotDevice -| ケース | 画面サイズ | スケール | -|--------|----------|---------| -| `.iPhone16` | 393 × 852 | @3x | -| `.iPhoneSE` | 375 × 667 | @2x | -| `.iPadPro11` | 834 × 1194 | @2x | +| ケース | 画面サイズ | スケール | horizontal size class | +|--------|----------|---------|------| +| `.iPhone16` | 393 × 852 | @3x | compact | +| `.iPhoneSE` | 375 × 667 | @2x | compact | +| `.iPadPro11` | 834 × 1194 | @2x | regular | +| `.iPadPro11Half` | 597 × 834 | @2x | compact | +| `.iPadPro11Third` | 398 × 834 | @2x | compact | + +後ろの 2 つは iPad のウィンドウ幅。iPadOS 26 で Split View / Slide Over が廃止されて +自由リサイズのウィンドウになり、HIG が 1/2・1/3 幅での検証を求めるようになったため足した。 +幅は横向き(1194pt)を基準に取る —— 縦向きの 1/3(278pt)は iPadOS が許すウィンドウの +最小幅を下回り、実際には作れない面を撮ることになる。 +**既定の端末一覧には入れていない。** 要るスイートが明示的に足す。 ### SnapshotTheme @@ -347,6 +356,18 @@ public struct SnapshotCase: Sendable, CustomTestStringConvertible { | `.light` | ライトモード | | `.dark` | ダークモード | +### SnapshotDynamicType + +| ケース | `DynamicTypeSize` | ファイル名の接尾辞 | +|--------|------|------| +| `.standard` | `.large` | なし | +| `.accessibility3` | `.accessibility3` | `_accessibility3` | + +`.standard` は 2.0 系と同じファイル名のままなので、**この軸を足しても既存の参照画像は +無効にならない。** SwiftUI の `\.dynamicTypeSize` 環境と `preferredContentSizeCategory` +trait の両方に効かせる —— 環境だけだと、UIKit が寸法を決める部分(ナビゲーションバー・ +リスト行の最小高)が既定サイズのまま残る。 + ### ThemeApplicable ```swift diff --git a/README.md b/README.md index 62ace7f..3905625 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,9 @@ SwiftUI snapshot testing library. Eliminates boilerplate with declarative macros ## Features - **Declarative macros**: `@SnapshotSuite` / `@Snapshot` / `@ComponentSnapshot` — just return a View -- **Matrix testing**: Automatically generates every device × theme × locale combination +- **Matrix testing**: Automatically generates every device × theme × locale × text size combination - **Device subdirectories**: Auto-organized at `__Snapshots__/{ViewName}/{device}/{stateName}.{theme}_{locale}.png` -- **iPad support**: iPhone 16, iPhone SE, and iPad Pro 11 supported by default (3 devices) +- **iPad support**: iPhone 16, iPhone SE, and iPad Pro 11 by default; iPadOS 26 window widths (1/2, 1/3) opt in - **Metadata catalog**: Auto-generates per-view `manifest.json` and root `snapshot-catalog.json` - **Theme system integration**: Connect any theme system via the `ThemeApplicable` protocol - **View / Component separation**: Views use the full matrix; components use theme axis only @@ -129,7 +129,7 @@ struct MyViewSnapshots { **Output**: `__Snapshots__/MyView/{device}/loaded.{theme}_{locale}.png` -The default configuration produces 3 devices × 2 themes × 2 locales = **12 snapshots**. +The default configuration produces 3 devices × 2 themes × 2 locales × 1 text size = **12 snapshots**. ### Component Snapshots @@ -329,16 +329,25 @@ public struct SnapshotCase: Sendable, CustomTestStringConvertible { | `devices` | `[SnapshotDevice]` | `[.iPhone16, .iPhoneSE, .iPadPro11]` | Target devices | | `themes` | `[SnapshotTheme]` | `[.light, .dark]` | Target themes | | `locales` | `[String]` | `["en", "ja"]` | Target locales | +| `dynamicTypes` | `[SnapshotDynamicType]` | `[.standard]` | Target text sizes | | `precision` | `Float` | `0.99` | Pixel precision | | `perceptualPrecision` | `Float` | `0.98` | Perceptual precision | ### SnapshotDevice -| Case | Screen Size | Scale | -|--------|----------|---------| -| `.iPhone16` | 393 × 852 | @3x | -| `.iPhoneSE` | 375 × 667 | @2x | -| `.iPadPro11` | 834 × 1194 | @2x | +| Case | Screen Size | Scale | Horizontal size class | +|--------|----------|---------|------| +| `.iPhone16` | 393 × 852 | @3x | compact | +| `.iPhoneSE` | 375 × 667 | @2x | compact | +| `.iPadPro11` | 834 × 1194 | @2x | regular | +| `.iPadPro11Half` | 597 × 834 | @2x | compact | +| `.iPadPro11Third` | 398 × 834 | @2x | compact | + +The two window widths cover the 1/2 and 1/3 sizes the HIG asks you to verify now that +iPadOS 26 replaced Split View with freely resizable windows. Widths are taken from the +landscape screen (1194pt) — a third of the portrait width (278pt) is below the minimum +window width iPadOS allows, so it would render a layout no user can produce. They are +**not** in the default device list; add them explicitly to the suites that need them. ### SnapshotTheme @@ -347,6 +356,18 @@ public struct SnapshotCase: Sendable, CustomTestStringConvertible { | `.light` | Light mode | | `.dark` | Dark mode | +### SnapshotDynamicType + +| Case | `DynamicTypeSize` | File name suffix | +|--------|------|------| +| `.standard` | `.large` | none | +| `.accessibility3` | `.accessibility3` | `_accessibility3` | + +`.standard` keeps the 2.0 file name, so adding this axis never invalidates existing +reference images. Both the SwiftUI `\.dynamicTypeSize` environment and the +`preferredContentSizeCategory` trait are set — the environment alone leaves UIKit-sized +chrome (navigation bar, minimum row height) at the default size. + ### ThemeApplicable ```swift diff --git a/Sources/VisualTesting/Assertions.swift b/Sources/VisualTesting/Assertions.swift index fb95707..9f1fb0d 100644 --- a/Sources/VisualTesting/Assertions.swift +++ b/Sources/VisualTesting/Assertions.swift @@ -44,31 +44,34 @@ public enum VisualTesting { for theme in configuration.themes { for locale in configuration.locales { - let vc = makeHostingController( - view: wrapped, - device: device, - theme: theme, - locale: locale - ) - let snapshotName = "\(theme.rawValue)_\(locale)" - - let failure = verifySnapshot( - of: vc, - as: .image( - on: device.config, - precision: configuration.precision, - perceptualPrecision: configuration.perceptualPrecision - ), - named: snapshotName, - snapshotDirectory: dir, - file: file, - testName: stateName, - line: line - ) - if let message = failure { - Issue.record( - Comment(rawValue: "\(viewName)/\(device.rawValue)/\(stateName).\(snapshotName): \(message)") + for dynamicType in configuration.dynamicTypes { + let vc = makeHostingController( + view: wrapped, + device: device, + theme: theme, + locale: locale, + dynamicType: dynamicType ) + let snapshotName = snapshotName(theme: theme, locale: locale, dynamicType: dynamicType) + + let failure = verifySnapshot( + of: vc, + as: .image( + on: device.config(dynamicType: dynamicType), + precision: configuration.precision, + perceptualPrecision: configuration.perceptualPrecision + ), + named: snapshotName, + snapshotDirectory: dir, + file: file, + testName: stateName, + line: line + ) + if let message = failure { + Issue.record( + Comment(rawValue: "\(viewName)/\(device.rawValue)/\(stateName).\(snapshotName): \(message)") + ) + } } } } @@ -80,6 +83,7 @@ public enum VisualTesting { device: device, themes: configuration.themes, locales: configuration.locales, + dynamicTypes: configuration.dynamicTypes, inNavigation: inNavigation, disableAnimations: disableAnimations, file: file @@ -157,15 +161,31 @@ public enum VisualTesting { // MARK: - Private Helpers + /// 参照画像の名前。 + /// + /// **既定の文字サイズでは名前に何も足さない。** 足すと 2.0 系で撮った参照画像が + /// 全部行方不明になり、この軸を使っていないスイートまで撮り直しになる。 + private static func snapshotName( + theme: SnapshotTheme, + locale: String, + dynamicType: SnapshotDynamicType + ) -> String { + let base = "\(theme.rawValue)_\(locale)" + return dynamicType == .standard ? base : "\(base)_\(dynamicType.rawValue)" + } + @MainActor private static func makeHostingController( view: V, device: SnapshotDevice, theme: SnapshotTheme, - locale: String + locale: String, + dynamicType: SnapshotDynamicType ) -> UIViewController { let themed = themeApplicable.applyTheme(view, theme: theme) - let localized = themed.environment(\.locale, Locale(identifier: locale)) + let localized = themed + .environment(\.locale, Locale(identifier: locale)) + .environment(\.dynamicTypeSize, dynamicType.dynamicTypeSize) let hostingController = UIHostingController(rootView: localized) hostingController.view.frame = CGRect( diff --git a/Sources/VisualTesting/CatalogGenerator.swift b/Sources/VisualTesting/CatalogGenerator.swift index 4bd725b..7f39fe2 100644 --- a/Sources/VisualTesting/CatalogGenerator.swift +++ b/Sources/VisualTesting/CatalogGenerator.swift @@ -14,6 +14,7 @@ extension VisualTesting { device: SnapshotDevice?, themes: [SnapshotTheme], locales: [String], + dynamicTypes: [SnapshotDynamicType] = [.standard], inNavigation: Bool, disableAnimations: Bool, file: StaticString @@ -46,13 +47,18 @@ extension VisualTesting { // View snapshot: device subdirectory for theme in themes { for locale in locales { - let fileName = "\(device.rawValue)/\(stateName).\(theme.rawValue)_\(locale).png" - entries.append(SnapshotEntry( - device: device.rawValue, - theme: theme.rawValue, - locale: locale, - file: fileName - )) + for dynamicType in dynamicTypes { + // 既定の文字サイズは名前に出さない(`Assertions.snapshotName` と同じ規則)。 + let suffix = dynamicType == .standard ? "" : "_\(dynamicType.rawValue)" + let fileName = "\(device.rawValue)/\(stateName).\(theme.rawValue)_\(locale)\(suffix).png" + entries.append(SnapshotEntry( + device: device.rawValue, + theme: theme.rawValue, + locale: locale, + dynamicType: dynamicType == .standard ? nil : dynamicType.rawValue, + file: fileName + )) + } } } } else { @@ -63,6 +69,7 @@ extension VisualTesting { device: nil, theme: theme.rawValue, locale: nil, + dynamicType: nil, file: fileName )) } diff --git a/Sources/VisualTesting/Configuration.swift b/Sources/VisualTesting/Configuration.swift index 9030bb8..2b26e16 100644 --- a/Sources/VisualTesting/Configuration.swift +++ b/Sources/VisualTesting/Configuration.swift @@ -1,4 +1,5 @@ #if canImport(UIKit) +import SwiftUI import UIKit import SnapshotTesting @@ -9,6 +10,10 @@ public enum SnapshotDevice: String, CaseIterable, Sendable { case iPhone16 = "iPhone16" case iPhoneSE = "iPhoneSE" case iPadPro11 = "iPadPro11" + /// iPad Pro 11 の画面を横に並べたときの、幅がおよそ半分になるウィンドウ(1194 の 1/2)。 + case iPadPro11Half = "iPadPro11Half" + /// 同じく幅がおよそ 1/3 になるウィンドウ(1194 の 1/3)。 + case iPadPro11Third = "iPadPro11Third" /// デバイス固有の画面サイズ・セーフエリア・ピクセル密度を定義した `ViewImageConfig`。 /// スナップショット撮影時にこの設定でビューをレンダリングする。 @@ -41,6 +46,78 @@ public enum SnapshotDevice: String, CaseIterable, Sendable { UITraitCollection(displayScale: 2), ]) ) + case .iPadPro11Half: + return iPadWindow(width: 597) + case .iPadPro11Third: + return iPadWindow(width: 398) + } + } + + /// `config` に文字サイズの trait を重ねた設定。 + /// + /// SwiftUI 側は `\.dynamicTypeSize` 環境で追随するが、`ViewImageConfig` の trait にも + /// 同じ大きさを載せないと、**UIKit が寸法を計算する部分(ナビゲーションバー・ + /// リスト行の最小高)だけが既定の大きさのまま**になり、実機と違う絵が撮れる。 + public func config(dynamicType: SnapshotDynamicType) -> ViewImageConfig { + var config = self.config + config.traits = UITraitCollection(traitsFrom: [ + config.traits, + UITraitCollection(preferredContentSizeCategory: dynamicType.contentSizeCategory), + ]) + return config + } + + /// iPad のウィンドウ幅だけを変えた設定。 + /// + /// iPadOS 26 で Split View / Slide Over が廃止され、**自由にリサイズできるウィンドウ**に + /// なった。HIG は画面の 1/2・1/3・1/4 の各幅で検証せよと書いている。 + /// 幅は横向き(1194pt)を基準に取る —— 縦向きの 1/3 は 278pt で、iPadOS が許す + /// ウィンドウの最小幅を下回るため、実際には作れない面を撮ることになる。 + /// + /// **どちらの幅も horizontal size class は compact になる**(iPad で regular に + /// なるのはおよそ 768pt 以上)。つまりここで見えるのは、iPad なのに iPhone と同じ + /// レイアウト分岐に落ちたときの姿で、`readableContentGuide` 相当の幅制限や + /// regular 前提の 2 カラムはここでは効かない。 + private func iPadWindow(width: CGFloat) -> ViewImageConfig { + ViewImageConfig( + safeArea: UIEdgeInsets(top: 24, left: 0, bottom: 20, right: 0), + size: CGSize(width: width, height: 834), + traits: UITraitCollection(traitsFrom: [ + UITraitCollection(userInterfaceStyle: .light), + UITraitCollection(displayScale: 2), + ]) + ) + } +} + +// MARK: - SnapshotDynamicType + +/// スナップショットテスト用の文字サイズ設定。 +/// +/// タイポグラフィが Dynamic Type に追随するようになると、**大きい文字で崩れるかどうか**が +/// 実際に撮れるようになる。行の高さ・アイコンとの垂直中心・省略の入り方はここで壊れる。 +public enum SnapshotDynamicType: String, CaseIterable, Sendable { + /// 既定の文字サイズ(`.large`)。この軸だけのときはファイル名に現れない。 + case standard + /// アクセシビリティサイズの中ほど(`.accessibility3`)。 + /// + /// 最大(`.accessibility5`)ではなくここを既定の検査点にするのは、 + /// **最大は何をしても崩れる**ので回帰の判別に使えないから。 + case accessibility3 + + /// SwiftUI 環境に流す文字サイズ。 + public var dynamicTypeSize: DynamicTypeSize { + switch self { + case .standard: return .large + case .accessibility3: return .accessibility3 + } + } + + /// UIKit 側の寸法計算に効かせる content size category。 + public var contentSizeCategory: UIContentSizeCategory { + switch self { + case .standard: return .large + case .accessibility3: return .accessibilityExtraLarge } } } @@ -71,26 +148,37 @@ public struct SnapshotConfiguration: Sendable { public var themes: [SnapshotTheme] /// テスト対象ロケールの一覧(例: `"en"`, `"ja"`)。 public var locales: [String] + /// テスト対象の文字サイズ一覧。既定は `[.standard]`(軸を増やさない)。 + public var dynamicTypes: [SnapshotDynamicType] /// ピクセル単位の一致精度。0〜1 の範囲で 1.0 が完全一致。 public var precision: Float /// 知覚的な色差を許容する精度。アンチエイリアスのズレなど微細な差異を吸収する。 public var perceptualPrecision: Float public init( - devices: [SnapshotDevice] = SnapshotDevice.allCases, + devices: [SnapshotDevice] = SnapshotConfiguration.standardDevices, themes: [SnapshotTheme] = SnapshotTheme.allCases, locales: [String] = ["en", "ja"], + dynamicTypes: [SnapshotDynamicType] = [.standard], precision: Float = 0.99, perceptualPrecision: Float = 0.98 ) { self.devices = devices self.themes = themes self.locales = locales + self.dynamicTypes = dynamicTypes self.precision = precision self.perceptualPrecision = perceptualPrecision } - /// デフォルト設定: iPhone16・iPhoneSE・iPadPro11、ライト・ダーク、en・ja。 + /// 既定で撮る端末。 + /// + /// **`SnapshotDevice.allCases` を既定にしない。** 端末を 1 つ足すたびに、 + /// 既存の全スイートが撮る枚数が黙って増え、参照画像の無い面が失敗として現れる。 + /// 分割幅(`iPadPro11Half` / `iPadPro11Third`)は、撮ると決めたスイートだけが明示的に足す。 + public static let standardDevices: [SnapshotDevice] = [.iPhone16, .iPhoneSE, .iPadPro11] + + /// デフォルト設定: iPhone16・iPhoneSE・iPadPro11、ライト・ダーク、en・ja、既定の文字サイズ。 public static let `default` = SnapshotConfiguration() /// コンポーネントスナップショットスイート用設定。テーマ軸のみ(デバイスフレーム・ロケール変動なし)。 diff --git a/Sources/VisualTesting/Manifest.swift b/Sources/VisualTesting/Manifest.swift index 14ee6b5..949977d 100644 --- a/Sources/VisualTesting/Manifest.swift +++ b/Sources/VisualTesting/Manifest.swift @@ -70,13 +70,16 @@ public struct SnapshotEntry: Codable, Sendable { public var theme: String /// ロケール識別子(例: `"en"`、`"ja"`)。コンポーネントスナップショットでは `nil`。 public var locale: String? + /// 文字サイズの raw value(例: `"accessibility3"`)。既定の文字サイズでは `nil`。 + public var dynamicType: String? /// マニフェストのディレクトリから PNG 画像への相対ファイルパス。 public var file: String - public init(device: String?, theme: String, locale: String?, file: String) { + public init(device: String?, theme: String, locale: String?, dynamicType: String? = nil, file: String) { self.device = device self.theme = theme self.locale = locale + self.dynamicType = dynamicType self.file = file } } diff --git a/Tests/VisualTestingIntegrationTests/IntegrationTests.swift b/Tests/VisualTestingIntegrationTests/IntegrationTests.swift index 8a58c99..dce3a0f 100644 --- a/Tests/VisualTestingIntegrationTests/IntegrationTests.swift +++ b/Tests/VisualTestingIntegrationTests/IntegrationTests.swift @@ -85,6 +85,52 @@ struct SampleComponentSnapshots { } } +// MARK: - iPad Split Widths and Dynamic Type + +/// Verifies the iPad window widths and the Dynamic Type axis render end-to-end. +/// +/// These axes are opt-in: `SnapshotConfiguration.default` keeps the original three devices +/// and the standard text size, so adding them here must not change any other suite's output. +@Suite("iPad widths and Dynamic Type") +@MainActor +struct AdaptiveAxesSnapshots { + @Test func splitWidths() { + VisualTesting.assertViewSnapshot( + of: SampleView(), + viewName: "AdaptiveSample", + stateName: "splitWidths", + inNavigation: false, + disableAnimations: true, + configuration: SnapshotConfiguration( + devices: [.iPadPro11Half, .iPadPro11Third], + themes: [.light], + locales: ["en"] + ), + file: #filePath, + line: #line + ) + } + + /// The standard size keeps the 2.0 file name; only the accessibility size gets a suffix. + @Test func dynamicType() { + VisualTesting.assertViewSnapshot( + of: SampleView(), + viewName: "AdaptiveSample", + stateName: "dynamicType", + inNavigation: false, + disableAnimations: true, + configuration: SnapshotConfiguration( + devices: [.iPhoneSE], + themes: [.light], + locales: ["en"], + dynamicTypes: [.standard, .accessibility3] + ), + file: #filePath, + line: #line + ) + } +} + // MARK: - Mixed Integration /// Verifies @Snapshot and @ComponentSnapshot can coexist in the same suite. diff --git a/Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/iPadPro11Half/splitWidths.light_en.png b/Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/iPadPro11Half/splitWidths.light_en.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce5df0912ee45a710c3878924f6200c6997faac GIT binary patch literal 100718 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

irL$AgO={_!s5K85n$2q#xYziuK= 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 l3?|DvETZt29Fk9Z?iRbqfNaBMOQXA(YTj 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 M(Lk$6^VWm^1M@%IoB#j- literal 0 HcmV?d00001 diff --git a/Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/iPhoneSE/dynamicType.light_en_accessibility3.png b/Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/iPhoneSE/dynamicType.light_en_accessibility3.png new file mode 100644 index 0000000000000000000000000000000000000000..194d56bd125298cc76188e94959d5c47d6d044ed GIT binary patch literal 78771 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

K#miG2v#VR++2YYPpB7#KG6r|0 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 literal 0 HcmV?d00001 diff --git a/Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/manifest.json b/Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/manifest.json new file mode 100644 index 0000000..de8662f --- /dev/null +++ b/Tests/VisualTestingIntegrationTests/__Snapshots__/AdaptiveSample/manifest.json @@ -0,0 +1,44 @@ +{ + "generatedAt" : "2026-08-01T15:24:12Z", + "name" : "AdaptiveSample", + "states" : { + "dynamicType" : { + "disableAnimations" : true, + "inNavigation" : false, + "snapshots" : [ + { + "device" : "iPhoneSE", + "file" : "iPhoneSE\/dynamicType.light_en.png", + "locale" : "en", + "theme" : "light" + }, + { + "device" : "iPhoneSE", + "dynamicType" : "accessibility3", + "file" : "iPhoneSE\/dynamicType.light_en_accessibility3.png", + "locale" : "en", + "theme" : "light" + } + ] + }, + "splitWidths" : { + "disableAnimations" : true, + "inNavigation" : false, + "snapshots" : [ + { + "device" : "iPadPro11Half", + "file" : "iPadPro11Half\/splitWidths.light_en.png", + "locale" : "en", + "theme" : "light" + }, + { + "device" : "iPadPro11Third", + "file" : "iPadPro11Third\/splitWidths.light_en.png", + "locale" : "en", + "theme" : "light" + } + ] + } + }, + "type" : "view" +} \ No newline at end of file diff --git a/Tests/VisualTestingIntegrationTests/__Snapshots__/MixedSample/manifest.json b/Tests/VisualTestingIntegrationTests/__Snapshots__/MixedSample/manifest.json index a445ba8..6c6a8da 100644 --- a/Tests/VisualTestingIntegrationTests/__Snapshots__/MixedSample/manifest.json +++ b/Tests/VisualTestingIntegrationTests/__Snapshots__/MixedSample/manifest.json @@ -1,5 +1,5 @@ { - "generatedAt" : "2026-06-06T05:39:48Z", + "generatedAt" : "2026-08-01T15:24:07Z", "name" : "MixedSample", "states" : { "component" : { diff --git a/Tests/VisualTestingIntegrationTests/__Snapshots__/SampleComponent/manifest.json b/Tests/VisualTestingIntegrationTests/__Snapshots__/SampleComponent/manifest.json index 1a9dbb9..ba1be8c 100644 --- a/Tests/VisualTestingIntegrationTests/__Snapshots__/SampleComponent/manifest.json +++ b/Tests/VisualTestingIntegrationTests/__Snapshots__/SampleComponent/manifest.json @@ -1,5 +1,5 @@ { - "generatedAt" : "2026-06-06T05:39:44Z", + "generatedAt" : "2026-08-01T15:24:08Z", "name" : "SampleComponent", "states" : { "withSize" : { diff --git a/Tests/VisualTestingIntegrationTests/__Snapshots__/SampleView/manifest.json b/Tests/VisualTestingIntegrationTests/__Snapshots__/SampleView/manifest.json index 5417efa..5e46586 100644 --- a/Tests/VisualTestingIntegrationTests/__Snapshots__/SampleView/manifest.json +++ b/Tests/VisualTestingIntegrationTests/__Snapshots__/SampleView/manifest.json @@ -1,5 +1,5 @@ { - "generatedAt" : "2026-06-06T05:39:47Z", + "generatedAt" : "2026-08-01T15:24:12Z", "name" : "SampleView", "states" : { "allAttributes" : {