Add associate community rake task.

This commit is contained in:
taitus
2017-09-05 11:16:09 +02:00
parent d8e9aad331
commit 56eb30cc87
2 changed files with 70 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
namespace :communities do
desc "Associate community to proposals and budget investments"
task associate_community: :environment do
Proposal.all.each do |proposal|
if proposal.community.blank?
community = Community.create
proposal.update(community_id: community.id)
end
end
Budget::Investment.all.each do |investment|
if investment.community.blank?
community = Community.create
investment.update(community_id: community.id)
end
end
end
end

View File

@@ -0,0 +1,49 @@
require 'rails_helper'
require 'rake'
describe 'Communities Rake' do
describe '#associate_community' do
before do
Rake.application.rake_require "tasks/communities"
Rake::Task.define_task(:environment)
end
let :run_rake_task do
Rake::Task['communities:associate_community'].reenable
Rake.application.invoke_task 'communities:associate_community'
end
context 'Associate community to Proposal' do
it 'When proposal has not community_id' do
proposal = create(:proposal)
proposal.update(community_id: nil)
expect(proposal.community).to be_nil
run_rake_task
proposal.reload
expect(proposal.community).to be_present
end
end
context 'Associate community to Budget Investment' do
it 'When budget investment has not community_id' do
investment = create(:budget_investment)
investment.update(community_id: nil)
expect(investment.community).to be_nil
run_rake_task
investment.reload
expect(investment.community).to be_present
end
end
end
end