You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
2.0 KiB
41 lines
2.0 KiB
3 years ago
|
require "rails_helper"
|
||
|
require "rake"
|
||
|
|
||
|
describe "rake core:onboard_organisation", type: :task do
|
||
|
subject(:task) { Rake::Task["core:onboard_organisation"] }
|
||
|
|
||
|
before do
|
||
|
Rake.application.rake_require("tasks/onboard_organisation")
|
||
|
Rake::Task.define_task(:environment)
|
||
|
task.reenable
|
||
|
end
|
||
|
|
||
|
it "triggers 5 data import tasks with the given arguments" do
|
||
|
expect(Rake::Task["core:data_import"]).to receive(:invoke).with("organisation", "test_org/institution/")
|
||
|
expect(Rake::Task["core:data_import"]).to receive(:invoke).with("user", "test_org/user/")
|
||
|
expect(Rake::Task["core:data_import"]).to receive(:invoke).with("data-protection-confirmation", "test_org/dataprotect/")
|
||
|
expect(Rake::Task["core:data_import"]).to receive(:invoke).with("organisation-rent-periods", "test_org/rent-period/")
|
||
|
expect(Rake::Task["core:data_import"]).to receive(:invoke).with("logs", "test_org/logs/")
|
||
|
|
||
|
task.invoke("test_org")
|
||
|
end
|
||
|
|
||
|
context "when there are organisation errors at import" do
|
||
|
|
||
|
before do
|
||
|
FactoryBot.create(:organisation, name:"test_org")
|
||
|
# allow(Rake::Task["core:data_import"])
|
||
|
# .to receive(:invoke).with("organisation","test_org/institution/")
|
||
|
# .and_raise(ActiveRecord::RecordNotUnique)
|
||
|
end
|
||
|
|
||
|
it "will halt execution if the organisation fails to import due to an error being raised" do
|
||
|
expect(Rake::Task["core:data_import"]).to receive(:invoke).with("organisation", "test_org/institution/").and_raise(ActiveRecord::RecordNotUnique)
|
||
|
expect(Rake::Task["core:data_import"]).to_not receive(:invoke).with("user", "test_org/user/")
|
||
|
expect(Rake::Task["core:data_import"]).to_not receive(:invoke).with("data-protection-confirmation", "test_org/dataprotect/")
|
||
|
expect(Rake::Task["core:data_import"]).to_not receive(:invoke).with("organisation-rent-periods", "test_org/rent-period/")
|
||
|
expect(Rake::Task["core:data_import"]).to_not receive(:invoke).with("logs", "test_org/logs/")
|
||
|
expect{ task.invoke("test_org") }.to_not raise_error
|
||
|
end
|
||
|
end
|
||
|
end
|