commit: cf01326cc130bc6255aab5ce1e961ff8810758ae
parent: d48779cf7b9cf69a39ea821c3a5ae79f62e39ceb
Author: ysksn <bluewhale1982@gmail.com>
Date: Mon, 6 Nov 2017 13:54:12 +0900
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:
1 file changed, 36 insertions(+), 13 deletions(-)
diff --git 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