|
36 | 36 | end
|
37 | 37 | subject { @node.descendants }
|
38 | 38 | it { should == [] }
|
39 |
| - describe "after adding child" do |
| 39 | + describe 'after adding child' do |
40 | 40 | before do
|
41 | 41 | @child = create(:page)
|
42 | 42 | @node.child_pages << @child
|
43 | 43 | end
|
44 | 44 | it { should include @child }
|
45 | 45 | end
|
46 |
| - describe "after adding grandchildren" do |
| 46 | + describe 'after adding grandchildren' do |
47 | 47 | before do
|
48 | 48 | @child = create(:page)
|
49 | 49 | @grandchild = create(:page)
|
|
60 | 60 | end
|
61 | 61 | subject { @node.cached_descendants }
|
62 | 62 | it { should == [] }
|
63 |
| - describe "after adding child" do |
| 63 | + describe 'after adding child' do |
64 | 64 | before do
|
65 | 65 | @node.cached_descendants
|
66 | 66 | @child = create(:page)
|
67 | 67 | @node.child_pages << @child
|
68 | 68 | end
|
69 | 69 | it { should include @child }
|
70 | 70 | end
|
71 |
| - describe "after adding grandchildren" do |
| 71 | + describe 'after adding grandchildren' do |
72 | 72 | before do
|
73 | 73 | @node.cached_descendants
|
74 | 74 | @child = create(:page)
|
|
78 | 78 | end
|
79 | 79 | it { should include @grandchild }
|
80 | 80 | end
|
81 |
| - describe "after removing grandchildren" do |
| 81 | + describe 'after removing grandchildren' do |
82 | 82 | before do
|
83 | 83 | @child = create(:page)
|
84 | 84 | @grandchild = create(:page)
|
|
89 | 89 | end
|
90 | 90 | it { should_not include @grandchild }
|
91 | 91 | end
|
| 92 | + describe 'after multiple adding and removing' do |
| 93 | + before do |
| 94 | + @p1 = create(:page) |
| 95 | + @p2 = create(:page) |
| 96 | + @p3 = create(:page) |
| 97 | + @p4 = create(:page) |
| 98 | + @p5 = create(:page) |
| 99 | + @p6 = create(:page) |
| 100 | + @p7 = create(:page) |
| 101 | + @node.cached_descendants |
| 102 | + @node.child_pages << @p1 |
| 103 | + @p1.child_pages << @p2 |
| 104 | + @node.cached_descendants |
| 105 | + @p2.child_pages << @p4 |
| 106 | + @node.cached_descendants |
| 107 | + @node.child_pages << @p3 |
| 108 | + @node.cached_descendants |
| 109 | + @node.child_pages << @p5 |
| 110 | + @p5.child_pages << @p6 |
| 111 | + @node.cached_descendants |
| 112 | + @p2.destroy_dag_links |
| 113 | + @node.cached_descendants |
| 114 | + @p5.child_pages << @p7 |
| 115 | + @node.cached_descendants |
| 116 | + @p6.destroy_dag_links |
| 117 | + end |
| 118 | + it { should include @p1 } |
| 119 | + it { should_not include @p2 } |
| 120 | + it { should include @p3 } |
| 121 | + it { should_not include @p4 } |
| 122 | + it { should include @p5 } |
| 123 | + it { should_not include @p6 } |
| 124 | + it { should include @p7 } |
| 125 | + end |
92 | 126 | end
|
93 | 127 | end
|
94 | 128 |
|
0 commit comments