diff options
Diffstat (limited to 'spec/helpers/profiles_helper_spec.rb')
-rw-r--r-- | spec/helpers/profiles_helper_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/helpers/profiles_helper_spec.rb b/spec/helpers/profiles_helper_spec.rb index 4c43b1ec4cf..15ca5f61b51 100644 --- a/spec/helpers/profiles_helper_spec.rb +++ b/spec/helpers/profiles_helper_spec.rb @@ -124,6 +124,41 @@ RSpec.describe ProfilesHelper do end end + describe '#user_profile_data' do + let(:time) { 3.hours.ago } + let(:user) do + build_stubbed(:user, status: UserStatus.new( + message: 'Some message', + emoji: 'basketball', + availability: 'busy', + clear_status_at: time + )) + end + + before do + allow(helper).to receive(:current_user).and_return(user) + end + + it 'returns user profile data' do + data = helper.user_profile_data(user) + + expect(data[:profile_path]).to be_a(String) + expect(data[:profile_avatar_path]).to be_a(String) + expect(data[:avatar_url]).to be_http_url + expect(data[:has_avatar]).to be_a(String) + expect(data[:gravatar_enabled]).to be_a(String) + expect(Gitlab::Json.parse(data[:gravatar_link])).to match(hash_including('hostname' => Gitlab.config.gravatar.host, 'url' => a_valid_url)) + expect(data[:brand_profile_image_guidelines]).to be_a(String) + expect(data[:cropper_css_path]).to eq(ActionController::Base.helpers.stylesheet_path('lazy_bundles/cropper.css')) + expect(data[:user_path]).to be_a(String) + expect(data[:current_emoji]).to eq('basketball') + expect(data[:current_message]).to eq('Some message') + expect(data[:current_availability]).to eq('busy') + expect(data[:current_clear_status_after]).to eq(time.to_fs(:iso8601)) + expect(data[:default_emoji]).to eq(UserStatus::DEFAULT_EMOJI) + end + end + def stub_auth0_omniauth_provider provider = OpenStruct.new( 'name' => example_omniauth_provider, |