Reduce factory creation across spec/helpers (#35527)

This commit is contained in:
Matt Jankowski authored and GitHub committed 2025-12-16 15:26:04 +00:00
1 parent 92df1c4458
commit 7e81e03531
7 files changed
+17 -24

No files matched your search

@@ -17,7 +17,7 @@ RSpec.describe Admin::AccountModerationNotesHelper do
end
context 'with account' do
let(:account) { Fabricate(:account) }
let(:account) { Fabricate.build(:account, id: 123) }
it 'returns a labeled avatar link to the account' do
expect(parsed_html.a[:href]).to eq admin_account_path(account.id)
@@ -39,7 +39,7 @@ RSpec.describe Admin::AccountModerationNotesHelper do
end
context 'with account' do
let(:account) { Fabricate(:account) }
let(:account) { Fabricate.build(:account, id: 123) }
it 'returns an inline link to the account' do
expect(parsed_html.a[:href]).to eq admin_account_path(account.id)
+2 -8
View File
@@ -4,8 +4,9 @@ require 'rails_helper'
RSpec.describe Admin::DashboardHelper do
describe 'relevant_account_timestamp' do
let(:account) { Fabricate(:account) }
context 'with an account with older sign in' do
let(:account) { Fabricate(:account) }
let(:stamp) { 10.days.ago }
it 'returns a time element' do
@@ -18,8 +19,6 @@ RSpec.describe Admin::DashboardHelper do
end
context 'with an account with newer sign in' do
let(:account) { Fabricate(:account) }
it 'returns a time element' do
account.user.update(current_sign_in_at: 10.hours.ago)
result = helper.relevant_account_timestamp(account)
@@ -29,8 +28,6 @@ RSpec.describe Admin::DashboardHelper do
end
context 'with an account where the user is pending' do
let(:account) { Fabricate(:account) }
it 'returns a time element' do
account.user.update(current_sign_in_at: nil)
account.user.update(approved: false)
@@ -42,7 +39,6 @@ RSpec.describe Admin::DashboardHelper do
end
context 'with an account with a last status value' do
let(:account) { Fabricate(:account) }
let(:stamp) { 5.minutes.ago }
it 'returns a time element' do
@@ -56,8 +52,6 @@ RSpec.describe Admin::DashboardHelper do
end
context 'with an account without sign in or last status or pending' do
let(:account) { Fabricate(:account) }
it 'returns a time element' do
account.user.update(current_sign_in_at: nil)
result = helper.relevant_account_timestamp(account)
@@ -54,7 +54,7 @@ RSpec.describe Admin::Trends::StatusesHelper do
context 'with a status that has emoji' do
before { Fabricate(:custom_emoji, shortcode: 'florpy') }
let(:status) { Fabricate(:status, text: 'hello there :florpy:') }
let(:status) { Fabricate.build(:status, text: 'hello there :florpy:') }
it 'renders a correct preview text' do
result = helper.one_line_preview(status)
+1 -1
View File
@@ -18,7 +18,7 @@ RSpec.describe FormattingHelper do
end
context 'with a spoiler and an emoji and a poll' do
let(:status) { Fabricate(:status, text: 'Hello :world: <>', spoiler_text: 'This is a spoiler<>', poll: Fabricate(:poll, options: %w(Yes<> No))) }
let(:status) { Fabricate(:status, text: 'Hello :world: <>', spoiler_text: 'This is a spoiler<>', poll: Fabricate.build(:poll, options: %w(Yes<> No))) }
before { Fabricate :custom_emoji, shortcode: 'world' }
+1 -1
View File
@@ -21,7 +21,7 @@ RSpec.describe HomeHelper do
end
context 'with a valid account' do
let(:account) { Fabricate(:account) }
let(:account) { Fabricate.build(:account) }
before { helper.extend controller_helpers }
+5 -3
View File
@@ -5,8 +5,10 @@ require 'rails_helper'
RSpec.describe MediaComponentHelper do
before { helper.extend controller_helpers }
let(:media) { Fabricate.build(:media_attachment, type:, status: Fabricate.build(:status)) }
describe 'render_video_component' do
let(:media) { Fabricate(:media_attachment, type: :video, status: Fabricate(:status)) }
let(:type) { :video }
let(:result) { helper.render_video_component(media.status) }
it 'renders a react component for the video' do
@@ -15,7 +17,7 @@ RSpec.describe MediaComponentHelper do
end
describe 'render_audio_component' do
let(:media) { Fabricate(:media_attachment, type: :audio, status: Fabricate(:status)) }
let(:type) { :audio }
let(:result) { helper.render_audio_component(media.status) }
it 'renders a react component for the audio' do
@@ -24,7 +26,7 @@ RSpec.describe MediaComponentHelper do
end
describe 'render_media_gallery_component' do
let(:media) { Fabricate(:media_attachment, type: :audio, status: Fabricate(:status)) }
let(:type) { :audio }
let(:result) { helper.render_media_gallery_component(media.status) }
it 'renders a react component for the media gallery' do
+5 -8
View File
@@ -24,16 +24,13 @@ RSpec.describe StatusesHelper do
end
describe '#media_summary' do
it 'describes the media on a status' do
status = Fabricate :status
Fabricate :media_attachment, status: status, type: :video
Fabricate :media_attachment, status: status, type: :audio
Fabricate :media_attachment, status: status, type: :image
subject { helper.media_summary(status) }
result = helper.media_summary(status)
let(:status) { Fabricate.build :status }
expect(result).to eq('Attached: 1 image · 1 video · 1 audio')
end
before { %i(video audio image).each { |type| Fabricate.build :media_attachment, status:, type: } }
it { is_expected.to eq('Attached: 1 image · 1 video · 1 audio') }
end
describe 'visibility_icon' do