From 8b063a1bc1eee6757d1233cdcb32ff492ac357fe Mon Sep 17 00:00:00 2001 From: Bertocq Date: Wed, 31 May 2017 14:42:05 +0200 Subject: [PATCH] Create spec for the new settings migration rake task --- spec/lib/tasks/settings_spec.rb | 80 +++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 spec/lib/tasks/settings_spec.rb diff --git a/spec/lib/tasks/settings_spec.rb b/spec/lib/tasks/settings_spec.rb new file mode 100644 index 000000000..1311763bf --- /dev/null +++ b/spec/lib/tasks/settings_spec.rb @@ -0,0 +1,80 @@ +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 + + after(:all) do + Setting['per_page_code_head'] = '' + 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 'should have 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 'should have 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 'should have 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 'should have 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