Files
grecia/spec/lib/tasks/db_spec.rb
Javi Martín 13f95e9419 Add SDG phase model
The purpose of this model will be to have different sections in the SDG
index.
2021-01-14 17:38:01 +01:00

71 lines
1.7 KiB
Ruby

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 and assigns targets correctly" do
SDG::Goal.destroy_all
SDG::Phase.destroy_all
run_rake_task
expect(SDG::Goal.count).to eq 17
expect(SDG::Target.count).to eq 169
expect(SDG::Target["17.1"].goal.code).to eq 17
expect(SDG::Phase.count).to eq 3
end
it "does not create additional records on populated databases" do
expect(SDG::Goal.count).to eq 17
expect(SDG::Target.count).to eq 169
expect(SDG::Phase.count).to eq 3
goal_id = SDG::Goal.last.id
target_id = SDG::Target.last.id
phase_id = SDG::Phase.last.id
run_rake_task
expect(SDG::Goal.count).to eq 17
expect(SDG::Target.count).to eq 169
expect(SDG::Phase.count).to eq 3
expect(SDG::Goal.last.id).to eq goal_id
expect(SDG::Target.last.id).to eq target_id
expect(SDG::Phase.last.id).to eq phase_id
end
end
describe "rake db:calculate_tsv" do
before { Rake::Task["db:calculate_tsv"].reenable }
let :run_rake_task do
Rake.application.invoke_task("db:calculate_tsv")
end
it "calculates the tsvector for polls" do
poll = create(:poll)
poll.update_column(:tsv, nil)
expect(poll.reload.tsv).to be nil
run_rake_task
expect(poll.reload.tsv).not_to be nil
end
it "calculates the tsvector for legislation processes" do
process = create(:legislation_process)
process.update_column(:tsv, nil)
expect(process.reload.tsv).to be nil
run_rake_task
expect(process.reload.tsv).not_to be nil
end
end