Skip to content

Commit

Permalink
Models specs coverage (mastodon#23940)
Browse files Browse the repository at this point in the history
  • Loading branch information
mjankowski authored and skerit committed Jul 7, 2023
1 parent ee6e236 commit cb1d7ac
Show file tree
Hide file tree
Showing 5 changed files with 121 additions and 0 deletions.
5 changes: 5 additions & 0 deletions spec/fabricators/preview_card_provider_fabricator.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# frozen_string_literal: true

Fabricator(:preview_card_provider) do
domain { Faker::Internet.domain_name }
end
17 changes: 17 additions & 0 deletions spec/models/account_warning_preset_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# frozen_string_literal: true

require 'rails_helper'

describe AccountWarningPreset do
describe 'alphabetical' do
let(:first) { Fabricate(:account_warning_preset, title: 'aaa', text: 'aaa') }
let(:second) { Fabricate(:account_warning_preset, title: 'bbb', text: 'aaa') }
let(:third) { Fabricate(:account_warning_preset, title: 'bbb', text: 'bbb') }

it 'returns records in order of title and text' do
results = described_class.alphabetic

expect(results).to eq([first, second, third])
end
end
end
29 changes: 29 additions & 0 deletions spec/models/extended_description_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# frozen_string_literal: true

require 'rails_helper'

describe ExtendedDescription do
describe '.current' do
context 'with the default values' do
it 'makes a new instance' do
record = described_class.current

expect(record.text).to be_nil
expect(record.updated_at).to be_nil
end
end

context 'with a custom setting value' do
before do
setting = instance_double(Setting, value: 'Extended text', updated_at: 10.days.ago)
allow(Setting).to receive(:find_by).with(var: 'site_extended_description').and_return(setting)
end

it 'has the privacy text' do
record = described_class.current

expect(record.text).to eq('Extended text')
end
end
end
end
42 changes: 42 additions & 0 deletions spec/models/preview_card_provider_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# frozen_string_literal: true

require 'rails_helper'

describe PreviewCardProvider do
describe 'scopes' do
let(:trendable_and_reviewed) { Fabricate(:preview_card_provider, trendable: true, reviewed_at: 5.days.ago) }
let(:not_trendable_and_not_reviewed) { Fabricate(:preview_card_provider, trendable: false, reviewed_at: nil) }

describe 'trendable' do
it 'returns the relevant records' do
results = described_class.trendable

expect(results).to eq([trendable_and_reviewed])
end
end

describe 'not_trendable' do
it 'returns the relevant records' do
results = described_class.not_trendable

expect(results).to eq([not_trendable_and_not_reviewed])
end
end

describe 'reviewed' do
it 'returns the relevant records' do
results = described_class.reviewed

expect(results).to eq([trendable_and_reviewed])
end
end

describe 'pending_review' do
it 'returns the relevant records' do
results = described_class.pending_review

expect(results).to eq([not_trendable_and_not_reviewed])
end
end
end
end
28 changes: 28 additions & 0 deletions spec/models/privacy_policy_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# frozen_string_literal: true

require 'rails_helper'

describe PrivacyPolicy do
describe '.current' do
context 'with the default values' do
it 'has the privacy text' do
policy = described_class.current

expect(policy.text).to eq(PrivacyPolicy::DEFAULT_PRIVACY_POLICY)
end
end

context 'with a custom setting value' do
before do
terms_setting = instance_double(Setting, value: 'Terms text', updated_at: 10.days.ago)
allow(Setting).to receive(:find_by).with(var: 'site_terms').and_return(terms_setting)
end

it 'has the privacy text' do
policy = described_class.current

expect(policy.text).to eq('Terms text')
end
end
end
end

0 comments on commit cb1d7ac

Please sign in to comment.