diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/formatter_spec.rb | 23 | ||||
-rw-r--r-- | spec/models/concerns/remotable_spec.rb | 13 | ||||
-rw-r--r-- | spec/services/report_service_spec.rb | 20 | ||||
-rw-r--r-- | spec/views/stream_entries/show.html.haml_spec.rb | 1 |
4 files changed, 55 insertions, 2 deletions
diff --git a/spec/lib/formatter_spec.rb b/spec/lib/formatter_spec.rb index d60d24bf6..0c2248cae 100644 --- a/spec/lib/formatter_spec.rb +++ b/spec/lib/formatter_spec.rb @@ -170,6 +170,29 @@ RSpec.describe Formatter do end end + + describe '#format_spoiler' do + subject { Formatter.instance.format_spoiler(status) } + + context 'given a post containing plain text' do + let(:status) { Fabricate(:status, text: 'text', spoiler_text: 'Secret!', uri: nil) } + + it 'Returns the spoiler text' do + is_expected.to eq 'Secret!' + end + end + + context 'given a post with an emoji shortcode at the start' do + let!(:emoji) { Fabricate(:custom_emoji) } + let(:status) { Fabricate(:status, text: 'text', spoiler_text: ':coolcat: Secret!', uri: nil) } + let(:text) { ':coolcat: Beep boop' } + + it 'converts the shortcode to an image tag' do + is_expected.to match(/<img draggable="false" class="emojione" alt=":coolcat:"/) + end + end + end + describe '#format' do subject { Formatter.instance.format(status) } diff --git a/spec/models/concerns/remotable_spec.rb b/spec/models/concerns/remotable_spec.rb index b39233739..a4289cc45 100644 --- a/spec/models/concerns/remotable_spec.rb +++ b/spec/models/concerns/remotable_spec.rb @@ -88,7 +88,18 @@ RSpec.describe Remotable do context 'parsed_url.host is empty' do it 'makes no request' do - parsed_url = double(scheme: 'https', host: double(empty?: true)) + parsed_url = double(scheme: 'https', host: double(blank?: true)) + allow(Addressable::URI).to receive_message_chain(:parse, :normalize) + .with(url).with(no_args).and_return(parsed_url) + + foo.hoge_remote_url = url + expect(request).not_to have_been_requested + end + end + + context 'parsed_url.host is nil' do + it 'makes no request' do + parsed_url = Addressable::URI.parse('https:https://example.com/path/file.png') allow(Addressable::URI).to receive_message_chain(:parse, :normalize) .with(url).with(no_args).and_return(parsed_url) diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb index 2c392d376..e8b094c89 100644 --- a/spec/services/report_service_spec.rb +++ b/spec/services/report_service_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' RSpec.describe ReportService, type: :service do subject { described_class.new } - let(:source_account) { Fabricate(:account) } + let(:source_account) { Fabricate(:user).account } context 'for a remote account' do let(:remote_account) { Fabricate(:account, domain: 'example.com', protocol: :activitypub, inbox_url: 'http://example.com/inbox') } @@ -22,4 +22,22 @@ RSpec.describe ReportService, type: :service do expect(a_request(:post, 'http://example.com/inbox')).to_not have_been_made end end + + context 'when other reports already exist for the same target' do + let!(:target_account) { Fabricate(:account) } + let!(:other_report) { Fabricate(:report, target_account: target_account) } + + subject do + -> { described_class.new.call(source_account, target_account) } + end + + before do + ActionMailer::Base.deliveries.clear + source_account.user.settings.notification_emails['report'] = true + end + + it 'does not send an e-mail' do + is_expected.to_not change(ActionMailer::Base.deliveries, :count).from(0) + end + end end diff --git a/spec/views/stream_entries/show.html.haml_spec.rb b/spec/views/stream_entries/show.html.haml_spec.rb index 34207aa6b..d06bb7abb 100644 --- a/spec/views/stream_entries/show.html.haml_spec.rb +++ b/spec/views/stream_entries/show.html.haml_spec.rb @@ -12,6 +12,7 @@ describe 'stream_entries/show.html.haml', without_verify_partial_doubles: true d allow(view).to receive(:full_asset_url).and_return('//asset.host/image.svg') allow(view).to receive(:local_time) allow(view).to receive(:local_time_ago) + allow(view).to receive(:current_account).and_return(nil) assign(:instance_presenter, InstancePresenter.new) end |