mirror of
https://github.com/mastodon/mastodon.git
synced 2026-03-26 12:25:39 -05:00
43 lines
1.1 KiB
Ruby
43 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe InstanceModerationNotePolicy do
|
|
subject { described_class }
|
|
|
|
let(:admin) { Fabricate(:admin_user).account }
|
|
let(:account) { Fabricate(:account) }
|
|
|
|
permissions :create? do
|
|
context 'when admin' do
|
|
it { is_expected.to permit(admin, InstanceModerationNote.new) }
|
|
end
|
|
|
|
context 'when not admin' do
|
|
it { is_expected.to_not permit(account, InstanceModerationNote.new) }
|
|
end
|
|
end
|
|
|
|
permissions :destroy? do
|
|
context 'when owner of note' do
|
|
let(:note) { Fabricate :instance_moderation_note, account: account }
|
|
|
|
it { is_expected.to permit(account, note) }
|
|
end
|
|
|
|
context 'when not owner of note' do
|
|
context 'when admin and overrides' do
|
|
let(:note) { Fabricate :instance_moderation_note }
|
|
|
|
it { is_expected.to permit(admin, note) }
|
|
end
|
|
|
|
context 'when admin and does not override' do
|
|
let(:note) { Fabricate :instance_moderation_note, account: Fabricate(:admin_user).account }
|
|
|
|
it { is_expected.to_not permit(admin, note) }
|
|
end
|
|
end
|
|
end
|
|
end
|