接入友盟统计与 U-APM,并优化宣传页打卡点标签交互。

友盟 SDK 改为隐私同意后再初始化;宣传页标签新增滑块位移动画,超过 5 个时选中项自动滚动居中。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-03 09:23:15 +08:00
parent c7f557f361
commit 00c3cd0a93
134 changed files with 6555 additions and 590 deletions

View File

@ -45,6 +45,60 @@ final class StorageTests: XCTestCase {
XCTAssertTrue(store.loadPrivacyAgreementAccepted())
}
///
func testAppPreferencesStoreClearRemovesPrivacyAgreement() {
let defaults = makeIsolatedDefaults()
let store = AppPreferencesStore(defaults: defaults)
store.savePrivacyAgreementAccepted(true)
store.clear()
XCTAssertFalse(store.loadPrivacyAgreementAccepted())
}
///
@MainActor
func testAuthSessionCoordinatorPrivacyPersistenceTriggersCallback() {
let defaults = makeIsolatedDefaults()
let store = AppPreferencesStore(defaults: defaults)
var persistedValues: [Bool] = []
let coordinator = AuthSessionCoordinator(
tokenStore: SessionTokenStore(defaults: defaults, key: "session.token.privacy.test"),
snapshotStore: AccountSnapshotStore(defaults: defaults, key: "account.snapshot.privacy.test"),
preferencesStore: store,
onPrivacyAgreementPersisted: { persistedValues.append($0) }
)
coordinator.savePrivacyAgreementAccepted(true)
XCTAssertTrue(store.loadPrivacyAgreementAccepted())
XCTAssertEqual(persistedValues, [true])
}
/// 退
@MainActor
func testAuthSessionCoordinatorLogoutKeepsPrivacyAgreement() {
let defaults = makeIsolatedDefaults()
let store = AppPreferencesStore(defaults: defaults)
let coordinator = AuthSessionCoordinator(
tokenStore: SessionTokenStore(defaults: defaults, key: "session.token.logout.test"),
snapshotStore: AccountSnapshotStore(defaults: defaults, key: "account.snapshot.logout.test"),
preferencesStore: store
)
coordinator.savePrivacyAgreementAccepted(true)
coordinator.logout(
appSession: AppSession(),
accountContext: AccountContext(),
permissionContext: PermissionContext(),
scenicSpotContext: ScenicSpotContext(),
appRouter: AppRouter(),
toastCenter: ToastCenter()
)
XCTAssertTrue(store.loadPrivacyAgreementAccepted())
}
///
func testAccountSnapshotStorePersistsAccountContextSnapshot() {
let defaults = makeIsolatedDefaults()