mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-10 03:30:22 +00:00
Add task to connect all enterprises
Example usage: rake ofn:enterprises:activate_connected_app_type[affiliate_sales_data]
This commit is contained in:
@@ -12,6 +12,18 @@ namespace :ofn do
|
||||
enterprise.destroy
|
||||
end
|
||||
|
||||
namespace :enterprises do
|
||||
desc "Activate connected app type for ALL enterprises"
|
||||
task :activate_connected_app_type, [:type] => :environment do |_task, args|
|
||||
Enterprise.find_each do |enterprise|
|
||||
next if enterprise.connected_apps.public_send(args.type.underscore).exists?
|
||||
|
||||
"ConnectedApps::#{args.type.camelize}".constantize.new(enterprise:).connect({})
|
||||
puts "Enterprise #{enterprise.id} connected."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
namespace :dev do
|
||||
desc 'export enterprises to CSV'
|
||||
task export_enterprises: :environment do
|
||||
|
||||
@@ -20,4 +20,26 @@ RSpec.describe 'enterprises.rake' do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe ':enterprises' do
|
||||
describe ':activate_connected_app_type' do
|
||||
it 'updates only disconnected enterprises' do
|
||||
# enterprise with affiliate sales data
|
||||
enterprise_asd = create(:enterprise)
|
||||
enterprise_asd.connected_apps.create type: 'ConnectedApps::AffiliateSalesData'
|
||||
# enterprise with different type
|
||||
enterprise_diff = create(:enterprise)
|
||||
enterprise_diff.connected_apps.create
|
||||
|
||||
expect {
|
||||
Rake.application.invoke_task(
|
||||
"ofn:enterprises:activate_connected_app_type[affiliate_sales_data]"
|
||||
)
|
||||
}.to change { ConnectedApps::AffiliateSalesData.count }.by(1)
|
||||
|
||||
expect(enterprise_asd.connected_apps.affiliate_sales_data.count).to eq 1
|
||||
expect(enterprise_diff.connected_apps.affiliate_sales_data.count).to eq 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user