summaryrefslogtreecommitdiff
path: root/spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb
blob: e5b20b2d48a8b97737ef3c98f2c9850af2ec89cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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