Commit 045ab84e authored by Stan Hu's avatar Stan Hu

Fix broken specs due to cached application settings

The /admin panel will now always return an uncached
application setting to ensure it always has the most
current info.
parent 07f879f8
...@@ -64,7 +64,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController ...@@ -64,7 +64,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
private private
def set_application_setting def set_application_setting
@application_setting = Gitlab::CurrentSettings.current_application_settings @application_setting = ApplicationSetting.current_without_cache
end end
def whitelist_query_limiting def whitelist_query_limiting
......
...@@ -69,7 +69,7 @@ module ApplicationSettingsHelper ...@@ -69,7 +69,7 @@ module ApplicationSettingsHelper
# toggle button effect. # toggle button effect.
def import_sources_checkboxes(help_block_id, options = {}) def import_sources_checkboxes(help_block_id, options = {})
Gitlab::ImportSources.options.map do |name, source| Gitlab::ImportSources.options.map do |name, source|
checked = Gitlab::CurrentSettings.import_sources.include?(source) checked = @application_setting.import_sources.include?(source)
css_class = checked ? 'active' : '' css_class = checked ? 'active' : ''
checkbox_name = 'application_setting[import_sources][]' checkbox_name = 'application_setting[import_sources][]'
...@@ -85,7 +85,7 @@ module ApplicationSettingsHelper ...@@ -85,7 +85,7 @@ module ApplicationSettingsHelper
def oauth_providers_checkboxes def oauth_providers_checkboxes
button_based_providers.map do |source| button_based_providers.map do |source|
disabled = Gitlab::CurrentSettings.disabled_oauth_sign_in_sources.include?(source.to_s) disabled = @application_setting.disabled_oauth_sign_in_sources.include?(source.to_s)
css_class = ['btn'] css_class = ['btn']
css_class << 'active' unless disabled css_class << 'active' unless disabled
checkbox_name = 'application_setting[enabled_oauth_sign_in_sources][]' checkbox_name = 'application_setting[enabled_oauth_sign_in_sources][]'
......
...@@ -40,7 +40,7 @@ describe 'Admin updates settings' do ...@@ -40,7 +40,7 @@ describe 'Admin updates settings' do
end end
it 'Modify import sources' do it 'Modify import sources' do
expect(Gitlab::CurrentSettings.import_sources).not_to be_empty expect(current_settings.import_sources).not_to be_empty
page.within('.as-visibility-access') do page.within('.as-visibility-access') do
Gitlab::ImportSources.options.map do |name, _| Gitlab::ImportSources.options.map do |name, _|
...@@ -51,7 +51,7 @@ describe 'Admin updates settings' do ...@@ -51,7 +51,7 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.import_sources).to be_empty expect(current_settings.import_sources).to be_empty
page.within('.as-visibility-access') do page.within('.as-visibility-access') do
check "Repo by URL" check "Repo by URL"
...@@ -59,7 +59,7 @@ describe 'Admin updates settings' do ...@@ -59,7 +59,7 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.import_sources).to eq(['git']) expect(current_settings.import_sources).to eq(['git'])
end end
it 'Change Visibility and Access Controls' do it 'Change Visibility and Access Controls' do
...@@ -68,7 +68,7 @@ describe 'Admin updates settings' do ...@@ -68,7 +68,7 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.project_export_enabled).to be_falsey expect(current_settings.project_export_enabled).to be_falsey
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
end end
...@@ -96,7 +96,7 @@ describe 'Admin updates settings' do ...@@ -96,7 +96,7 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.gravatar_enabled).to be_falsey expect(current_settings.gravatar_enabled).to be_falsey
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
end end
...@@ -118,7 +118,7 @@ describe 'Admin updates settings' do ...@@ -118,7 +118,7 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.home_page_url).to eq "https://about.gitlab.com/" expect(current_settings.home_page_url).to eq "https://about.gitlab.com/"
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
end end
...@@ -133,13 +133,13 @@ describe 'Admin updates settings' do ...@@ -133,13 +133,13 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.enforce_terms).to be(true) expect(current_settings.enforce_terms).to be(true)
expect(Gitlab::CurrentSettings.terms).to eq 'Be nice!' expect(current_settings.terms).to eq 'Be nice!'
expect(page).to have_content 'Application settings saved successfully' expect(page).to have_content 'Application settings saved successfully'
end end
it 'Modify oauth providers' do it 'Modify oauth providers' do
expect(Gitlab::CurrentSettings.disabled_oauth_sign_in_sources).to be_empty expect(current_settings.disabled_oauth_sign_in_sources).to be_empty
page.within('.as-signin') do page.within('.as-signin') do
uncheck 'Google' uncheck 'Google'
...@@ -147,7 +147,7 @@ describe 'Admin updates settings' do ...@@ -147,7 +147,7 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.disabled_oauth_sign_in_sources).to include('google_oauth2') expect(current_settings.disabled_oauth_sign_in_sources).to include('google_oauth2')
page.within('.as-signin') do page.within('.as-signin') do
check "Google" check "Google"
...@@ -155,11 +155,11 @@ describe 'Admin updates settings' do ...@@ -155,11 +155,11 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.disabled_oauth_sign_in_sources).not_to include('google_oauth2') expect(current_settings.disabled_oauth_sign_in_sources).not_to include('google_oauth2')
end end
it 'Oauth providers do not raise validation errors when saving unrelated changes' do it 'Oauth providers do not raise validation errors when saving unrelated changes' do
expect(Gitlab::CurrentSettings.disabled_oauth_sign_in_sources).to be_empty expect(current_settings.disabled_oauth_sign_in_sources).to be_empty
page.within('.as-signin') do page.within('.as-signin') do
uncheck 'Google' uncheck 'Google'
...@@ -167,7 +167,7 @@ describe 'Admin updates settings' do ...@@ -167,7 +167,7 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.disabled_oauth_sign_in_sources).to include('google_oauth2') expect(current_settings.disabled_oauth_sign_in_sources).to include('google_oauth2')
# Remove google_oauth2 from the Omniauth strategies # Remove google_oauth2 from the Omniauth strategies
allow(Devise).to receive(:omniauth_providers).and_return([]) allow(Devise).to receive(:omniauth_providers).and_return([])
...@@ -178,7 +178,7 @@ describe 'Admin updates settings' do ...@@ -178,7 +178,7 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.disabled_oauth_sign_in_sources).to include('google_oauth2') expect(current_settings.disabled_oauth_sign_in_sources).to include('google_oauth2')
end end
it 'Configure web terminal' do it 'Configure web terminal' do
...@@ -188,7 +188,7 @@ describe 'Admin updates settings' do ...@@ -188,7 +188,7 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.terminal_max_session_time).to eq(15) expect(current_settings.terminal_max_session_time).to eq(15)
end end
end end
...@@ -204,7 +204,7 @@ describe 'Admin updates settings' do ...@@ -204,7 +204,7 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.hide_third_party_offers).to be true expect(current_settings.hide_third_party_offers).to be true
end end
it 'Change Slack Notifications Service template settings' do it 'Change Slack Notifications Service template settings' do
...@@ -249,8 +249,8 @@ describe 'Admin updates settings' do ...@@ -249,8 +249,8 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.auto_devops_enabled?).to be true expect(current_settings.auto_devops_enabled?).to be true
expect(Gitlab::CurrentSettings.auto_devops_domain).to eq('domain.com') expect(current_settings.auto_devops_domain).to eq('domain.com')
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
end end
end end
...@@ -268,8 +268,8 @@ describe 'Admin updates settings' do ...@@ -268,8 +268,8 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.recaptcha_enabled).to be true expect(current_settings.recaptcha_enabled).to be true
expect(Gitlab::CurrentSettings.unique_ips_limit_per_user).to eq(15) expect(current_settings.unique_ips_limit_per_user).to eq(15)
end end
end end
...@@ -284,7 +284,7 @@ describe 'Admin updates settings' do ...@@ -284,7 +284,7 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.metrics_enabled?).to be true expect(current_settings.metrics_enabled?).to be true
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
end end
...@@ -294,7 +294,7 @@ describe 'Admin updates settings' do ...@@ -294,7 +294,7 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.prometheus_metrics_enabled?).to be true expect(current_settings.prometheus_metrics_enabled?).to be true
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
end end
...@@ -343,8 +343,8 @@ describe 'Admin updates settings' do ...@@ -343,8 +343,8 @@ describe 'Admin updates settings' do
end end
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
expect(Gitlab::CurrentSettings.allow_local_requests_from_hooks_and_services).to be true expect(current_settings.allow_local_requests_from_hooks_and_services).to be true
expect(Gitlab::CurrentSettings.dns_rebinding_protection_enabled).to be false expect(current_settings.dns_rebinding_protection_enabled).to be false
end end
end end
...@@ -361,9 +361,9 @@ describe 'Admin updates settings' do ...@@ -361,9 +361,9 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.help_page_text).to eq "Example text" expect(current_settings.help_page_text).to eq "Example text"
expect(Gitlab::CurrentSettings.help_page_hide_commercial_content).to be_truthy expect(current_settings.help_page_hide_commercial_content).to be_truthy
expect(Gitlab::CurrentSettings.help_page_support_url).to eq "http://example.com/help" expect(current_settings.help_page_support_url).to eq "http://example.com/help"
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
end end
...@@ -374,8 +374,8 @@ describe 'Admin updates settings' do ...@@ -374,8 +374,8 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.max_pages_size).to eq 15 expect(current_settings.max_pages_size).to eq 15
expect(Gitlab::CurrentSettings.pages_domain_verification_enabled?).to be_truthy expect(current_settings.pages_domain_verification_enabled?).to be_truthy
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
end end
...@@ -385,7 +385,7 @@ describe 'Admin updates settings' do ...@@ -385,7 +385,7 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.polling_interval_multiplier).to eq 5.0 expect(current_settings.polling_interval_multiplier).to eq 5.0
expect(page).to have_content "Application settings saved successfully" expect(page).to have_content "Application settings saved successfully"
end end
...@@ -395,7 +395,7 @@ describe 'Admin updates settings' do ...@@ -395,7 +395,7 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.polling_interval_multiplier).not_to eq(-1.0) expect(current_settings.polling_interval_multiplier).not_to eq(-1.0)
expect(page) expect(page)
.to have_content "The form contains the following error: Polling interval multiplier must be greater than or equal to 0" .to have_content "The form contains the following error: Polling interval multiplier must be greater than or equal to 0"
end end
...@@ -413,8 +413,8 @@ describe 'Admin updates settings' do ...@@ -413,8 +413,8 @@ describe 'Admin updates settings' do
click_button 'Save changes' click_button 'Save changes'
end end
expect(Gitlab::CurrentSettings.lets_encrypt_notification_email).to eq 'my@test.example.com' expect(current_settings.lets_encrypt_notification_email).to eq 'my@test.example.com'
expect(Gitlab::CurrentSettings.lets_encrypt_terms_of_service_accepted).to eq true expect(current_settings.lets_encrypt_terms_of_service_accepted).to eq true
end end
end end
...@@ -445,4 +445,8 @@ describe 'Admin updates settings' do ...@@ -445,4 +445,8 @@ describe 'Admin updates settings' do
page.check('Wiki page') page.check('Wiki page')
page.check('Deployment') page.check('Deployment')
end end
def current_settings
ApplicationSetting.current_without_cache
end
end end
...@@ -81,15 +81,18 @@ describe 'Users > Terms' do ...@@ -81,15 +81,18 @@ describe 'Users > Terms' do
enforce_terms enforce_terms
within('.nav-sidebar') do # Application settings are cached for a minute
click_link 'Issues' Timecop.travel 2.minutes do
end within('.nav-sidebar') do
click_link 'Issues'
end
expect_to_be_on_terms_page expect_to_be_on_terms_page
click_button('Accept terms') click_button('Accept terms')
expect(current_path).to eq(project_issues_path(project)) expect(current_path).to eq(project_issues_path(project))
end
end end
# Disabled until https://gitlab.com/gitlab-org/gitlab-ce/issues/37162 is solved properly # Disabled until https://gitlab.com/gitlab-org/gitlab-ce/issues/37162 is solved properly
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment