From df350bff53c6a65ae5088635a384bd36ecdc9e4b Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 22 Mar 2026 14:16:38 +0000 Subject: fix: include root folder items in top-level favorites filter --- SoraTests/FolderHierarchyTests.swift | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 SoraTests/FolderHierarchyTests.swift (limited to 'SoraTests') 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")) + } +} -- cgit v1.2.3