diff options
Diffstat (limited to 'spec/controllers/uploads_controller_spec.rb')
-rw-r--r-- | spec/controllers/uploads_controller_spec.rb | 74 |
1 files changed, 55 insertions, 19 deletions
diff --git a/spec/controllers/uploads_controller_spec.rb b/spec/controllers/uploads_controller_spec.rb index 3e9c56d3274..8015136d1e0 100644 --- a/spec/controllers/uploads_controller_spec.rb +++ b/spec/controllers/uploads_controller_spec.rb @@ -658,19 +658,17 @@ RSpec.describe UploadsController do end context 'Appearance' do - context 'when viewing a custom header logo' do - let!(:appearance) { create :appearance, header_logo: fixture_file_upload('spec/fixtures/dk.png', 'image/png') } - + shared_examples 'view custom logo' do |mounted_as| context 'when not signed in' do it 'responds with status 200' do - get :show, params: { model: 'appearance', mounted_as: 'header_logo', id: appearance.id, filename: 'dk.png' } + get :show, params: { model: 'appearance', mounted_as: mounted_as, id: appearance.id, filename: 'dk.png' } expect(response).to have_gitlab_http_status(:ok) end it_behaves_like 'content publicly cached' do subject do - get :show, params: { model: 'appearance', mounted_as: 'header_logo', id: appearance.id, filename: 'dk.png' } + get :show, params: { model: 'appearance', mounted_as: mounted_as, id: appearance.id, filename: 'dk.png' } response end @@ -678,24 +676,22 @@ RSpec.describe UploadsController do end end - context 'when viewing a custom logo' do - let!(:appearance) { create :appearance, logo: fixture_file_upload('spec/fixtures/dk.png', 'image/png') } + context 'when viewing a custom pwa icon' do + let!(:appearance) { create :appearance, pwa_icon: fixture_file_upload('spec/fixtures/dk.png', 'image/png') } - context 'when not signed in' do - it 'responds with status 200' do - get :show, params: { model: 'appearance', mounted_as: 'logo', id: appearance.id, filename: 'dk.png' } + it_behaves_like 'view custom logo', 'pwa_icon' + end - expect(response).to have_gitlab_http_status(:ok) - end + context 'when viewing a custom header logo' do + let!(:appearance) { create :appearance, header_logo: fixture_file_upload('spec/fixtures/dk.png', 'image/png') } - it_behaves_like 'content publicly cached' do - subject do - get :show, params: { model: 'appearance', mounted_as: 'logo', id: appearance.id, filename: 'dk.png' } + it_behaves_like 'view custom logo', 'header_logo' + end - response - end - end - end + context 'when viewing a custom logo' do + let!(:appearance) { create :appearance, logo: fixture_file_upload('spec/fixtures/dk.png', 'image/png') } + + it_behaves_like 'view custom logo', 'logo' end end @@ -740,6 +736,46 @@ RSpec.describe UploadsController do expect(response).to have_gitlab_http_status(:ok) end end + + context "when viewing an achievement" do + let!(:achievement) { create(:achievement, avatar: fixture_file_upload("spec/fixtures/dk.png", "image/png")) } + + context "when signed in" do + before do + sign_in(user) + end + + it "responds with status 200" do + get :show, params: { model: "achievements/achievement", mounted_as: "avatar", id: achievement.id, filename: "dk.png" } + + expect(response).to have_gitlab_http_status(:ok) + end + + it_behaves_like 'content publicly cached' do + subject do + get :show, params: { model: "achievements/achievement", mounted_as: "avatar", id: achievement.id, filename: "dk.png" } + + response + end + end + end + + context "when not signed in" do + it "responds with status 200" do + get :show, params: { model: "achievements/achievement", mounted_as: "avatar", id: achievement.id, filename: "dk.png" } + + expect(response).to have_gitlab_http_status(:ok) + end + + it_behaves_like 'content publicly cached' do + subject do + get :show, params: { model: "achievements/achievement", mounted_as: "avatar", id: achievement.id, filename: "dk.png" } + + response + end + end + end + end end def post_authorize(verified: true) |