mirror of https://github.com/mastodon/mastodon
Move account silence-related methods to concern (#28866)
parent
157fba4698
commit
d033920b7e
@ -0,0 +1,22 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Account::Silences
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
scope :silenced, -> { where.not(silenced_at: nil) }
|
||||
scope :without_silenced, -> { where(silenced_at: nil) }
|
||||
end
|
||||
|
||||
def silenced?
|
||||
silenced_at.present?
|
||||
end
|
||||
|
||||
def silence!(date = Time.now.utc)
|
||||
update!(silenced_at: date)
|
||||
end
|
||||
|
||||
def unsilence!
|
||||
update!(silenced_at: nil)
|
||||
end
|
||||
end
|
@ -0,0 +1,18 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Account::Silences do
|
||||
describe 'Scopes' do
|
||||
describe '.silenced' do
|
||||
let(:silenced_account) { Fabricate :account, silenced: true }
|
||||
|
||||
before { Fabricate :account, silenced: false }
|
||||
|
||||
it 'returns an array of accounts who are silenced' do
|
||||
expect(Account.silenced)
|
||||
.to contain_exactly(silenced_account)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue