Simplify model validation spec in AccountModerationNote/ReportNote (#31792)

This commit is contained in:
Matt Jankowski 2024-10-24 08:52:38 -04:00 committed by GitHub
parent dea6c454fd
commit 37bcbeab4a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 26 additions and 36 deletions

View file

@ -3,7 +3,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe AccountModerationNote do RSpec.describe AccountModerationNote do
describe 'chronological scope' do describe 'Scopes' do
describe '.chronological' do
it 'returns account moderation notes oldest to newest' do it 'returns account moderation notes oldest to newest' do
account = Fabricate(:account) account = Fabricate(:account)
note1 = Fabricate(:account_moderation_note, target_account: account) note1 = Fabricate(:account_moderation_note, target_account: account)
@ -12,20 +13,14 @@ RSpec.describe AccountModerationNote do
expect(account.targeted_moderation_notes.chronological).to eq [note1, note2] expect(account.targeted_moderation_notes.chronological).to eq [note1, note2]
end end
end end
describe 'validations' do
it 'is invalid if the content is empty' do
report = Fabricate.build(:account_moderation_note, content: '')
expect(report.valid?).to be false
end end
it 'is invalid if content is longer than character limit' do describe 'Validations' do
report = Fabricate.build(:account_moderation_note, content: comment_over_limit) subject { Fabricate.build :account_moderation_note }
expect(report.valid?).to be false
end
def comment_over_limit describe 'content' do
Faker::Lorem.paragraph_by_chars(number: described_class::CONTENT_SIZE_LIMIT * 2) it { is_expected.to_not allow_value('').for(:content) }
it { is_expected.to validate_length_of(:content).is_at_most(described_class::CONTENT_SIZE_LIMIT) }
end end
end end
end end

View file

@ -3,7 +3,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe ReportNote do RSpec.describe ReportNote do
describe 'chronological scope' do describe 'Scopes' do
describe '.chronological' do
it 'returns report notes oldest to newest' do it 'returns report notes oldest to newest' do
report = Fabricate(:report) report = Fabricate(:report)
note1 = Fabricate(:report_note, report: report) note1 = Fabricate(:report_note, report: report)
@ -12,20 +13,14 @@ RSpec.describe ReportNote do
expect(report.notes.chronological).to eq [note1, note2] expect(report.notes.chronological).to eq [note1, note2]
end end
end end
describe 'validations' do
it 'is invalid if the content is empty' do
report = Fabricate.build(:report_note, content: '')
expect(report.valid?).to be false
end end
it 'is invalid if content is longer than character limit' do describe 'Validations' do
report = Fabricate.build(:report_note, content: comment_over_limit) subject { Fabricate.build :report_note }
expect(report.valid?).to be false
end
def comment_over_limit describe 'content' do
Faker::Lorem.paragraph_by_chars(number: described_class::CONTENT_SIZE_LIMIT * 2) it { is_expected.to_not allow_value('').for(:content) }
it { is_expected.to validate_length_of(:content).is_at_most(described_class::CONTENT_SIZE_LIMIT) }
end end
end end
end end