summaryrefslogtreecommitdiff
path: root/spec/features/file_uploads/user_avatar_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/file_uploads/user_avatar_spec.rb')
-rw-r--r--spec/features/file_uploads/user_avatar_spec.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/features/file_uploads/user_avatar_spec.rb b/spec/features/file_uploads/user_avatar_spec.rb
new file mode 100644
index 00000000000..043115be61a
--- /dev/null
+++ b/spec/features/file_uploads/user_avatar_spec.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Upload a user avatar', :js do
+ let_it_be(:user, reload: true) { create(:user) }
+ let(:file) { fixture_file_upload('spec/fixtures/banana_sample.gif') }
+
+ before do
+ sign_in(user)
+ visit(profile_path)
+ attach_file('user_avatar-trigger', file.path, make_visible: true)
+ click_button 'Set new profile picture'
+ end
+
+ subject do
+ click_button 'Update profile settings'
+ end
+
+ RSpec.shared_examples 'for a user avatar' do
+ it 'uploads successfully' do
+ expect(user.avatar.file).to eq nil
+ subject
+
+ expect(page).to have_content 'Profile was successfully updated'
+ expect(user.reload.avatar.file).to be_present
+ expect(user.avatar).to be_instance_of AvatarUploader
+ expect(current_path).to eq(profile_path)
+ end
+ end
+
+ it_behaves_like 'handling file uploads', 'for a user avatar'
+end