Merge branch 'master' into glitch-soc/merge-upstream
Conflicts: - app/models/status.rb Resolved by taking both changes (not a real conflict, just changes too close to each other).
This commit is contained in:
@@ -2,10 +2,10 @@ require 'rails_helper'
|
||||
|
||||
describe AccountFilter do
|
||||
describe 'with empty params' do
|
||||
it 'defaults to recent account list' do
|
||||
it 'defaults to recent local not-suspended account list' do
|
||||
filter = described_class.new({})
|
||||
|
||||
expect(filter.results).to eq Account.recent
|
||||
expect(filter.results).to eq Account.local.recent.without_suspended
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,23 +17,6 @@ describe AccountFilter do
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when an IP address is provided' do
|
||||
it 'filters with IP when valid' do
|
||||
filter = described_class.new(ip: '127.0.0.1')
|
||||
allow(User).to receive(:with_recent_ip_address).and_return(User.none)
|
||||
|
||||
filter.results
|
||||
expect(User).to have_received(:with_recent_ip_address).with('127.0.0.1')
|
||||
end
|
||||
|
||||
it 'skips IP when invalid' do
|
||||
filter = described_class.new(ip: '345.678.901.234')
|
||||
expect(User).not_to receive(:with_recent_ip_address)
|
||||
|
||||
filter.results
|
||||
end
|
||||
end
|
||||
|
||||
describe 'with valid params' do
|
||||
it 'combines filters on Account' do
|
||||
filter = described_class.new(
|
||||
@@ -60,13 +43,13 @@ describe AccountFilter do
|
||||
end
|
||||
|
||||
describe 'that call account methods' do
|
||||
%i(local remote silenced alphabetic suspended).each do |option|
|
||||
%i(local remote silenced suspended).each do |option|
|
||||
it "delegates the #{option} option" do
|
||||
allow(Account).to receive(option).and_return(Account.none)
|
||||
filter = described_class.new({ option => true })
|
||||
filter.results
|
||||
|
||||
expect(Account).to have_received(option)
|
||||
expect(Account).to have_received(option).at_least(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -618,9 +618,15 @@ RSpec.describe Account, type: :model do
|
||||
expect(account).not_to model_have_error_on_field(:username)
|
||||
end
|
||||
|
||||
it 'is invalid if the username doesn\'t only contains letters, numbers and underscores' do
|
||||
it 'is valid even if the username contains hyphens' do
|
||||
account = Fabricate.build(:account, domain: 'domain', username: 'the-doctor')
|
||||
account.valid?
|
||||
expect(account).to_not model_have_error_on_field(:username)
|
||||
end
|
||||
|
||||
it 'is invalid if the username doesn\'t only contains letters, numbers, underscores and hyphens' do
|
||||
account = Fabricate.build(:account, domain: 'domain', username: 'the doctor')
|
||||
account.valid?
|
||||
expect(account).to model_have_error_on_field(:username)
|
||||
end
|
||||
|
||||
@@ -754,24 +760,6 @@ RSpec.describe Account, type: :model do
|
||||
expect(Account.suspended).to match_array([account_1])
|
||||
end
|
||||
end
|
||||
|
||||
describe 'without_followers' do
|
||||
it 'returns a relation of accounts without followers' do
|
||||
account_1 = Fabricate(:account)
|
||||
account_2 = Fabricate(:account)
|
||||
Fabricate(:follow, account: account_1, target_account: account_2)
|
||||
expect(Account.without_followers).to match_array([account_1])
|
||||
end
|
||||
end
|
||||
|
||||
describe 'with_followers' do
|
||||
it 'returns a relation of accounts with followers' do
|
||||
account_1 = Fabricate(:account)
|
||||
account_2 = Fabricate(:account)
|
||||
Fabricate(:follow, account: account_1, target_account: account_2)
|
||||
expect(Account.with_followers).to match_array([account_2])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when is local' do
|
||||
|
||||
4
spec/models/account_stat_spec.rb
Normal file
4
spec/models/account_stat_spec.rb
Normal file
@@ -0,0 +1,4 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe AccountStat, type: :model do
|
||||
end
|
||||
@@ -118,5 +118,15 @@ describe StatusThreadingConcern do
|
||||
viewer.block_domain!('example.com')
|
||||
expect(status.descendants(4, viewer)).to_not include(reply2)
|
||||
end
|
||||
|
||||
it 'promotes self-replies to the top while leaving the rest in order' do
|
||||
a = Fabricate(:status, account: alice)
|
||||
d = Fabricate(:status, account: jeff, thread: a)
|
||||
e = Fabricate(:status, account: bob, thread: d)
|
||||
c = Fabricate(:status, account: alice, thread: a)
|
||||
f = Fabricate(:status, account: bob, thread: c)
|
||||
|
||||
expect(a.descendants(20)).to eq [c, d, e, f]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -101,7 +101,7 @@ RSpec.describe Notification, type: :model do
|
||||
before do
|
||||
allow(accounts_with_ids).to receive(:[]).with(stale_account1.id).and_return(account1)
|
||||
allow(accounts_with_ids).to receive(:[]).with(stale_account2.id).and_return(account2)
|
||||
allow(Account).to receive_message_chain(:where, :map, :to_h).and_return(accounts_with_ids)
|
||||
allow(Account).to receive_message_chain(:where, :includes, :each_with_object).and_return(accounts_with_ids)
|
||||
end
|
||||
|
||||
let(:cached_items) do
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe StatusStat, type: :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
||||
|
||||
@@ -89,18 +89,6 @@ RSpec.describe User, type: :model do
|
||||
expect(User.matches_email('specified')).to match_array([specified])
|
||||
end
|
||||
end
|
||||
|
||||
describe 'with_recent_ip_address' do
|
||||
it 'returns a relation of users who is, or was at last time, online with the given IP address' do
|
||||
specifieds = [
|
||||
Fabricate(:user, current_sign_in_ip: '0.0.0.42', last_sign_in_ip: '0.0.0.0'),
|
||||
Fabricate(:user, current_sign_in_ip: nil, last_sign_in_ip: '0.0.0.42')
|
||||
]
|
||||
Fabricate(:user, current_sign_in_ip: '0.0.0.0', last_sign_in_ip: '0.0.0.0')
|
||||
|
||||
expect(User.with_recent_ip_address('0.0.0.42')).to match_array(specifieds)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
let(:account) { Fabricate(:account, username: 'alice') }
|
||||
|
||||
Reference in New Issue
Block a user