require 'spec_helper' describe Admin::ApplicationSettingsController do let(:group) { create(:group) } let(:project) { create(:project, namespace: group) } let(:admin) { create(:admin) } let(:user) { create(:user)} describe 'PUT #update' do before do sign_in(admin) end context 'with valid params' do subject { put :update, application_setting: { repository_size_limit: '100' } } it 'redirect to application settings page' do is_expected.to redirect_to(admin_application_settings_path) end it 'set flash notice' do is_expected.to set_flash[:notice].to('Application settings saved successfully') end end context 'with invalid params' do subject! { put :update, application_setting: { repository_size_limit: '-100' } } it 'render show template' do is_expected.to render_template(:show) end it 'assigned @application_settings has errors' do expect(assigns(:application_setting).errors[:repository_size_limit]).to be_present end end end describe 'GET #usage_data with no access' do before do sign_in(user) end it 'returns 404' do get :usage_data, format: :html expect(response.status).to eq(404) end end describe 'GET #usage_data' do before do sign_in(admin) end it 'returns HTML data' do get :usage_data, format: :html expect(response.body).to start_with('<span') expect(response.status).to eq(200) end it 'returns JSON data' do get :usage_data, format: :json body = JSON.parse(response.body) expect(body["version"]).to eq(Gitlab::VERSION) expect(body).to include('counts') expect(response.status).to eq(200) end end end