Method `create_from_defaults` will never give nil

This commit is contained in:
Lin Jen-Shin 2018-12-14 22:45:14 +08:00 committed by Rémy Coutable
parent cc5099c5ce
commit 0ff27ce059
No known key found for this signature in database
GPG Key ID: 98DFFD1C0C62B70B
3 changed files with 9 additions and 15 deletions

View File

@ -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 = {})

View File

@ -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

View File

@ -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