实现权限驱动的首页 Tab 并对齐 Android
This commit is contained in:
50
suixinkanTests/HomeCommonMenuStoreTests.swift
Normal file
50
suixinkanTests/HomeCommonMenuStoreTests.swift
Normal file
@ -0,0 +1,50 @@
|
||||
//
|
||||
// HomeCommonMenuStoreTests.swift
|
||||
// suixinkanTests
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import suixinkan
|
||||
|
||||
/// 常用应用持久化测试。
|
||||
final class HomeCommonMenuStoreTests: XCTestCase {
|
||||
|
||||
private var defaults: UserDefaults!
|
||||
private var store: HomeCommonMenuStore!
|
||||
|
||||
override func setUp() {
|
||||
defaults = UserDefaults(suiteName: "HomeCommonMenuStoreTests")!
|
||||
defaults.removePersistentDomain(forName: "HomeCommonMenuStoreTests")
|
||||
store = HomeCommonMenuStore(defaults: defaults)
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
defaults.removePersistentDomain(forName: "HomeCommonMenuStoreTests")
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testDefaultCommonURIsTakeFirstFour() {
|
||||
let permissions = (1...6).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 testSavedCommonURIsOverrideDefault() {
|
||||
let permissions = [
|
||||
HomePermissionItem(id: "1", name: "钱包", uri: "wallet"),
|
||||
HomePermissionItem(id: "2", name: "云盘", uri: "cloud_management"),
|
||||
HomePermissionItem(id: "3", name: "任务", uri: "task_management"),
|
||||
]
|
||||
let allMenus = HomeMenuCatalog.visibleMenus(from: permissions)
|
||||
store.saveCommonURIs(["cloud_management"], accountScope: "u1_scenic_user", roleCode: "photographer")
|
||||
let common = store.commonMenus(
|
||||
from: allMenus,
|
||||
permissions: permissions,
|
||||
accountScope: "u1_scenic_user",
|
||||
roleCode: "photographer"
|
||||
)
|
||||
XCTAssertEqual(common.map(\.uri), ["cloud_management"])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user