@@ -39,6 +39,7 @@ import org.wordpress.android.fluxc.network.BaseRequest.BaseNetworkError
3939import org.wordpress.android.fluxc.network.BaseRequest.GenericErrorType
4040import org.wordpress.android.fluxc.network.rest.wpapi.Nonce
4141import org.wordpress.android.fluxc.network.rest.wpapi.WPAPINetworkError
42+ import org.wordpress.android.fluxc.network.rest.wpapi.applicationpasswords.ApplicationPasswordsConfiguration
4243import org.wordpress.android.login.LoginAnalyticsListener
4344
4445@ExperimentalCoroutinesApi
@@ -95,7 +96,10 @@ class LoginSiteCredentialsViewModelTest : BaseUnitTest() {
9596 applicationPasswordsNotifier = applicationPasswordsNotifier,
9697 analyticsTracker = analyticsTracker,
9798 appPrefs = appPrefs,
98- applicationPasswordsClientId = clientId,
99+ applicationPasswordsConfiguration = object : ApplicationPasswordsConfiguration {
100+ override val applicationName: String = clientId
101+ override suspend fun isEnabledForJetpackAccess (): Boolean = true
102+ },
99103 resourceProvider = resourceProvider
100104 )
101105 }
@@ -292,22 +296,23 @@ class LoginSiteCredentialsViewModelTest : BaseUnitTest() {
292296 }
293297
294298 @Test
295- fun `given application pwd disabled and wp-login-php accessible, when submitting login, then show error screen` () = testBlocking {
296- setup {
297- whenever(wpApiSiteRepository.checkIfUserIsEligible(testSite)).thenReturn(Result .failure(Exception ()))
298- }
299-
300- viewModel.viewState.observeForTesting {
301- viewModel.onUsernameChanged(testUsername)
302- viewModel.onPasswordChanged(testPassword)
303- viewModel.onContinueClick()
304- applicationPasswordsUnavailableEvents.tryEmit(mock())
299+ fun `given application pwd disabled and wp-login-php accessible, when submitting login, then show error screen` () =
300+ testBlocking {
301+ setup {
302+ whenever(wpApiSiteRepository.checkIfUserIsEligible(testSite)).thenReturn(Result .failure(Exception ()))
303+ }
304+
305+ viewModel.viewState.observeForTesting {
306+ viewModel.onUsernameChanged(testUsername)
307+ viewModel.onPasswordChanged(testPassword)
308+ viewModel.onContinueClick()
309+ applicationPasswordsUnavailableEvents.tryEmit(mock())
310+ }
311+
312+ assertThat(viewModel.event.value)
313+ .isEqualTo(ShowApplicationPasswordsUnavailableScreen (siteAddress, isJetpackConnected))
305314 }
306315
307- assertThat(viewModel.event.value)
308- .isEqualTo(ShowApplicationPasswordsUnavailableScreen (siteAddress, isJetpackConnected))
309- }
310-
311316 @Test
312317 fun `give user role fetch fails, when submitting login, then show a snackbar` () = testBlocking {
313318 setup {
@@ -353,23 +358,24 @@ class LoginSiteCredentialsViewModelTest : BaseUnitTest() {
353358 }
354359
355360 @Test
356- fun `given application passwords enabled and login fails for an unknown reason, when user attempts to sign-in, then show WebView login flow` () = testBlocking {
357- setup {
358- whenever(wpApiSiteRepository.login(siteAddress, testUsername, testPassword))
359- .thenReturn(Result .failure(Exception ()))
360- whenever(wpApiSiteRepository.fetchSite(siteAddress))
361- .thenReturn(Result .success(testSite.apply { applicationPasswordsAuthorizeUrl = urlAuthBase }))
361+ fun `given application passwords enabled and login fails for an unknown reason, when user attempts to sign-in, then show WebView login flow` () =
362+ testBlocking {
363+ setup {
364+ whenever(wpApiSiteRepository.login(siteAddress, testUsername, testPassword))
365+ .thenReturn(Result .failure(Exception ()))
366+ whenever(wpApiSiteRepository.fetchSite(siteAddress))
367+ .thenReturn(Result .success(testSite.apply { applicationPasswordsAuthorizeUrl = urlAuthBase }))
368+ }
369+
370+ val event = viewModel.event.runAndCaptureValues {
371+ viewModel.onUsernameChanged(testUsername)
372+ viewModel.onPasswordChanged(testPassword)
373+ viewModel.viewState.getOrAwaitValue()
374+ viewModel.onContinueClick()
375+ }.last()
376+
377+ assertThat(event).isInstanceOf(LoginSiteCredentialsViewModel .ShowApplicationPasswordTutorialScreen ::class .java)
378+ assertThat((event as LoginSiteCredentialsViewModel .ShowApplicationPasswordTutorialScreen ).url)
379+ .isEqualTo(urlAuthFull)
362380 }
363-
364- val event = viewModel.event.runAndCaptureValues {
365- viewModel.onUsernameChanged(testUsername)
366- viewModel.onPasswordChanged(testPassword)
367- viewModel.viewState.getOrAwaitValue()
368- viewModel.onContinueClick()
369- }.last()
370-
371- assertThat(event).isInstanceOf(LoginSiteCredentialsViewModel .ShowApplicationPasswordTutorialScreen ::class .java)
372- assertThat((event as LoginSiteCredentialsViewModel .ShowApplicationPasswordTutorialScreen ).url)
373- .isEqualTo(urlAuthFull)
374- }
375381}
0 commit comments