summaryrefslogtreecommitdiff
path: root/SoraTests/FolderHierarchyTests.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-03-22 14:16:38 +0000
committerFuwn <[email protected]>2026-03-22 14:16:40 +0000
commitdf350bff53c6a65ae5088635a384bd36ecdc9e4b (patch)
tree4b5c3dcf91fa56c3eae5aee2bdbca3bb74bea3cc /SoraTests/FolderHierarchyTests.swift
parentfix: restore tag suggestion popup updates (diff)
downloadsora-testing-df350bff53c6a65ae5088635a384bd36ecdc9e4b.tar.xz
sora-testing-df350bff53c6a65ae5088635a384bd36ecdc9e4b.zip
fix: include root folder items in top-level favorites filter
Diffstat (limited to 'SoraTests/FolderHierarchyTests.swift')
-rw-r--r--SoraTests/FolderHierarchyTests.swift41
1 files changed, 41 insertions, 0 deletions
diff --git a/SoraTests/FolderHierarchyTests.swift b/SoraTests/FolderHierarchyTests.swift
new file mode 100644
index 0000000..6bf7f4a
--- /dev/null
+++ b/SoraTests/FolderHierarchyTests.swift
@@ -0,0 +1,41 @@
+import XCTest
+@testable import Sora
+
+final class FolderHierarchyTests: XCTestCase {
+ func testTopLevelFolderIncludesRootFolderAndNestedChildren() {
+ let rootFolder = SettingsFolder(
+ name: "Artists",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000001")!
+ )
+ let nestedFolder = SettingsFolder(
+ name: "Artists | Layout",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000002")!
+ )
+ let unrelatedFolder = SettingsFolder(
+ name: "Characters | Lead",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000003")!
+ )
+ let hierarchy = FolderHierarchy(folders: [rootFolder, nestedFolder, unrelatedFolder])
+
+ XCTAssertTrue(hierarchy.isInTopLevelFolder(rootFolder.id, named: "Artists"))
+ XCTAssertTrue(hierarchy.isInTopLevelFolder(nestedFolder.id, named: "Artists"))
+ XCTAssertFalse(hierarchy.isInTopLevelFolder(unrelatedFolder.id, named: "Artists"))
+ XCTAssertFalse(hierarchy.isInTopLevelFolder(nil, named: "Artists"))
+ }
+
+ func testTopLevelUncategorizedOnlyMatchesRootFolder() {
+ let rootFolder = SettingsFolder(
+ name: "Artists",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000011")!
+ )
+ let nestedFolder = SettingsFolder(
+ name: "Artists | Layout",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000012")!
+ )
+ let hierarchy = FolderHierarchy(folders: [rootFolder, nestedFolder])
+
+ XCTAssertTrue(hierarchy.isInTopLevelUncategorized(rootFolder.id, named: "Artists"))
+ XCTAssertFalse(hierarchy.isInTopLevelUncategorized(nestedFolder.id, named: "Artists"))
+ XCTAssertFalse(hierarchy.isInTopLevelUncategorized(nil, named: "Artists"))
+ }
+}