feat: 接入消息未读数、全部已读与首页红点角标同步。
固定消息中心为首页入口,并在推送到达、已读后刷新桌面角标。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -23,14 +23,26 @@ final class HomeCommonMenuStoreTests: XCTestCase {
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testDefaultCommonURIsTakeFirstFour() {
|
||||
let permissions = (1...6).map {
|
||||
func testDefaultCommonURIsTakeFirstFourAndExcludeMessageCenter() {
|
||||
let permissions = [
|
||||
HomePermissionItem(id: "0", name: "消息", uri: "message_center"),
|
||||
] + (1...5).map {
|
||||
HomePermissionItem(id: "\($0)", name: "菜单\($0)", uri: "uri_\($0)")
|
||||
}
|
||||
let uris = HomeCommonMenuStore.defaultCommonURIs(from: permissions)
|
||||
XCTAssertEqual(uris, ["uri_1", "uri_2", "uri_3", "uri_4"])
|
||||
}
|
||||
|
||||
func testSavedMessageCenterIsRemovedFromLegacyCommonURIs() {
|
||||
let key = "scenic_user_u1_role_photographer_common_uris"
|
||||
defaults.set(["message_center", "wallet"], forKey: key)
|
||||
|
||||
let uris = store.savedCommonURIs(accountScope: "scenic_user_u1", roleCode: "photographer")
|
||||
|
||||
XCTAssertEqual(uris, ["wallet"])
|
||||
XCTAssertEqual(defaults.stringArray(forKey: key), ["wallet"])
|
||||
}
|
||||
|
||||
func testSavedCommonURIsOverrideDefault() {
|
||||
let permissions = [
|
||||
HomePermissionItem(id: "1", name: "钱包", uri: "wallet"),
|
||||
@ -65,8 +77,12 @@ final class HomeCommonMenuStoreTests: XCTestCase {
|
||||
HomeMenuItem(uri: "wallet", title: "钱包", iconName: "wallet.pass"),
|
||||
HomeMenuItem(uri: "cloud_management", title: "云盘", iconName: "icloud"),
|
||||
HomeMenuItem(uri: "task_management", title: "任务", iconName: "checklist"),
|
||||
HomeMenuItem(uri: "message_center", title: "消息中心", iconName: "bell"),
|
||||
]
|
||||
let split = HomeCommonMenuStore.splitMenus(from: menus, commonURIs: ["wallet", "task_management"])
|
||||
let split = HomeCommonMenuStore.splitMenus(
|
||||
from: menus,
|
||||
commonURIs: ["wallet", "task_management", "message_center"]
|
||||
)
|
||||
XCTAssertEqual(split.common.map(\.uri), ["wallet", "task_management"])
|
||||
XCTAssertEqual(split.more.map(\.uri), ["cloud_management"])
|
||||
}
|
||||
@ -75,7 +91,7 @@ final class HomeCommonMenuStoreTests: XCTestCase {
|
||||
let item = HomeMenuCatalog.item(for: "report_photographer")
|
||||
|
||||
XCTAssertEqual(item?.title, "举报摄影师")
|
||||
XCTAssertEqual(item?.iconName, "shield.fill")
|
||||
XCTAssertEqual(item?.iconName, "shield.lefthalf.filled")
|
||||
}
|
||||
|
||||
func testHomeMenuCatalogUsesIOS16CompatibleIcons() {
|
||||
|
||||
Reference in New Issue
Block a user