Change public accounts pages to mount the web UI (#19319)
* Change public accounts pages to mount the web UI * Fix handling of remote usernames in routes - When logged in, serve web app - When logged out, redirect to permalink - Fix `app-body` class not being set sometimes due to name conflict * Fix missing `multiColumn` prop * Fix failing test * Use `discoverable` attribute to control indexing directives * Fix `<ColumnLoading />` not using `multiColumn` * Add `noindex` to accounts in REST API * Change noindex directive to not be rendered by default before a route is mounted * Add loading indicator for detailed status in web UI * Fix missing indicator appearing while account is loading in web UI
This commit is contained in:
		
					parent
					
						
							
								b0e3f0312c
							
						
					
				
			
			
				commit
				
					
						839f893168
					
				
			
		
					 101 changed files with 393 additions and 2468 deletions
				
			
		|  | @ -1,31 +1,83 @@ | |||
| require 'rails_helper' | ||||
| 
 | ||||
| describe 'Routes under accounts/' do | ||||
|   describe 'the route for accounts who are followers of an account' do | ||||
|     it 'routes to the followers action with the right username' do | ||||
|       expect(get('/users/name/followers')). | ||||
|         to route_to('follower_accounts#index', account_username: 'name') | ||||
|   context 'with local username' do | ||||
|     let(:username) { 'alice' } | ||||
| 
 | ||||
|     it 'routes /@:username' do | ||||
|       expect(get("/@#{username}")).to route_to('accounts#show', username: username) | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username.json' do | ||||
|       expect(get("/@#{username}.json")).to route_to('accounts#show', username: username, format: 'json') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username.rss' do | ||||
|       expect(get("/@#{username}.rss")).to route_to('accounts#show', username: username, format: 'rss') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/:id' do | ||||
|       expect(get("/@#{username}/123")).to route_to('statuses#show', account_username: username, id: '123') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/:id/embed' do | ||||
|       expect(get("/@#{username}/123/embed")).to route_to('statuses#embed', account_username: username, id: '123') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/following' do | ||||
|       expect(get("/@#{username}/following")).to route_to('following_accounts#index', account_username: username) | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/followers' do | ||||
|       expect(get("/@#{username}/followers")).to route_to('follower_accounts#index', account_username: username) | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/with_replies' do | ||||
|       expect(get("/@#{username}/with_replies")).to route_to('accounts#show', username: username) | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/media' do | ||||
|       expect(get("/@#{username}/media")).to route_to('accounts#show', username: username) | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/tagged/:tag' do | ||||
|       expect(get("/@#{username}/tagged/foo")).to route_to('accounts#show', username: username, tag: 'foo') | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe 'the route for accounts who are followed by an account' do | ||||
|     it 'routes to the following action with the right username' do | ||||
|       expect(get('/users/name/following')). | ||||
|         to route_to('following_accounts#index', account_username: 'name') | ||||
|     end | ||||
|   end | ||||
|   context 'with remote username' do | ||||
|     let(:username) { 'alice@example.com' } | ||||
| 
 | ||||
|   describe 'the route for following an account' do | ||||
|     it 'routes to the follow create action with the right username' do | ||||
|       expect(post('/users/name/follow')). | ||||
|         to route_to('account_follow#create', account_username: 'name') | ||||
|     it 'routes /@:username' do | ||||
|       expect(get("/@#{username}")).to route_to('home#index', username_with_domain: username) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe 'the route for unfollowing an account' do | ||||
|     it 'routes to the unfollow create action with the right username' do | ||||
|       expect(post('/users/name/unfollow')). | ||||
|         to route_to('account_unfollow#create', account_username: 'name') | ||||
|     it 'routes /@:username/:id' do | ||||
|       expect(get("/@#{username}/123")).to route_to('home#index', username_with_domain: username, any: '123') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/:id/embed' do | ||||
|       expect(get("/@#{username}/123/embed")).to route_to('home#index', username_with_domain: username, any: '123/embed') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/following' do | ||||
|       expect(get("/@#{username}/following")).to route_to('home#index', username_with_domain: username, any: 'following') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/followers' do | ||||
|       expect(get("/@#{username}/followers")).to route_to('home#index', username_with_domain: username, any: 'followers') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/with_replies' do | ||||
|       expect(get("/@#{username}/with_replies")).to route_to('home#index', username_with_domain: username, any: 'with_replies') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/media' do | ||||
|       expect(get("/@#{username}/media")).to route_to('home#index', username_with_domain: username, any: 'media') | ||||
|     end | ||||
| 
 | ||||
|     it 'routes /@:username/tagged/:tag' do | ||||
|       expect(get("/@#{username}/tagged/foo")).to route_to('home#index', username_with_domain: username, any: 'tagged/foo') | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue