summaryrefslogtreecommitdiff
path: root/spec/models/ability_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/ability_spec.rb')
-rw-r--r--spec/models/ability_spec.rb96
1 files changed, 48 insertions, 48 deletions
diff --git a/spec/models/ability_spec.rb b/spec/models/ability_spec.rb
index eee80e9bad7..4b514a95f09 100644
--- a/spec/models/ability_spec.rb
+++ b/spec/models/ability_spec.rb
@@ -1,15 +1,15 @@
-require 'spec_helper'
+require "spec_helper"
describe Ability do
- context 'using a nil subject' do
- it 'has no permissions' do
+ context "using a nil subject" do
+ it "has no permissions" do
expect(described_class.policy_for(nil, nil)).to be_banned
end
end
- describe '.users_that_can_read_project' do
- context 'using a public project' do
- it 'returns all the users' do
+ describe ".users_that_can_read_project" do
+ context "using a public project" do
+ it "returns all the users" do
project = create(:project, :public)
user = build(:user)
@@ -18,17 +18,17 @@ describe Ability do
end
end
- context 'using an internal project' do
+ context "using an internal project" do
let(:project) { create(:project, :internal) }
- it 'returns users that are administrators' do
+ it "returns users that are administrators" do
user = build(:user, admin: true)
expect(described_class.users_that_can_read_project([user], project))
.to eq([user])
end
- it 'returns internal users while skipping external users' do
+ it "returns internal users while skipping external users" do
user1 = build(:user)
user2 = build(:user, external: true)
users = [user1, user2]
@@ -37,7 +37,7 @@ describe Ability do
.to eq([user1])
end
- it 'returns external users if they are the project owner' do
+ it "returns external users if they are the project owner" do
user1 = build(:user, external: true)
user2 = build(:user, external: true)
users = [user1, user2]
@@ -48,7 +48,7 @@ describe Ability do
.to eq([user1])
end
- it 'returns external users if they are project members' do
+ it "returns external users if they are project members" do
user1 = build(:user, external: true)
user2 = build(:user, external: true)
users = [user1, user2]
@@ -59,7 +59,7 @@ describe Ability do
.to eq([user1])
end
- it 'returns an empty Array if all users are external users without access' do
+ it "returns an empty Array if all users are external users without access" do
user1 = build(:user, external: true)
user2 = build(:user, external: true)
users = [user1, user2]
@@ -69,17 +69,17 @@ describe Ability do
end
end
- context 'using a private project' do
+ context "using a private project" do
let(:project) { create(:project, :private) }
- it 'returns users that are administrators' do
+ it "returns users that are administrators" do
user = build(:user, admin: true)
expect(described_class.users_that_can_read_project([user], project))
.to eq([user])
end
- it 'returns external users if they are the project owner' do
+ it "returns external users if they are the project owner" do
user1 = build(:user, external: true)
user2 = build(:user, external: true)
users = [user1, user2]
@@ -90,7 +90,7 @@ describe Ability do
.to eq([user1])
end
- it 'returns external users if they are project members' do
+ it "returns external users if they are project members" do
user1 = build(:user, external: true)
user2 = build(:user, external: true)
users = [user1, user2]
@@ -101,7 +101,7 @@ describe Ability do
.to eq([user1])
end
- it 'returns an empty Array if all users are internal users without access' do
+ it "returns an empty Array if all users are internal users without access" do
user1 = build(:user)
user2 = build(:user)
users = [user1, user2]
@@ -110,7 +110,7 @@ describe Ability do
.to eq([])
end
- it 'returns an empty Array if all users are external users without access' do
+ it "returns an empty Array if all users are external users without access" do
user1 = build(:user, external: true)
user2 = build(:user, external: true)
users = [user1, user2]
@@ -121,7 +121,7 @@ describe Ability do
end
end
- describe '.users_that_can_read_personal_snippet' do
+ describe ".users_that_can_read_personal_snippet" do
def users_for_snippet(snippet)
described_class.users_that_can_read_personal_snippet(users, snippet)
end
@@ -129,28 +129,28 @@ describe Ability do
let(:users) { create_list(:user, 3) }
let(:author) { users[0] }
- it 'private snippet is readable only by its author' do
+ it "private snippet is readable only by its author" do
snippet = create(:personal_snippet, :private, author: author)
expect(users_for_snippet(snippet)).to match_array([author])
end
- it 'internal snippet is readable by all registered users' do
+ it "internal snippet is readable by all registered users" do
snippet = create(:personal_snippet, :public, author: author)
expect(users_for_snippet(snippet)).to match_array(users)
end
- it 'public snippet is readable by all users' do
+ it "public snippet is readable by all users" do
snippet = create(:personal_snippet, :public, author: author)
expect(users_for_snippet(snippet)).to match_array(users)
end
end
- describe '.merge_requests_readable_by_user' do
- context 'with an admin' do
- it 'returns all merge requests' do
+ describe ".merge_requests_readable_by_user" do
+ context "with an admin" do
+ it "returns all merge requests" do
user = build(:user, admin: true)
merge_request = build(:merge_request)
@@ -159,19 +159,19 @@ describe Ability do
end
end
- context 'without a user' do
- it 'returns merge_requests that are publicly visible' do
+ context "without a user" do
+ it "returns merge_requests that are publicly visible" do
hidden_merge_request = build(:merge_request)
visible_merge_request = build(:merge_request, source_project: build(:project, :public))
merge_requests = described_class
- .merge_requests_readable_by_user([hidden_merge_request, visible_merge_request])
+ .merge_requests_readable_by_user([hidden_merge_request, visible_merge_request])
expect(merge_requests).to eq([visible_merge_request])
end
end
- context 'with a user' do
+ context "with a user" do
let(:user) { create(:user) }
let(:project) { create(:project) }
let(:merge_request) { create(:merge_request, source_project: project) }
@@ -191,27 +191,27 @@ describe Ability do
project.add_developer(user)
end
- it 'returns projects visible to the user' do
+ it "returns projects visible to the user" do
expect(readable_merge_requests).to contain_exactly(merge_request, cross_project_merge_request)
end
- context 'when a user cannot read cross project and a filter is passed' do
+ context "when a user cannot read cross project and a filter is passed" do
before do
allow(described_class).to receive(:allowed?).and_call_original
expect(described_class).to receive(:allowed?).with(user, :read_cross_project) { false }
end
subject(:readable_merge_requests) do
- read_cross_project_filter = -> (merge_requests) do
+ read_cross_project_filter = ->(merge_requests) do
merge_requests.select { |mr| mr.source_project == project }
end
described_class.merge_requests_readable_by_user(
all_merge_requests, user,
- filters: { read_cross_project: read_cross_project_filter }
+ filters: {read_cross_project: read_cross_project_filter}
)
end
- it 'returns only MRs of the specified project without checking access on others' do
+ it "returns only MRs of the specified project without checking access on others" do
expect(described_class).not_to receive(:allowed?).with(user, :read_merge_request, cross_project_merge_request)
expect(readable_merge_requests).to contain_exactly(merge_request)
@@ -220,9 +220,9 @@ describe Ability do
end
end
- describe '.issues_readable_by_user' do
- context 'with an admin user' do
- it 'returns all given issues' do
+ describe ".issues_readable_by_user" do
+ context "with an admin user" do
+ it "returns all given issues" do
user = build(:user, admin: true)
issue = build(:issue)
@@ -231,8 +231,8 @@ describe Ability do
end
end
- context 'with a regular user' do
- it 'returns the issues readable by the user' do
+ context "with a regular user" do
+ it "returns the issues readable by the user" do
user = build(:user)
issue = build(:issue)
@@ -242,7 +242,7 @@ describe Ability do
.to eq([issue])
end
- it 'returns an empty Array when no issues are readable' do
+ it "returns an empty Array when no issues are readable" do
user = build(:user)
issue = build(:issue)
@@ -252,8 +252,8 @@ describe Ability do
end
end
- context 'without a regular user' do
- it 'returns issues that are publicly visible' do
+ context "without a regular user" do
+ it "returns issues that are publicly visible" do
hidden_issue = build(:issue)
visible_issue = build(:issue)
@@ -267,7 +267,7 @@ describe Ability do
end
end
- context 'when the user cannot read cross project' do
+ context "when the user cannot read cross project" do
let(:user) { create(:user) }
let(:issue) { create(:issue) }
let(:other_project_issue) { create(:issue) }
@@ -280,10 +280,10 @@ describe Ability do
allow(described_class).to receive(:allowed?).with(user, :read_cross_project, any_args) { false }
end
- it 'excludes issues from other projects whithout checking separatly when passing a scope' do
+ it "excludes issues from other projects whithout checking separatly when passing a scope" do
expect(described_class).not_to receive(:allowed?).with(user, :read_issue, other_project_issue)
- filters = { read_cross_project: -> (issues) { issues.where(project: project) } }
+ filters = {read_cross_project: ->(issues) { issues.where(project: project) }}
result = described_class.issues_readable_by_user(Issue.all, user, filters: filters)
expect(result).to contain_exactly(issue)
@@ -291,13 +291,13 @@ describe Ability do
end
end
- describe '.project_disabled_features_rules' do
+ describe ".project_disabled_features_rules" do
let(:project) { create(:project, :wiki_disabled) }
subject { described_class.policy_for(project.owner, project) }
- context 'wiki named abilities' do
- it 'disables wiki abilities if the project has no wiki' do
+ context "wiki named abilities" do
+ it "disables wiki abilities if the project has no wiki" do
expect(subject).not_to be_allowed(:read_wiki)
expect(subject).not_to be_allowed(:create_wiki)
expect(subject).not_to be_allowed(:update_wiki)