重构首页为单一集合视图并添加全部功能自定义

This commit is contained in:
2026-07-07 09:57:41 +08:00
parent 16e86c8899
commit af450fb4cc
14 changed files with 1222 additions and 209 deletions

View File

@ -11,9 +11,10 @@ import XCTest
final class HomeViewModelTests: XCTestCase {
private var appStore: AppStore!
private var defaults: UserDefaults!
override func setUp() {
let defaults = UserDefaults(suiteName: "HomeViewModelTests")!
defaults = UserDefaults(suiteName: "HomeViewModelTests")!
defaults.removePersistentDomain(forName: "HomeViewModelTests")
appStore = AppStore(defaults: defaults)
appStore.userId = "2001"
@ -50,6 +51,31 @@ final class HomeViewModelTests: XCTestCase {
XCTAssertEqual(viewModel.commonMenus.map(\.uri), ["wallet"])
}
func testRebuildCommonMenusPersistsDefaultURIsOnFirstLoad() {
let menuStore = HomeCommonMenuStore(defaults: defaults)
appStore.savePermissionItems([
HomePermissionItem(id: "1", name: "钱包", uri: "wallet"),
HomePermissionItem(id: "2", name: "云盘", uri: "cloud_management"),
HomePermissionItem(id: "3", name: "任务", uri: "task_management"),
HomePermissionItem(id: "4", name: "设置", uri: "system_settings"),
HomePermissionItem(id: "5", name: "消息", uri: "message_center"),
])
let viewModel = HomeViewModel(appStore: appStore, commonMenuStore: menuStore)
viewModel.rebuildCommonMenus()
XCTAssertEqual(viewModel.commonMenus.map(\.uri), [
"wallet", "cloud_management", "task_management", "system_settings",
])
XCTAssertEqual(
menuStore.savedCommonURIs(
accountScope: appStore.accountCachePrefix,
roleCode: appStore.roleCode
),
["wallet", "cloud_management", "task_management", "system_settings"]
)
}
func testEmptyRolePermissionShowsPermissionDialog() async throws {
let responseData = try TestJSON.envelope(data: [RolePermissionResponse]())
let session = MockURLSession(responses: [responseData])