@@ -1365,7 +1365,10 @@ class AuthRepositoryTest {
1365
1365
requestPrivateKey = requestPrivateKey,
1366
1366
asymmetricalKey = asymmetricalKey,
1367
1367
)
1368
- assertEquals(LoginResult .Error (errorMessage = null ), result)
1368
+ assertEquals(
1369
+ LoginResult .Error (errorMessage = null , error = NoActiveUserException ()),
1370
+ result,
1371
+ )
1369
1372
}
1370
1373
1371
1374
@Test
@@ -1377,7 +1380,10 @@ class AuthRepositoryTest {
1377
1380
requestPrivateKey = requestPrivateKey,
1378
1381
asymmetricalKey = asymmetricalKey,
1379
1382
)
1380
- assertEquals(LoginResult .Error (errorMessage = null ), result)
1383
+ assertEquals(
1384
+ LoginResult .Error (errorMessage = null , error = MissingPropertyException (" Private Key" )),
1385
+ result,
1386
+ )
1381
1387
}
1382
1388
1383
1389
@Test
@@ -1474,16 +1480,17 @@ class AuthRepositoryTest {
1474
1480
vaultRepository.syncIfNecessary()
1475
1481
settingsRepository.storeUserHasLoggedInValue(userId = USER_ID_1 )
1476
1482
}
1477
- assertEquals(LoginResult .Error (errorMessage = null ), result)
1483
+ assertEquals(LoginResult .Error (errorMessage = null , error = error ), result)
1478
1484
}
1479
1485
1480
1486
@Test
1481
1487
fun `login when pre login fails should return Error with no message` () = runTest {
1488
+ val error = RuntimeException ()
1482
1489
coEvery {
1483
1490
identityService.preLogin(email = EMAIL )
1484
- } returns RuntimeException () .asFailure()
1491
+ } returns error .asFailure()
1485
1492
val result = repository.login(email = EMAIL , password = PASSWORD , captchaToken = null )
1486
- assertEquals(LoginResult .Error (errorMessage = null ), result)
1493
+ assertEquals(LoginResult .Error (errorMessage = null , error = error ), result)
1487
1494
assertEquals(AuthState .Unauthenticated , repository.authStateFlow.value)
1488
1495
coVerify { identityService.preLogin(email = EMAIL ) }
1489
1496
}
@@ -1492,6 +1499,7 @@ class AuthRepositoryTest {
1492
1499
@Test
1493
1500
fun `login get token fails should return Error with no message when server is an official Bitwarden server` () =
1494
1501
runTest {
1502
+ val error = RuntimeException ()
1495
1503
coEvery {
1496
1504
identityService.preLogin(email = EMAIL )
1497
1505
} returns PRE_LOGIN_SUCCESS .asSuccess()
@@ -1505,9 +1513,9 @@ class AuthRepositoryTest {
1505
1513
captchaToken = null ,
1506
1514
uniqueAppId = UNIQUE_APP_ID ,
1507
1515
)
1508
- } returns RuntimeException () .asFailure()
1516
+ } returns error .asFailure()
1509
1517
val result = repository.login(email = EMAIL , password = PASSWORD , captchaToken = null )
1510
- assertEquals(LoginResult .Error (errorMessage = null ), result)
1518
+ assertEquals(LoginResult .Error (errorMessage = null , error = error ), result)
1511
1519
assertEquals(AuthState .Unauthenticated , repository.authStateFlow.value)
1512
1520
coVerify { identityService.preLogin(email = EMAIL ) }
1513
1521
coVerify {
@@ -1609,7 +1617,7 @@ class AuthRepositoryTest {
1609
1617
.asSuccess()
1610
1618
1611
1619
val result = repository.login(email = EMAIL , password = PASSWORD , captchaToken = null )
1612
- assertEquals(LoginResult .Error (errorMessage = " mock_error_message" ), result)
1620
+ assertEquals(LoginResult .Error (errorMessage = " mock_error_message" , error = null ), result)
1613
1621
assertEquals(AuthState .Unauthenticated , repository.authStateFlow.value)
1614
1622
coVerify { identityService.preLogin(email = EMAIL ) }
1615
1623
coVerify {
@@ -1790,7 +1798,10 @@ class AuthRepositoryTest {
1790
1798
)
1791
1799
} returns SINGLE_USER_STATE_1
1792
1800
val result = repository.login(email = EMAIL , password = PASSWORD , captchaToken = null )
1793
- assertEquals(LoginResult .Error (errorMessage = expectedErrorMessage), result)
1801
+ assertEquals(
1802
+ LoginResult .Error (errorMessage = expectedErrorMessage, error = error),
1803
+ result,
1804
+ )
1794
1805
assertEquals(AuthState .Unauthenticated , repository.authStateFlow.value)
1795
1806
coVerify { identityService.preLogin(email = EMAIL ) }
1796
1807
fakeAuthDiskSource.assertPrivateKey(
@@ -2262,7 +2273,7 @@ class AuthRepositoryTest {
2262
2273
captchaToken = null ,
2263
2274
orgIdentifier = null ,
2264
2275
)
2265
- assertEquals(LoginResult .Error (errorMessage = null ), finalResult)
2276
+ assertEquals(LoginResult .Error (errorMessage = null , error = error ), finalResult)
2266
2277
assertEquals(twoFactorResponse, repository.twoFactorResponse)
2267
2278
fakeAuthDiskSource.assertTwoFactorToken(
2268
2279
email = EMAIL ,
@@ -2374,11 +2385,18 @@ class AuthRepositoryTest {
2374
2385
captchaToken = null ,
2375
2386
orgIdentifier = null ,
2376
2387
)
2377
- assertEquals(LoginResult .Error (errorMessage = null ), result)
2388
+ assertEquals(
2389
+ LoginResult .Error (
2390
+ errorMessage = null ,
2391
+ error = MissingPropertyException (" Identity Token Auth Model" ),
2392
+ ),
2393
+ result,
2394
+ )
2378
2395
}
2379
2396
2380
2397
@Test
2381
2398
fun `login with device get token fails should return Error with no message` () = runTest {
2399
+ val error = Throwable (" Fail!" )
2382
2400
coEvery {
2383
2401
identityService.getToken(
2384
2402
email = EMAIL ,
@@ -2390,7 +2408,7 @@ class AuthRepositoryTest {
2390
2408
captchaToken = null ,
2391
2409
uniqueAppId = UNIQUE_APP_ID ,
2392
2410
)
2393
- } returns Throwable ( " Fail " ) .asFailure()
2411
+ } returns error .asFailure()
2394
2412
val result = repository.login(
2395
2413
email = EMAIL ,
2396
2414
requestId = DEVICE_REQUEST_ID ,
@@ -2400,7 +2418,7 @@ class AuthRepositoryTest {
2400
2418
masterPasswordHash = PASSWORD_HASH ,
2401
2419
captchaToken = null ,
2402
2420
)
2403
- assertEquals(LoginResult .Error (errorMessage = null ), result)
2421
+ assertEquals(LoginResult .Error (errorMessage = null , error = error ), result)
2404
2422
assertEquals(AuthState .Unauthenticated , repository.authStateFlow.value)
2405
2423
coVerify {
2406
2424
identityService.getToken(
@@ -2447,7 +2465,10 @@ class AuthRepositoryTest {
2447
2465
masterPasswordHash = PASSWORD_HASH ,
2448
2466
captchaToken = null ,
2449
2467
)
2450
- assertEquals(LoginResult .Error (errorMessage = " mock_error_message" ), result)
2468
+ assertEquals(
2469
+ LoginResult .Error (errorMessage = " mock_error_message" , error = null ),
2470
+ result,
2471
+ )
2451
2472
assertEquals(AuthState .Unauthenticated , repository.authStateFlow.value)
2452
2473
coVerify {
2453
2474
identityService.getToken(
@@ -2849,6 +2870,7 @@ class AuthRepositoryTest {
2849
2870
2850
2871
@Test
2851
2872
fun `SSO login get token fails should return Error with no message` () = runTest {
2873
+ val error = RuntimeException ()
2852
2874
coEvery {
2853
2875
identityService.getToken(
2854
2876
email = EMAIL ,
@@ -2860,7 +2882,7 @@ class AuthRepositoryTest {
2860
2882
captchaToken = null ,
2861
2883
uniqueAppId = UNIQUE_APP_ID ,
2862
2884
)
2863
- } returns RuntimeException () .asFailure()
2885
+ } returns error .asFailure()
2864
2886
val result = repository.login(
2865
2887
email = EMAIL ,
2866
2888
ssoCode = SSO_CODE ,
@@ -2869,7 +2891,7 @@ class AuthRepositoryTest {
2869
2891
captchaToken = null ,
2870
2892
organizationIdentifier = ORGANIZATION_IDENTIFIER ,
2871
2893
)
2872
- assertEquals(LoginResult .Error (errorMessage = null ), result)
2894
+ assertEquals(LoginResult .Error (errorMessage = null , error = error ), result)
2873
2895
assertEquals(AuthState .Unauthenticated , repository.authStateFlow.value)
2874
2896
coVerify {
2875
2897
identityService.getToken(
@@ -2914,7 +2936,7 @@ class AuthRepositoryTest {
2914
2936
captchaToken = null ,
2915
2937
organizationIdentifier = ORGANIZATION_IDENTIFIER ,
2916
2938
)
2917
- assertEquals(LoginResult .Error (errorMessage = " mock_error_message" ), result)
2939
+ assertEquals(LoginResult .Error (errorMessage = " mock_error_message" , error = null ), result)
2918
2940
assertEquals(AuthState .Unauthenticated , repository.authStateFlow.value)
2919
2941
coVerify {
2920
2942
identityService.getToken(
@@ -3059,6 +3081,7 @@ class AuthRepositoryTest {
3059
3081
@Suppress(" MaxLineLength" )
3060
3082
fun `SSO login get token succeeds with key connector and no master password should return failure` () =
3061
3083
runTest {
3084
+ val error = Throwable (" Fail!" )
3062
3085
val keyConnectorUrl = " www.example.com"
3063
3086
val successResponse = GET_TOKEN_RESPONSE_SUCCESS .copy(
3064
3087
keyConnectorUrl = keyConnectorUrl,
@@ -3084,7 +3107,7 @@ class AuthRepositoryTest {
3084
3107
url = keyConnectorUrl,
3085
3108
accessToken = ACCESS_TOKEN ,
3086
3109
)
3087
- } returns Throwable ( " Fail " ) .asFailure()
3110
+ } returns error .asFailure()
3088
3111
every {
3089
3112
successResponse.toUserState(
3090
3113
previousUserState = null ,
@@ -3101,7 +3124,7 @@ class AuthRepositoryTest {
3101
3124
organizationIdentifier = ORGANIZATION_IDENTIFIER ,
3102
3125
)
3103
3126
3104
- assertEquals(LoginResult .Error (errorMessage = null ), result)
3127
+ assertEquals(LoginResult .Error (errorMessage = null , error = error ), result)
3105
3128
fakeAuthDiskSource.assertPrivateKey(userId = USER_ID_1 , privateKey = null )
3106
3129
fakeAuthDiskSource.assertUserKey(userId = USER_ID_1 , userKey = null )
3107
3130
coVerify(exactly = 1 ) {
@@ -3227,6 +3250,7 @@ class AuthRepositoryTest {
3227
3250
@Suppress(" MaxLineLength" )
3228
3251
fun `SSO login get token succeeds with key connector, no master password, no key and no private key should return failure` () =
3229
3252
runTest {
3253
+ val error = Throwable (" Fail!" )
3230
3254
val keyConnectorUrl = " www.example.com"
3231
3255
val successResponse = GET_TOKEN_RESPONSE_SUCCESS .copy(
3232
3256
keyConnectorUrl = keyConnectorUrl,
@@ -3259,7 +3283,7 @@ class AuthRepositoryTest {
3259
3283
kdfParallelism = PROFILE_1 .kdfParallelism,
3260
3284
organizationIdentifier = ORGANIZATION_IDENTIFIER ,
3261
3285
)
3262
- } returns Throwable ( " Fail " ) .asFailure()
3286
+ } returns error .asFailure()
3263
3287
every {
3264
3288
successResponse.toUserState(
3265
3289
previousUserState = null ,
@@ -3276,7 +3300,7 @@ class AuthRepositoryTest {
3276
3300
organizationIdentifier = ORGANIZATION_IDENTIFIER ,
3277
3301
)
3278
3302
3279
- assertEquals(LoginResult .Error (errorMessage = null ), result)
3303
+ assertEquals(LoginResult .Error (errorMessage = null , error = error ), result)
3280
3304
fakeAuthDiskSource.assertPrivateKey(userId = USER_ID_1 , privateKey = null )
3281
3305
fakeAuthDiskSource.assertUserKey(userId = USER_ID_1 , userKey = null )
3282
3306
coVerify(exactly = 1 ) {
0 commit comments