[refs #581] dont destroy child projects

This commit is contained in:
Alexander Machehin 2012-07-24 22:02:02 +06:00
parent 1c18ee48b2
commit a0a4c8b100
2 changed files with 39 additions and 4 deletions

View File

@ -49,7 +49,7 @@ class Project < ActiveRecord::Base
after_commit(:on => :create) {|p| p.import_attached_srpm if p.srpm?}# later with resque # should be after create_git_repo
# after_rollback lambda { destroy_git_repo rescue true if new_record? }
has_ancestry
has_ancestry :orphan_strategy => :rootify #:adopt not available yet
has_attached_file :srpm

View File

@ -1,6 +1,41 @@
# -*- encoding : utf-8 -*-
require 'spec_helper'
#describe Project do
# pending "add some examples to (or delete) #{__FILE__}"
#end
describe Project do
before(:each) do
stub_symlink_methods
@root_project = FactoryGirl.create(:project)
@child_project = @root_project.fork(FactoryGirl.create(:user))
@child_child_project = @child_project.fork(FactoryGirl.create(:user))
end
context 'for destroy root' do
before(:each) do
@root_project.destroy
end
it "should not be delete child" do
Project.where(:id => @child_project).count.should == 1
end
it "should not be delete child of the child" do
Project.where(:id => @child_child_project).count.should == 1
end
end
# uncommit when will be available :orphan_strategy => :adopt
#context 'for destroy middle node' do
# before(:each) do
# @child_project.destroy
# end
# it "should set root project as a parent for orphan child" do
# Project.find(@child_child_project).ancestry == @root_project
# end
# it "should not be delete child of the child" do
# Project.where(:id => @child_child_project).count.should == 1
# end
#end
end