Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions spec/policies/admin_portal_policy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
RSpec.describe AdminPortalPolicy do
subject { described_class.new(user, :admin_portal) }
Copy link
Collaborator

@olleolleolle olleolleolle Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
subject { described_class.new(user, :admin_portal) }
subject(:policy) { described_class.new(user, :admin_portal) }

RSpec lets use name subjects, which improves the legibility of the individual tests, while preserving the possibility to use RSpec shared examples, and the like.

Let's call this feedback minor, not a blocker to merging.


let(:admin) { Fabricate(:member).tap { |m| m.add_role(:admin) } }
let(:regular_member) { Fabricate(:member) }

describe '#index?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.index?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.index?).to be false
end
end
end
end
55 changes: 55 additions & 0 deletions spec/policies/application_policy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
RSpec.describe ApplicationPolicy do
subject { described_class.new(user, record) }

let(:record) { double('record') }
let(:admin) { Fabricate(:member).tap { |m| m.add_role(:admin) } }
let(:regular_member) { Fabricate(:member) }

describe '#index?' do
let(:user) { admin }

it 'denies access by default' do
expect(subject.index?).to be false
end
end

describe '#create?' do
let(:user) { admin }

it 'denies access by default' do
expect(subject.create?).to be false
end
end

describe '#new?' do
let(:user) { admin }

it 'delegates to create?' do
expect(subject.new?).to eq(subject.create?)
end
end

describe '#update?' do
let(:user) { admin }

it 'denies access by default' do
expect(subject.update?).to be false
end
end

describe '#edit?' do
let(:user) { admin }

it 'delegates to update?' do
expect(subject.edit?).to eq(subject.update?)
end
end

describe '#destroy?' do
let(:user) { admin }

it 'denies access by default' do
expect(subject.destroy?).to be false
end
end
end
115 changes: 115 additions & 0 deletions spec/policies/chapter_policy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
RSpec.describe ChapterPolicy do
subject { described_class.new(user, chapter) }

let(:chapter) { Fabricate(:chapter) }
let(:admin) { Fabricate(:member).tap { |m| m.add_role(:admin) } }
let(:regular_member) { Fabricate(:member) }

describe '#index?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.index?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.index?).to be false
end
end
end

describe '#create?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.create?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.create?).to be false
end
end
end

describe '#show?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.show?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.show?).to be false
end
end
end

describe '#edit?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.edit?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.edit?).to be false
end
end
end

describe '#update?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.update?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.update?).to be false
end
end
end

describe '#members?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.members?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.members?).to be false
end
end
end
end
25 changes: 25 additions & 0 deletions spec/policies/contact_policy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
RSpec.describe ContactPolicy do
subject { described_class.new(user, contact) }

let(:contact) { Fabricate(:contact) }
let(:admin) { Fabricate(:member).tap { |m| m.add_role(:admin) } }
let(:regular_member) { Fabricate(:member) }

describe '#index?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.index?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.index?).to be false
end
end
end
end
43 changes: 43 additions & 0 deletions spec/policies/event_policy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
RSpec.describe EventPolicy do
subject { described_class.new(user, event) }

let(:event) { Fabricate(:event) }
let(:admin) { Fabricate(:member).tap { |m| m.add_role(:admin) } }
let(:regular_member) { Fabricate(:member) }

describe '#invite?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.invite?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.invite?).to be false
end
end
end

describe '#show?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.show?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.show?).to be false
end
end
end
end
43 changes: 43 additions & 0 deletions spec/policies/group_policy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
RSpec.describe GroupPolicy do
subject { described_class.new(user, group) }

let(:group) { Fabricate(:group) }
let(:admin) { Fabricate(:member).tap { |m| m.add_role(:admin) } }
let(:regular_member) { Fabricate(:member) }

describe '#create?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.create?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.create?).to be false
end
end
end

describe '#show?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.show?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.show?).to be false
end
end
end
end
25 changes: 25 additions & 0 deletions spec/policies/member_note_policy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
RSpec.describe MemberNotePolicy do
subject { described_class.new(user, member_note) }

let(:member_note) { Fabricate(:member_note) }
let(:admin) { Fabricate(:member).tap { |m| m.add_role(:admin) } }
let(:regular_member) { Fabricate(:member) }

describe '#create?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.create?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.create?).to be false
end
end
end
end
61 changes: 61 additions & 0 deletions spec/policies/organiser_policy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
RSpec.describe OrganiserPolicy do
subject { described_class.new(user, organiser) }

let(:organiser) { Fabricate(:member) }
let(:admin) { Fabricate(:member).tap { |m| m.add_role(:admin) } }
let(:regular_member) { Fabricate(:member) }

describe '#index?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.index?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.index?).to be false
end
end
end

describe '#create?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.create?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.create?).to be false
end
end
end

describe '#destroy?' do
context 'when user is admin' do
let(:user) { admin }

it 'permits access' do
expect(subject.destroy?).to be true
end
end

context 'when user is regular member' do
let(:user) { regular_member }

it 'denies access' do
expect(subject.destroy?).to be false
end
end
end
end
Loading