mirror of
https://github.com/mastodon/mastodon.git
synced 2025-09-05 17:31:12 +00:00
54 lines
1.5 KiB
Ruby
54 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe List do
|
|
describe 'Validations' do
|
|
subject { Fabricate.build :list }
|
|
|
|
it { is_expected.to validate_presence_of(:title) }
|
|
|
|
context 'when account has hit max list limit' do
|
|
let(:account) { Fabricate :account }
|
|
|
|
before do
|
|
stub_const 'List::PER_ACCOUNT_LIMIT', 1
|
|
|
|
Fabricate(:list, account: account)
|
|
end
|
|
|
|
context 'when creating a new list' do
|
|
it { is_expected.to_not allow_value(account).for(:account).against(:base).with_message(I18n.t('lists.errors.limit')) }
|
|
end
|
|
|
|
context 'when updating an existing list' do
|
|
before { subject.save(validate: false) }
|
|
|
|
it { is_expected.to allow_value(account).for(:account).against(:base) }
|
|
end
|
|
end
|
|
end
|
|
|
|
describe 'Scopes' do
|
|
describe '.with_list_account' do
|
|
let(:alice) { Fabricate :account }
|
|
let(:bob) { Fabricate :account }
|
|
let(:list) { Fabricate :list }
|
|
let(:other_list) { Fabricate :list }
|
|
|
|
before do
|
|
Fabricate :follow, account: list.account, target_account: alice
|
|
Fabricate :follow, account: other_list.account, target_account: bob
|
|
Fabricate :list_account, list: list, account: alice
|
|
Fabricate :list_account, list: other_list, account: bob
|
|
end
|
|
|
|
it 'returns lists connected to the account' do
|
|
expect(described_class.with_list_account(alice))
|
|
.to include(list)
|
|
.and not_include(other_list)
|
|
end
|
|
end
|
|
end
|
|
end
|