Add feature spec for RS OAuth dialog
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

This commit is contained in:
Râu Cao 2023-08-01 13:01:33 +02:00
parent 5f921f1b53
commit ba0cbba96b
Signed by: raucao
GPG Key ID: 15E65F399D084BA9
2 changed files with 69 additions and 3 deletions

View File

@ -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" } %>

View 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