You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.5 KiB
53 lines
1.5 KiB
# 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
|
|
|