diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2018-12-14 22:45:14 +0800 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-12-19 11:24:54 +0100 |
commit | 0ff27ce05960598e5a1c0a1115180db0feeb689a (patch) | |
tree | 2ae5e499696fee4f080ad62b7f50b302772dbfed | |
parent | cc5099c5ce79a7c062e2197b47f5f8a81bb48292 (diff) | |
download | gitlab-ce-0ff27ce05960598e5a1c0a1115180db0feeb689a.tar.gz |
Method `create_from_defaults` will never give nil
-rw-r--r-- | app/models/application_setting.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/current_settings.rb | 3 | ||||
-rw-r--r-- | spec/lib/gitlab/current_settings_spec.rb | 19 |
3 files changed, 9 insertions, 15 deletions
diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index 54139f61a16..86ffd198ab1 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -311,7 +311,7 @@ class ApplicationSetting < ActiveRecord::Base end def self.create_from_defaults - create(defaults) + build_from_defaults.tap(&:save) end def self.human_attribute_name(attr, _options = {}) diff --git a/lib/gitlab/current_settings.rb b/lib/gitlab/current_settings.rb index 570bfb80fba..552aad83dd4 100644 --- a/lib/gitlab/current_settings.rb +++ b/lib/gitlab/current_settings.rb @@ -51,8 +51,7 @@ module Gitlab elsif current_settings.present? current_settings else - ::ApplicationSetting.create_from_defaults || - in_memory_application_settings + ::ApplicationSetting.create_from_defaults end end diff --git a/spec/lib/gitlab/current_settings_spec.rb b/spec/lib/gitlab/current_settings_spec.rb index 06772fffce7..add8867d243 100644 --- a/spec/lib/gitlab/current_settings_spec.rb +++ b/spec/lib/gitlab/current_settings_spec.rb @@ -54,7 +54,7 @@ describe Gitlab::CurrentSettings do expect(ApplicationSetting).not_to receive(:current) end - it 'returns an in-memory ApplicationSetting object' do + it 'returns a FakeApplicationSettings object' do expect(described_class.current_application_settings).to be_a(Gitlab::FakeApplicationSettings) end @@ -157,17 +157,12 @@ describe Gitlab::CurrentSettings do end end - context 'when the application_settings table does not exists' do - it 'returns an in-memory ApplicationSetting object' do - expect(ApplicationSetting).to receive(:create_from_defaults).and_raise(ActiveRecord::StatementInvalid) - - expect(described_class.current_application_settings).to be_a(Gitlab::FakeApplicationSettings) - end - end - - context 'when the application_settings table is not fully migrated' do - it 'returns an in-memory ApplicationSetting object' do - expect(ApplicationSetting).to receive(:create_from_defaults).and_raise(ActiveRecord::UnknownAttributeError) + context 'when the application_settings table does not exist' do + it 'returns a FakeApplicationSettings object' do + expect(Gitlab::Database) + .to receive(:cached_table_exists?) + .with('application_settings') + .and_return(false) expect(described_class.current_application_settings).to be_a(Gitlab::FakeApplicationSettings) end |