diff --git a/lib/tasks/consul.rake b/lib/tasks/consul.rake index b831c59f4..911460c68 100644 --- a/lib/tasks/consul.rake +++ b/lib/tasks/consul.rake @@ -1,5 +1,11 @@ namespace :consul do desc "Runs tasks needed to upgrade to the latest version" task execute_release_tasks: ["settings:rename_setting_keys", - "settings:add_new_settings"] + "settings:add_new_settings", + "execute_release_1.3.0_tasks"] + + desc "Runs tasks needed to upgrade from 1.2.0 to 1.3.0" + task "execute_release_1.3.0_tasks": [ + "db:load_sdg" + ] end diff --git a/lib/tasks/db.rake b/lib/tasks/db.rake index 0c036c609..a64643adc 100644 --- a/lib/tasks/db.rake +++ b/lib/tasks/db.rake @@ -4,4 +4,10 @@ namespace :db do @avoid_log = args[:print_log] == "avoid_log" load(Rails.root.join("db", "dev_seeds.rb")) end + + desc "Load SDG content into database" + task load_sdg: :environment do + ApplicationLogger.new.info "Adding Sustainable Development Goals content" + load(Rails.root.join("db", "sdg.rb")) + end end diff --git a/spec/lib/tasks/load_sdg_spec.rb b/spec/lib/tasks/load_sdg_spec.rb new file mode 100644 index 000000000..095406001 --- /dev/null +++ b/spec/lib/tasks/load_sdg_spec.rb @@ -0,0 +1,28 @@ +require "rails_helper" + +describe "rake db:load_sdg" do + before { Rake::Task["db:load_sdg"].reenable } + + let :run_rake_task do + Rake.application.invoke_task("db:load_sdg") + end + + it "populates empty databases correctly" do + SDG::Goal.destroy_all + + run_rake_task + + expect(SDG::Goal.count).to eq 17 + end + + it "does not create additional records on populated databases" do + expect(SDG::Goal.count).to eq 17 + + goal_id = SDG::Goal.last.id + + run_rake_task + + expect(SDG::Goal.count).to eq 17 + expect(SDG::Goal.last.id).to eq goal_id + end +end