foodsoft/spec/integration/config_spec.rb
Philipp Rothmann fb2b4d8a8a chore: rubocop
chore: fix api test conventions

chore: rubocop -A spec/

chore: more rubocop -A

fix failing test

rubocop fixes

removes helper methods that are in my opinion dead code

more rubocop fixes

rubocop -a --auto-gen-config
2023-06-09 17:35:05 +02:00

63 lines
1.6 KiB
Ruby

require_relative '../spec_helper'
feature 'admin/configs' do
let(:name) { Faker::Lorem.words(number: rand(2..4)).join(' ') }
let(:email) { Faker::Internet.email }
let(:admin) { create(:admin) }
before { login admin }
it 'has initial value' do
FoodsoftConfig[:name] = name
visit admin_config_path
within('form.config') do
expect(find_field('config_name').value).to eq name
end
end
it 'can modify a value' do
visit admin_config_path
fill_in 'config_name', with: name
within('form.config') do
find('input[type="submit"]').click
expect(find_field('config_name').value).to eq name
end
expect(FoodsoftConfig[:name]).to eq name
end
it 'keeps config the same without changes' do
orig_values = get_full_config
visit admin_config_path
within('form.config') do
find('input[type="submit"]').click
expect(find_field('config_name').value).to eq FoodsoftConfig[:name]
end
expect(get_full_config).to eq orig_values
end
it 'can modify a nested value' do
visit admin_config_path
fill_in 'config_contact_email', with: email
within('form.config') do
find('input[type="submit"]').click
expect(find_field('config_contact_email').value).to eq email
end
expect(FoodsoftConfig[:contact][:email]).to eq email
end
def get_full_config
cfg = FoodsoftConfig.to_hash.deep_dup
compact_hash_deep!(cfg)
end
def compact_hash_deep!(h)
h.each do |_k, v|
if v.is_a? Hash
compact_hash_deep!(v)
v.compact_blank!
end
end
h.compact_blank!
h
end
end