This repository was archived by the owner on Jun 21, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +51
-1
lines changed Expand file tree Collapse file tree 3 files changed +51
-1
lines changed Original file line number Diff line number Diff line change @@ -45,7 +45,7 @@ public LoginControlViewModel(
4545
4646 } ) . ToProperty ( this , x => x . LoginMode ) ;
4747
48- AuthenticationResults = Observable . Amb (
48+ AuthenticationResults = Observable . Merge (
4949 loginToGitHubViewModel . Login ,
5050 EnterpriseLogin . Login ) ;
5151 CancelCommand = ReactiveCommand . Create ( ) ;
Original file line number Diff line number Diff line change 1+ using System ;
2+ using System . Net ;
3+ using System . Reactive . Linq ;
4+ using System . Reactive . Subjects ;
5+ using GitHub . Authentication ;
6+ using GitHub . Info ;
7+ using GitHub . Models ;
8+ using GitHub . Primitives ;
9+ using GitHub . Services ;
10+ using GitHub . ViewModels ;
11+ using NSubstitute ;
12+ using Octokit ;
13+ using ReactiveUI ;
14+ using Xunit ;
15+
16+ public class LoginControlViewModelTests
17+ {
18+ public class TheAuthenticationResultsCommand : TestBaseClass
19+ {
20+ [ Fact ]
21+ public async void AllowsLoginFromEnterpriseAfterGitHubLoginHasFailed ( )
22+ {
23+ var repositoryHosts = Substitute . For < IRepositoryHosts > ( ) ;
24+
25+ var gitHubLogin = Substitute . For < ILoginToGitHubViewModel > ( ) ;
26+ var gitHubLoginCommand = ReactiveCommand . CreateAsyncObservable ( _ =>
27+ Observable . Return ( AuthenticationResult . CredentialFailure ) ) ;
28+ gitHubLogin . Login . Returns ( gitHubLoginCommand ) ;
29+
30+ var enterpriseLogin = Substitute . For < ILoginToGitHubForEnterpriseViewModel > ( ) ;
31+ var enterpriseLoginCommand = ReactiveCommand . CreateAsyncObservable ( _ =>
32+ Observable . Return ( AuthenticationResult . Success ) ) ;
33+ enterpriseLogin . Login . Returns ( enterpriseLoginCommand ) ;
34+
35+ var loginViewModel = new LoginControlViewModel ( repositoryHosts , gitHubLogin , enterpriseLogin ) ;
36+ var success = false ;
37+
38+ loginViewModel . AuthenticationResults
39+ . Where ( x => x == AuthenticationResult . Success )
40+ . Subscribe ( _ => success = true ) ;
41+
42+ await gitHubLoginCommand . ExecuteAsync ( ) ;
43+ await enterpriseLoginCommand . ExecuteAsync ( ) ;
44+
45+ Assert . True ( success ) ;
46+ }
47+ }
48+ }
49+
Original file line number Diff line number Diff line change 163163 <Compile Include =" GitHub.App\Services\GitClientTests.cs" />
164164 <Compile Include =" GitHub.App\Services\RepositoryCloneServiceTests.cs" />
165165 <Compile Include =" GitHub.App\Services\RepositoryCreationServiceTests.cs" />
166+ <Compile Include =" GitHub.App\ViewModels\LoginControlViewModelTests.cs" />
166167 <Compile Include =" GitHub.App\ViewModels\LoginToGitHubViewModelTests.cs" />
167168 <Compile Include =" GitHub.App\ViewModels\RepositoryCloneViewModelTests.cs" />
168169 <Compile Include =" GitHub.App\ViewModels\RepositoryCreationViewModelTests.cs" />
You can’t perform that action at this time.
0 commit comments