Map ClientBuildException.WellKnownDeserializationException to AuthenticationException.InvalidServerName, so that the error displayed to the user is more explicit. Closes #6368
This commit is contained in:
@@ -22,7 +22,10 @@ fun Throwable.mapAuthenticationException(): AuthenticationException {
|
||||
is ClientBuildException.Sdk -> AuthenticationException.Generic(message)
|
||||
is ClientBuildException.ServerUnreachable -> AuthenticationException.ServerUnreachable(message)
|
||||
is ClientBuildException.SlidingSync -> AuthenticationException.Generic(message)
|
||||
is ClientBuildException.WellKnownDeserializationException -> AuthenticationException.Generic(message)
|
||||
is ClientBuildException.WellKnownDeserializationException -> {
|
||||
// Can happen if the .well-known URL has a redirection to an HTML page for instance
|
||||
AuthenticationException.InvalidServerName(message)
|
||||
}
|
||||
is ClientBuildException.WellKnownLookupFailed -> AuthenticationException.Generic(message)
|
||||
is ClientBuildException.EventCache -> AuthenticationException.Generic(message)
|
||||
}
|
||||
|
||||
@@ -30,6 +30,13 @@ class AuthenticationExceptionMappingTest {
|
||||
assertThat(mappedException).isException<AuthenticationException.Generic>("Generic exception")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `mapping a WellKnownDeserializationException returns a InvalidServerName AuthenticationException`() {
|
||||
val exception = ClientBuildException.WellKnownDeserializationException("WellKnown Deserialization")
|
||||
val mappedException = exception.mapAuthenticationException()
|
||||
assertThat(mappedException).isException<AuthenticationException.InvalidServerName>("WellKnown Deserialization")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `mapping specific exceptions map to their kotlin counterparts`() {
|
||||
assertThat(ClientBuildException.Generic("Unknown error").mapAuthenticationException())
|
||||
@@ -50,8 +57,6 @@ class AuthenticationExceptionMappingTest {
|
||||
.isException<AuthenticationException.ServerUnreachable>("Server unreachable")
|
||||
assertThat(ClientBuildException.SlidingSync("Sliding Sync").mapAuthenticationException())
|
||||
.isException<AuthenticationException.Generic>("Sliding Sync")
|
||||
assertThat(ClientBuildException.WellKnownDeserializationException("WellKnown Deserialization").mapAuthenticationException())
|
||||
.isException<AuthenticationException.Generic>("WellKnown Deserialization")
|
||||
assertThat(ClientBuildException.WellKnownLookupFailed("WellKnown Lookup Failed").mapAuthenticationException())
|
||||
.isException<AuthenticationException.Generic>("WellKnown Lookup Failed")
|
||||
assertThat(ClientBuildException.EventCache("EventCache error").mapAuthenticationException())
|
||||
|
||||
Reference in New Issue
Block a user