summaryrefslogtreecommitdiff
path: root/spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb
blob: 2915fe1964f52ae87a6dce409c3fc95efe73cd08 (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
35
36
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe 'admin/application_settings/_repository_storage.html.haml' do
  let(:app_settings) { create(:application_setting) }
  let(:repository_storages_weighted_attributes) { [:repository_storages_weighted_default, :repository_storages_weighted_mepmep, :repository_storages_weighted_foobar]}
  let(:repository_storages_weighted) do
    {
      "default" => 100,
      "mepmep" => 50
    }
  end

  before do
    allow(app_settings).to receive(:repository_storages_weighted).and_return(repository_storages_weighted)
    allow(app_settings).to receive(:repository_storages_weighted_mepmep).and_return(100)
    allow(app_settings).to receive(:repository_storages_weighted_foobar).and_return(50)
    assign(:application_setting, app_settings)
    allow(ApplicationSetting).to receive(:repository_storages_weighted_attributes).and_return(repository_storages_weighted_attributes)
  end

  context 'when multiple storages are available' do
    it 'lists them all' do
      render

      # lists storages that are saved with weights
      repository_storages_weighted.each do |storage_name, storage_weight|
        expect(rendered).to have_content(storage_name)
      end

      # lists storage not saved with weight
      expect(rendered).to have_content('foobar')
    end
  end
end