|
224 | 224 | end |
225 | 225 | end |
226 | 226 |
|
| 227 | + context "deleting entry" do |
| 228 | + before :each do |
| 229 | + course_with_student(:active_all => true) |
| 230 | + @author = @user |
| 231 | + @reader = user() |
| 232 | + @course.enroll_student(@author) |
| 233 | + @course.enroll_student(@reader) |
| 234 | + |
| 235 | + @topic = @course.discussion_topics.create!(:title => "title", :message => "message") |
| 236 | + |
| 237 | + # Create 4 entries, first 2 are 'read' by reader. |
| 238 | + @entry_1 = @topic.discussion_entries.create!(:message => "entry 1", :user => @author) |
| 239 | + @entry_1.change_read_state('read', @reader) |
| 240 | + @entry_2 = @topic.discussion_entries.create!(:message => "entry 2", :user => @author) |
| 241 | + @entry_2.change_read_state('read', @reader) |
| 242 | + @entry_3 = @topic.discussion_entries.create!(:message => "entry 3", :user => @author) |
| 243 | + @entry_4 = @topic.discussion_entries.create!(:message => "entry 4", :user => @author) |
| 244 | + end |
| 245 | + |
| 246 | + describe "#destroy" do |
| 247 | + it "should call decrement_unread_counts_for_this_entry" do |
| 248 | + @entry_4.expects(:decrement_unread_counts_for_this_entry) |
| 249 | + @entry_4.destroy |
| 250 | + end |
| 251 | + end |
| 252 | + |
| 253 | + it "should decrement unread topic counts" do |
| 254 | + @topic.unread_count(@reader).should == 2 |
| 255 | + |
| 256 | + # delete one read and one unread entry and check again |
| 257 | + @entry_1.destroy |
| 258 | + @entry_4.destroy |
| 259 | + @topic.unread_count(@reader).should == 1 |
| 260 | + # delete remaining unread |
| 261 | + @entry_3.destroy |
| 262 | + @topic.unread_count(@reader).should == 0 |
| 263 | + # delete final 'read' entry |
| 264 | + @entry_2.destroy |
| 265 | + @topic.unread_count(@reader).should == 0 |
| 266 | + end |
| 267 | + end |
| 268 | + |
227 | 269 | it "should touch all parent discussion_topics through root_topic_id, on update" do |
228 | 270 | course_with_student(:active_all => true) |
229 | 271 | @topic = @course.discussion_topics.create!(:title => "title", :message => "message") |
|
0 commit comments