模块化 AppStore 并完善素材管理与个人空间设置。

将会话、权限、位置、收款与排队存储拆分为独立模块,同步更新各 ViewModel 与单元测试,并补充素材管理 UI 与个人空间设置交互。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-13 11:01:08 +08:00
parent ceca780ab3
commit 005349f8e6
128 changed files with 2953 additions and 1123 deletions

View File

@ -17,8 +17,8 @@ final class LocationReportServiceTests: XCTestCase {
defaults = UserDefaults(suiteName: "LocationReportServiceTests")!
defaults.removePersistentDomain(forName: "LocationReportServiceTests")
appStore = AppStore(defaults: defaults)
appStore.userId = "staff-1"
appStore.currentScenicId = 100
appStore.session.userId = "staff-1"
appStore.session.currentScenicId = 100
}
override func tearDown() {
@ -122,7 +122,7 @@ final class LocationReportServiceTests: XCTestCase {
}
func testMissingScenicThrows() async {
appStore.currentScenicId = 0
appStore.session.currentScenicId = 0
let api = HomeAPI(client: APIClient(environment: .testing, session: MockURLSession(responses: [])))
let stateStore = HomeLocationStateStore(store: appStore)
let service = LocationReportService(appStore: appStore, locationStateStore: stateStore)