|
2 | 2 |
|
3 | 3 | describe DeletedAt::Core do |
4 | 4 |
|
| 5 | + context 'models with dependent: :destroy' do |
| 6 | + it 'should also destroy dependents' do |
| 7 | + user = User.create(name: 'bob') |
| 8 | + |
| 9 | + 4.times do |
| 10 | + Post.create(user: user) |
| 11 | + end |
| 12 | + |
| 13 | + expect{user.destroy}.to_not raise_exception |
| 14 | + end |
| 15 | + end |
| 16 | + |
5 | 17 | context "models using deleted_at" do |
6 | 18 |
|
7 | 19 | it "#destroy should set deleted_at" do |
|
28 | 40 | expect(User::Deleted.count).to eq(1) |
29 | 41 | end |
30 | 42 |
|
31 | | - context 'associations' do |
32 | | - |
33 | | - it 'should scope properly' do |
34 | | - |
35 | | - user = User.create(name: 'bob') |
36 | | - (1..4).each do |
37 | | - Post.create(user: user) |
38 | | - end |
39 | | - |
40 | | - post = user.posts.first.delete |
41 | | - |
42 | | - expect(user.posts.count).to eq(3) |
| 43 | + it "#destroy twice should set deleted_at and not fail" do |
| 44 | + User.create(name: 'bob') |
| 45 | + User.create(name: 'john') |
| 46 | + User.create(name: 'sally') |
43 | 47 |
|
44 | | - end |
| 48 | + u = User.first |
| 49 | + u.destroy! |
| 50 | + u.destroy! |
45 | 51 |
|
| 52 | + expect(User.count).to eq(2) |
| 53 | + expect(User::All.count).to eq(3) |
| 54 | + expect(User::Deleted.count).to eq(1) |
46 | 55 | end |
47 | 56 |
|
48 | 57 | context '#destroy_all' do |
|
65 | 74 |
|
66 | 75 | User.where(name: 'bob').destroy_all |
67 | 76 |
|
| 77 | + |
68 | 78 | expect(User.count).to eq(2) |
69 | 79 | expect(User::All.count).to eq(3) |
70 | 80 | expect(User::Deleted.count).to eq(1) |
|
73 | 83 |
|
74 | 84 | context '#delete_all' do |
75 | 85 | it "should set deleted_at" do |
76 | | - Animals::Dog.create(name: 'bob') |
77 | | - Animals::Dog.create(name: 'john') |
78 | | - Animals::Dog.create(name: 'sally') |
| 86 | + User.create(name: 'bob') |
| 87 | + User.create(name: 'john') |
| 88 | + User.create(name: 'sally') |
79 | 89 |
|
80 | 90 | # conditions should not matter |
81 | | - Animals::Dog.all.delete_all(name: 'bob') |
| 91 | + User.all.delete_all(name: 'bob') |
82 | 92 |
|
83 | | - expect(Animals::Dog.count).to eq(0) |
84 | | - expect(Animals::Dog::All.count).to eq(3) |
85 | | - expect(Animals::Dog::Deleted.count).to eq(3) |
| 93 | + expect(User.count).to eq(0) |
| 94 | + expect(User::All.count).to eq(3) |
| 95 | + expect(User::Deleted.count).to eq(3) |
86 | 96 | end |
87 | 97 |
|
88 | 98 | it "with conditions should set deleted_at" do |
89 | | - Animals::Dog.create(name: 'bob') |
90 | | - Animals::Dog.create(name: 'john') |
91 | | - Animals::Dog.create(name: 'sally') |
| 99 | + User.create(name: 'bob') |
| 100 | + User.create(name: 'john') |
| 101 | + User.create(name: 'sally') |
92 | 102 |
|
93 | | - Animals::Dog.where(name: 'bob').delete_all |
| 103 | + User.where(name: 'bob').delete_all |
94 | 104 |
|
95 | | - expect(Animals::Dog.count).to eq(2) |
96 | | - expect(Animals::Dog::All.count).to eq(3) |
97 | | - expect(Animals::Dog::Deleted.count).to eq(1) |
| 105 | + expect(User.count).to eq(2) |
| 106 | + expect(User::All.count).to eq(3) |
| 107 | + expect(User::Deleted.count).to eq(1) |
98 | 108 | end |
99 | 109 | end |
100 | 110 |
|
|
0 commit comments