Add feature spec for RS OAuth dialog
This commit is contained in:
		
							parent
							
								
									5f921f1b53
								
							
						
					
					
						commit
						ba0cbba96b
					
				| @ -1,7 +1,7 @@ | |||||||
| <%= render HeaderCompactComponent.new(title: "Storage") %> | <%= render HeaderCompactComponent.new(title: "Storage") %> | ||||||
| 
 | 
 | ||||||
| <%= render MainCompactComponent.new do %> | <%= render MainCompactComponent.new do %> | ||||||
|   <section> |   <section class="permissions"> | ||||||
|     <p class="mb-8"> |     <p class="mb-8"> | ||||||
|       The app on |       The app on | ||||||
|       <%= link_to @client_id, "https://#{@client_id}", class: "ks-text-link" %> |       <%= link_to @client_id, "https://#{@client_id}", class: "ks-text-link" %> | ||||||
| @ -9,7 +9,7 @@ | |||||||
|     </p> |     </p> | ||||||
| 
 | 
 | ||||||
|     <% if @root_access_requested %> |     <% if @root_access_requested %> | ||||||
|     <p class="text-lg"> |     <p class="scope text-lg"> | ||||||
|       <span class="text-red-700"> |       <span class="text-red-700"> | ||||||
|         <%= render partial: "icons/alert-triangle", |         <%= render partial: "icons/alert-triangle", | ||||||
|               locals: { custom_class: "inline-block align-bottom mr-1.5" } %> |               locals: { custom_class: "inline-block align-bottom mr-1.5" } %> | ||||||
| @ -21,7 +21,7 @@ | |||||||
|     </p> |     </p> | ||||||
|     <% else %> |     <% else %> | ||||||
|       <% @scopes.each do |scope| %> |       <% @scopes.each do |scope| %> | ||||||
|       <p class="text-gray-600"> |       <p class="scope text-gray-600"> | ||||||
|         <span class="text-lg"> |         <span class="text-lg"> | ||||||
|           <%= render partial: "icons/folder", |           <%= render partial: "icons/folder", | ||||||
|             locals: { custom_class: "inline-block align-bottom mr-1.5" } %> |             locals: { custom_class: "inline-block align-bottom mr-1.5" } %> | ||||||
|  | |||||||
							
								
								
									
										66
									
								
								spec/features/rs/oauth_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								spec/features/rs/oauth_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | |||||||
|  | require 'rails_helper' | ||||||
|  | 
 | ||||||
|  | RSpec.describe 'remoteStorage OAuth Dialog', type: :feature do | ||||||
|  |   context "when signed in" do | ||||||
|  |     let(:user) { create :user } | ||||||
|  | 
 | ||||||
|  |     before do | ||||||
|  |       login_as user, :scope => :user | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     context "with normal permissions" do | ||||||
|  |       before do | ||||||
|  |         visit new_rs_oauth_path(useraddress: user.address, | ||||||
|  |                                 redirect_uri: "http://example.com", | ||||||
|  |                                 client_id: "http://example.com", | ||||||
|  |                                 scope: "documents,[photos], contacts:r") | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       it "shows the permissions in a list" do | ||||||
|  |         within ".permissions" do | ||||||
|  |           expect(page).to have_content("documents") | ||||||
|  |           expect(page).to have_content("photos") | ||||||
|  |           expect(page).to have_content("contacts") | ||||||
|  |         end | ||||||
|  | 
 | ||||||
|  |         within ".scope:first-of-type" do | ||||||
|  |           expect(page).not_to have_content("read only") | ||||||
|  |         end | ||||||
|  | 
 | ||||||
|  |         within ".scope:last-of-type" do | ||||||
|  |           expect(page).to have_content("read only") | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     context "root access" do | ||||||
|  |       context "full" do | ||||||
|  |         before do | ||||||
|  |           visit new_rs_oauth_path(useraddress: user.address, | ||||||
|  |                                   redirect_uri: "http://example.com", | ||||||
|  |                                   client_id: "http://example.com", | ||||||
|  |                                   scope: ":rw") | ||||||
|  |         end | ||||||
|  | 
 | ||||||
|  |         it "shows a special permission for all files and dirs" do | ||||||
|  |           within ".scope" do | ||||||
|  |             expect(page).to have_content("All files and directories") | ||||||
|  |           end | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   context "when signed out" do | ||||||
|  |     let(:user) { create :user } | ||||||
|  | 
 | ||||||
|  |     it "prefills the username field in the signin form" do | ||||||
|  |       visit new_rs_oauth_path(useraddress: user.address, | ||||||
|  |                               redirect_uri: "http://example.com", | ||||||
|  |                               client_id: "http://example.com", | ||||||
|  |                               scope: "documents,[photos], contacts:r") | ||||||
|  | 
 | ||||||
|  |       expect(find("#user_cn").value).to eq(user.cn) | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user