diff options
| -rw-r--r-- | app/models/netex_import.rb | 9 | ||||
| -rw-r--r-- | spec/models/netex_import_spec.rb | 28 |
2 files changed, 37 insertions, 0 deletions
diff --git a/app/models/netex_import.rb b/app/models/netex_import.rb index 32939a741..b8702a561 100644 --- a/app/models/netex_import.rb +++ b/app/models/netex_import.rb @@ -1,6 +1,7 @@ require 'net/http' class NetexImport < Import after_commit :launch_java_import, on: :create + before_destroy :destroy_non_ready_referential validates_presence_of :parent @@ -16,4 +17,12 @@ class NetexImport < Import end end end + + private + + def destroy_non_ready_referential + unless referential.ready + referential.destroy + end + end end diff --git a/spec/models/netex_import_spec.rb b/spec/models/netex_import_spec.rb new file mode 100644 index 000000000..d52d475cc --- /dev/null +++ b/spec/models/netex_import_spec.rb @@ -0,0 +1,28 @@ +RSpec.describe NetexImport, type: :model do + describe "#destroy" do + it "must destroy its associated Referential if ready: false" do + workbench_import = create(:workbench_import) + referential_ready_false = create(:referential, ready: false) + referential_ready_true = create(:referential, ready: true) + create( + :netex_import, + parent: workbench_import, + referential: referential_ready_false + ) + create( + :netex_import, + parent: workbench_import, + referential: referential_ready_true + ) + + workbench_import.destroy + + expect( + Referential.where(id: referential_ready_false.id).exists? + ).to be false + expect( + Referential.where(id: referential_ready_true.id).exists? + ).to be true + end + end +end |
