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.
pull/5613/head
ysksn 2017-11-06 13:54:12 +09:00 committed by Yamagishi Kazutoshi
parent d48779cf7b
commit cf01326cc1
1 changed files with 34 additions and 11 deletions

View File

@ -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')
end
account.avatar_remote_url = 'https://remote/invalid_avatar'
account.save_with_optional_media!
let(:account) do
Fabricate(:account,
avatar_remote_url: 'https://remote/valid_avatar',
header_remote_url: 'https://remote/valid_avatar')
end
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
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