Skip to content

Return an ApplicationSetting in CurrentSettings

What does this MR do?

This replaces the use of fake_application_settings with
`::ApplicationSetting.build`_from_defaults. The reason is that
`fake_application_settings` doesn't have the custom accessors that
`ApplicationSetting` has, e.g. `#commit_email_hostname`, thus this
can lead to unexpected `nil` values which comes from the database
column instead of `.default_commit_email_hostname` returned by
`ApplicationSetting#commit_email_hostname`.

Using `::ApplicationSetting.build_from_defaults` should be safe as it
doesn't try to `INSERT` a DB record, in contrary to
`::ApplicationSetting.create_from_defaults` which we used to use, and
which created issues that the introduction of
`fake_application_settings` tried to resolve (575dced5).

What are the relevant issue numbers?

Related to https://gitlab.com/gitlab-org/gitlab-ce/issues/47491.

Does this MR meet the acceptance criteria?

Edited by Rémy Coutable

Merge request reports