diff options
Diffstat (limited to 'spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb')
-rw-r--r-- | spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb b/spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb new file mode 100644 index 00000000000..e5b20b2d48a --- /dev/null +++ b/spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe FixUpdateImportSourcesOnApplicationSettings, feature_category: :migration do + let(:settings) { table(:application_settings) } + let(:import_sources) { %w[github git bitbucket bitbucket_server] } + + describe "#up" do + shared_examples 'fixes import_sources on application_settings' do + it 'ensures YAML is stored' do + record = settings.create!(import_sources: data) + + migrate! + + expect(record.reload.import_sources).to start_with('---') + expect(ApplicationSetting.last.import_sources).to eq(import_sources) + end + end + + context 'when import_sources is a String' do + let(:data) { import_sources.to_s } + + it_behaves_like 'fixes import_sources on application_settings' + end + + context 'when import_sources is already YAML' do + let(:data) { import_sources.to_yaml } + + it_behaves_like 'fixes import_sources on application_settings' + end + end +end |