summaryrefslogtreecommitdiff
path: root/SoraTests/ViewDerivedDataTests.swift
diff options
context:
space:
mode:
Diffstat (limited to 'SoraTests/ViewDerivedDataTests.swift')
-rw-r--r--SoraTests/ViewDerivedDataTests.swift36
1 files changed, 36 insertions, 0 deletions
diff --git a/SoraTests/ViewDerivedDataTests.swift b/SoraTests/ViewDerivedDataTests.swift
index 3a1d8df..32e9276 100644
--- a/SoraTests/ViewDerivedDataTests.swift
+++ b/SoraTests/ViewDerivedDataTests.swift
@@ -361,6 +361,42 @@ final class ViewDerivedDataTests: XCTestCase { // swiftlint:disable:this type_b
)
}
+ func testFavoritesDeleteActionUsesDestructiveRole() throws {
+ let source = try loadSource(at: "Sora/Views/FavoritesView.swift")
+ let functionSource = try extractFunction(
+ named: "private func favoriteGridContent(",
+ from: source
+ )
+ let destructiveDeleteActionCount = tokenCount(
+ matching:
+ #"role:\s*\.destructive[\s\S]*Label\(\s*"Delete"\s*,\s*systemImage:\s*"trash"\s*\)"#,
+ in: functionSource
+ )
+
+ // swiftlint:disable:next prefer_nimble
+ XCTAssertGreaterThan(
+ destructiveDeleteActionCount,
+ 0,
+ "Favorite context menu delete action should be explicitly destructive."
+ )
+ }
+
+ func testGenericListDeleteActionUsesDestructiveRole() throws {
+ let source = try loadSource(at: "Sora/Views/Generic/GenericListView.swift")
+ let destructiveDeleteActionCount = tokenCount(
+ matching:
+ #"role:\s*\.destructive[\s\S]*Label\(\s*"Delete"\s*,\s*systemImage:\s*"trash"\s*\)"#,
+ in: source
+ )
+
+ // swiftlint:disable:next prefer_nimble
+ XCTAssertGreaterThan(
+ destructiveDeleteActionCount,
+ 0,
+ "Generic list context menu delete action should be explicitly destructive."
+ )
+ }
+
func testListViewsAvoidComparatorRandomShuffleSorting() throws {
let listViewSource = try loadSource(at: "Sora/Views/Generic/GenericListView.swift")
let favoritesViewSource = try loadSource(at: "Sora/Views/FavoritesView.swift")