Add test for Account#save_with_optional_media! (#5603)

There was a test when some of the properties are invalid, but none when all
of them are valid.
master
ysksn 7 years ago committed by Yamagishi Kazutoshi
parent d48779cf7b
commit cf01326cc1
  1. 49
      spec/models/account_spec.rb

@ -93,21 +93,44 @@ RSpec.describe Account, type: :model do
end
describe '#save_with_optional_media!' do
it 'sets default avatar, header, avatar_remote_url, and header_remote_url if some of them are invalid' do
before do
stub_request(:get, 'https://remote/valid_avatar').to_return(request_fixture('avatar.txt'))
stub_request(:get, 'https://remote/invalid_avatar').to_return(request_fixture('feed.txt'))
account = Fabricate(:account,
avatar_remote_url: 'https://remote/valid_avatar',
header_remote_url: 'https://remote/valid_avatar')
account.avatar_remote_url = 'https://remote/invalid_avatar'
account.save_with_optional_media!
account.reload
expect(account.avatar_remote_url).to eq ''
expect(account.header_remote_url).to eq ''
expect(account.avatar_file_name).to eq nil
expect(account.header_file_name).to eq nil
end
let(:account) do
Fabricate(:account,
avatar_remote_url: 'https://remote/valid_avatar',
header_remote_url: 'https://remote/valid_avatar')
end
let!(:expectation) { account.dup }
context 'with valid properties' do
before do
account.save_with_optional_media!
end
it 'unchanges avatar, header, avatar_remote_url, and header_remote_url' do
expect(account.avatar_remote_url).to eq expectation.avatar_remote_url
expect(account.header_remote_url).to eq expectation.header_remote_url
expect(account.avatar_file_name).to eq expectation.avatar_file_name
expect(account.header_file_name).to eq expectation.header_file_name
end
end
context 'with invalid properties' do
before do
account.avatar_remote_url = 'https://remote/invalid_avatar'
account.save_with_optional_media!
end
it 'sets default avatar, header, avatar_remote_url, and header_remote_url' do
expect(account.avatar_remote_url).to eq ''
expect(account.header_remote_url).to eq ''
expect(account.avatar_file_name).to eq nil
expect(account.header_file_name).to eq nil
end
end
end

Loading…
Cancel
Save