模块化 AppStore 并完善素材管理与个人空间设置。
将会话、权限、位置、收款与排队存储拆分为独立模块,同步更新各 ViewModel 与单元测试,并补充素材管理 UI 与个人空间设置交互。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -19,9 +19,9 @@ final class AllFunctionsViewModelTests: XCTestCase {
|
||||
defaults.removePersistentDomain(forName: "AllFunctionsViewModelTests")
|
||||
appStore = AppStore(defaults: defaults)
|
||||
menuStore = HomeCommonMenuStore(defaults: defaults)
|
||||
appStore.userId = "1001"
|
||||
appStore.accountType = "scenic_user"
|
||||
appStore.roleCode = AppRoleCode.photographer.rawValue
|
||||
appStore.session.userId = "1001"
|
||||
appStore.session.accountType = .scenicUser
|
||||
appStore.session.roleCode = AppRoleCode.photographer.rawValue
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
@ -30,7 +30,7 @@ final class AllFunctionsViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testLoadFunctionsUsesDefaultFirstFourWhenNoSavedURIs() {
|
||||
appStore.savePermissionItems([
|
||||
appStore.permissions.savePermissionItems([
|
||||
HomePermissionItem(id: "1", name: "钱包", uri: "wallet"),
|
||||
HomePermissionItem(id: "2", name: "云盘", uri: "cloud_management"),
|
||||
HomePermissionItem(id: "3", name: "任务", uri: "task_management"),
|
||||
@ -47,23 +47,23 @@ final class AllFunctionsViewModelTests: XCTestCase {
|
||||
XCTAssertEqual(viewModel.moreMenus.map(\.uri), ["message_center"])
|
||||
XCTAssertEqual(
|
||||
menuStore.savedCommonURIs(
|
||||
accountScope: appStore.accountCachePrefix,
|
||||
roleCode: appStore.roleCode
|
||||
accountScope: appStore.session.accountCachePrefix,
|
||||
roleCode: appStore.session.roleCode
|
||||
),
|
||||
["wallet", "cloud_management", "task_management", "system_settings"]
|
||||
)
|
||||
}
|
||||
|
||||
func testLoadFunctionsUsesSavedURIsOverDefault() {
|
||||
appStore.savePermissionItems([
|
||||
appStore.permissions.savePermissionItems([
|
||||
HomePermissionItem(id: "1", name: "钱包", uri: "wallet"),
|
||||
HomePermissionItem(id: "2", name: "云盘", uri: "cloud_management"),
|
||||
HomePermissionItem(id: "3", name: "任务", uri: "task_management"),
|
||||
])
|
||||
menuStore.saveCommonURIs(
|
||||
["cloud_management"],
|
||||
accountScope: appStore.accountCachePrefix,
|
||||
roleCode: appStore.roleCode
|
||||
accountScope: appStore.session.accountCachePrefix,
|
||||
roleCode: appStore.session.roleCode
|
||||
)
|
||||
let viewModel = AllFunctionsViewModel(appStore: appStore, commonMenuStore: menuStore)
|
||||
|
||||
@ -74,14 +74,14 @@ final class AllFunctionsViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testAddToCommonMovesMenuAndPersists() {
|
||||
appStore.savePermissionItems([
|
||||
appStore.permissions.savePermissionItems([
|
||||
HomePermissionItem(id: "1", name: "钱包", uri: "wallet"),
|
||||
HomePermissionItem(id: "2", name: "云盘", uri: "cloud_management"),
|
||||
])
|
||||
menuStore.saveCommonURIs(
|
||||
["wallet"],
|
||||
accountScope: appStore.accountCachePrefix,
|
||||
roleCode: appStore.roleCode
|
||||
accountScope: appStore.session.accountCachePrefix,
|
||||
roleCode: appStore.session.roleCode
|
||||
)
|
||||
let viewModel = AllFunctionsViewModel(appStore: appStore, commonMenuStore: menuStore)
|
||||
viewModel.loadFunctions()
|
||||
@ -94,22 +94,22 @@ final class AllFunctionsViewModelTests: XCTestCase {
|
||||
XCTAssertTrue(viewModel.didCustomize)
|
||||
XCTAssertEqual(
|
||||
menuStore.savedCommonURIs(
|
||||
accountScope: appStore.accountCachePrefix,
|
||||
roleCode: appStore.roleCode
|
||||
accountScope: appStore.session.accountCachePrefix,
|
||||
roleCode: appStore.session.roleCode
|
||||
),
|
||||
["wallet", "cloud_management"]
|
||||
)
|
||||
}
|
||||
|
||||
func testRemoveFromCommonMovesMenuAndPersists() {
|
||||
appStore.savePermissionItems([
|
||||
appStore.permissions.savePermissionItems([
|
||||
HomePermissionItem(id: "1", name: "钱包", uri: "wallet"),
|
||||
HomePermissionItem(id: "2", name: "云盘", uri: "cloud_management"),
|
||||
])
|
||||
menuStore.saveCommonURIs(
|
||||
["wallet", "cloud_management"],
|
||||
accountScope: appStore.accountCachePrefix,
|
||||
roleCode: appStore.roleCode
|
||||
accountScope: appStore.session.accountCachePrefix,
|
||||
roleCode: appStore.session.roleCode
|
||||
)
|
||||
let viewModel = AllFunctionsViewModel(appStore: appStore, commonMenuStore: menuStore)
|
||||
viewModel.loadFunctions()
|
||||
@ -123,14 +123,14 @@ final class AllFunctionsViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testPhotographerReportMenuVisibleAndCanBeAddedToCommon() {
|
||||
appStore.savePermissionItems([
|
||||
appStore.permissions.savePermissionItems([
|
||||
HomePermissionItem(id: "1", name: "位置上报", uri: "location_report"),
|
||||
HomePermissionItem(id: "2", name: "举报摄影师", uri: "report_photographer"),
|
||||
])
|
||||
menuStore.saveCommonURIs(
|
||||
["location_report"],
|
||||
accountScope: appStore.accountCachePrefix,
|
||||
roleCode: appStore.roleCode
|
||||
accountScope: appStore.session.accountCachePrefix,
|
||||
roleCode: appStore.session.roleCode
|
||||
)
|
||||
let viewModel = AllFunctionsViewModel(appStore: appStore, commonMenuStore: menuStore)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user