aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/services/parent_import_notifier.rb15
-rw-r--r--lib/tasks/imports.rake2
-rw-r--r--spec/services/parent_import_notifier_spec.rb90
3 files changed, 1 insertions, 106 deletions
diff --git a/app/services/parent_import_notifier.rb b/app/services/parent_import_notifier.rb
deleted file mode 100644
index 47e6755e4..000000000
--- a/app/services/parent_import_notifier.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-class ParentImportNotifier
- def self.notify_when_finished(imports = nil)
- imports ||= imports_pending_notification
- imports.each(&:notify_parent)
- end
-
- def self.imports_pending_notification
- Import
- .where(
- notified_parent_at: nil,
- status: Import.finished_statuses
- )
- .where.not(parent: nil)
- end
-end
diff --git a/lib/tasks/imports.rake b/lib/tasks/imports.rake
index 6bc84acc8..55e017e7f 100644
--- a/lib/tasks/imports.rake
+++ b/lib/tasks/imports.rake
@@ -1,6 +1,6 @@
namespace :import do
desc "Notify parent imports when children finish"
task notify_parent: :environment do
- ParentImportNotifier.notify_when_finished
+ ParentNotifier.new(Import).notify_when_finished
end
end
diff --git a/spec/services/parent_import_notifier_spec.rb b/spec/services/parent_import_notifier_spec.rb
deleted file mode 100644
index 3ab505f88..000000000
--- a/spec/services/parent_import_notifier_spec.rb
+++ /dev/null
@@ -1,90 +0,0 @@
-RSpec.describe ParentImportNotifier do
- let(:workbench_import) { create(:workbench_import) }
-
- describe ".notify_when_finished" do
- it "calls #notify_parent on finished imports" do
- workbench_import = build_stubbed(:workbench_import)
-
- finished_statuses = [:failed, :successful, :aborted, :canceled]
- netex_imports = []
-
- finished_statuses.each do |status|
- netex_imports << build_stubbed(
- :netex_import,
- parent: workbench_import,
- status: status
- )
- end
-
- netex_imports.each do |netex_import|
- expect(netex_import).to receive(:notify_parent)
- end
-
- ParentImportNotifier.notify_when_finished(netex_imports)
- end
-
- it "doesn't call #notify_parent if its `notified_parent_at` is set" do
- netex_import = create(
- :netex_import,
- parent: workbench_import,
- status: :failed,
- notified_parent_at: DateTime.now
- )
-
- expect(netex_import).not_to receive(:notify_parent)
-
- ParentImportNotifier.notify_when_finished
- end
- end
-
- describe ".imports_pending_notification" do
- it "includes imports with a parent and `notified_parent_at` unset" do
- netex_import = create(
- :netex_import,
- parent: workbench_import,
- status: :successful,
- notified_parent_at: nil
- )
-
- expect(
- ParentImportNotifier.imports_pending_notification
- ).to eq([netex_import])
- end
-
- it "doesn't include imports without a parent" do
- create(:import, parent: nil)
-
- expect(
- ParentImportNotifier.imports_pending_notification
- ).to be_empty
- end
-
- it "doesn't include imports that aren't finished" do
- [:new, :pending, :running].each do |status|
- create(
- :netex_import,
- parent: workbench_import,
- status: status,
- notified_parent_at: nil
- )
- end
-
- expect(
- ParentImportNotifier.imports_pending_notification
- ).to be_empty
- end
-
- it "doesn't include imports that have already notified their parent" do
- create(
- :netex_import,
- parent: workbench_import,
- status: :successful,
- notified_parent_at: DateTime.now
- )
-
- expect(
- ParentImportNotifier.imports_pending_notification
- ).to be_empty
- end
- end
-end