mastodon/spec/models/list_spec.rb
2025-07-28 08:26:29 +00:00

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