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 | 
