Files
element-x-ios/UnitTests/Sources/AppSettingsTests.swift
T
Doug 64aae09c6d Add an AccountProvider type and use it within the authentication flow. (#6103)
* Add an AccountProvider type and use it within AppSettings.

* Use the AccountProvider type within the Authentication flow too.

* Fix unit test compilation with Swift 6.4

* Make sure defaultAccountProvider takes allowOtherAccountProviders into account.

* Document a caveat on using AuthenticationService.homeserver.value.accountProvider.
2026-09-14 15:25:33 +01:00

52 lines
2.0 KiB
Swift

//
// Copyright 2026 Element Creations Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
// Please see LICENSE files in the repository root for full details.
//
@testable import ElementX
import Testing
struct AppSettingsTests {
@Test
func defaultAccountProvider() {
let appSettings = AppSettings.volatile()
#expect(appSettings.defaultAccountProvider == appSettings.accountProviders[0])
appSettings.previousServers = ["example.com"]
#expect(appSettings.defaultAccountProvider == .generic("example.com"))
appSettings.override(allowOtherAccountProviders: false)
#expect(appSettings.defaultAccountProvider == appSettings.accountProviders[0])
}
}
// MARK: - Helpers
private extension AppSettings {
func override(allowOtherAccountProviders: Bool) {
override(accountProviders: accountProviders,
allowOtherAccountProviders: allowOtherAccountProviders,
hideBrandChrome: hideBrandChrome,
pushGatewayBaseURL: pushGatewayBaseURL,
oAuthRedirectURL: oAuthRedirectURL,
oAuthClientURIPath: oAuthClientURIPath,
websiteURL: websiteURL,
logoURL: logoURL,
copyrightURL: copyrightURL,
acceptableUseURL: acceptableUseURL,
privacyURL: privacyURL,
encryptionURL: encryptionURL,
deviceVerificationURL: deviceVerificationURL,
chatBackupDetailsURL: chatBackupDetailsURL,
identityPinningViolationDetailsURL: identityPinningViolationDetailsURL,
historySharingDetailsURL: historySharingDetailsURL,
elementWebHosts: elementWebHosts,
accountProvisioningHost: accountProvisioningHost,
bugReportApplicationID: bugReportApplicationID,
analyticsTermsURL: analyticsTermsURL,
mapTilerConfiguration: mapTilerConfiguration.publisher.value)
}
}