spec/lib/tasks/settings_spec.rb
require 'rails_helper'
require 'rake'
describe 'Settings Rake' do
describe '#per_page_code_migration' do
before do
Rake.application.rake_require "tasks/settings"
Rake::Task.define_task(:environment)
end
let :run_rake_task do
Rake::Task['settings:per_page_code_migration'].reenable
Rake.application.invoke_task 'settings:per_page_code_migration'
end
context 'Neither per_page_code_head or per_page_code Settings exist' do
before do
Setting.where(key: 'per_page_code').first&.destroy
Setting.where(key: 'per_page_code_head').first&.destroy
run_rake_task
end
it 'has per_page_code_head setting present and no per_page_code' do
expect(Setting.where(key: 'per_page_code_head').count).to eq(1)
expect(Setting['per_page_code_head']).to eq(nil)
expect(Setting.where(key: 'per_page_code').count).to eq(0)
end
end
context 'Both per_page_code_head or per_page_code Settings exist' do
before do
Setting['per_page_code'] = 'per_page_code'
Setting['per_page_code_head'] = 'per_page_code_head'
run_rake_task
end
it 'has per_page_code_head setting present and no per_page_code' do
expect(Setting.where(key: 'per_page_code_head').count).to eq(1)
expect(Setting['per_page_code_head']).to eq('per_page_code_head')
expect(Setting.where(key: 'per_page_code').count).to eq(0)
end
end
context 'per_page_code_head exists, but per_page_code does not' do
before do
Setting.where(key: 'per_page_code').first&.destroy
Setting['per_page_code_head'] = 'per_page_code_head'
run_rake_task
end
it 'has per_page_code_head setting present and no per_page_code' do
expect(Setting.where(key: 'per_page_code_head').count).to eq(1)
expect(Setting['per_page_code_head']).to eq('per_page_code_head')
expect(Setting.where(key: 'per_page_code').count).to eq(0)
end
end
context 'per_page_code_head does not exist, but per_page_code does' do
before do
Setting['per_page_code'] = 'per_page_code'
Setting.where(key: 'per_page_code_head').first&.destroy
run_rake_task
end
it 'has per_page_code_head setting present and no per_page_code' do
expect(Setting.where(key: 'per_page_code_head').count).to eq(1)
expect(Setting['per_page_code_head']).to eq('per_page_code')
expect(Setting.where(key: 'per_page_code').count).to eq(0)
end
end
end
end