diff options
author | ysksn <bluewhale1982@gmail.com> | 2017-11-06 13:54:12 +0900 |
---|---|---|
committer | Yamagishi Kazutoshi <ykzts@desire.sh> | 2017-11-06 13:54:12 +0900 |
commit | cf01326cc130bc6255aab5ce1e961ff8810758ae (patch) | |
tree | c382460108fefad8a7572cb222758f90bda1a180 /spec/models | |
parent | d48779cf7b9cf69a39ea821c3a5ae79f62e39ceb (diff) |
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.
Diffstat (limited to 'spec/models')
-rw-r--r-- | spec/models/account_spec.rb | 49 |
1 files changed, 36 insertions, 13 deletions
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 2144bffee..5165082d1 100644 --- a/spec/models/account_spec.rb +++ b/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 |