acts_as_paranoid 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +70 -0
- data/CONTRIBUTING.md +58 -0
- data/README.md +5 -5
- data/lib/acts_as_paranoid/core.rb +80 -55
- data/lib/acts_as_paranoid/relation.rb +1 -1
- data/lib/acts_as_paranoid/version.rb +1 -1
- data/lib/acts_as_paranoid.rb +4 -4
- metadata +71 -73
- data/test/test_associations.rb +0 -358
- data/test/test_core.rb +0 -633
- data/test/test_default_scopes.rb +0 -53
- data/test/test_helper.rb +0 -541
- data/test/test_inheritance.rb +0 -16
- data/test/test_relations.rb +0 -125
- data/test/test_validations.rb +0 -45
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_paranoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zachary Scott
|
8
8
|
- Goncalo Silva
|
9
9
|
- Rick Olson
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-12-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '5.2'
|
22
22
|
- - "<"
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version: '7.
|
24
|
+
version: '7.1'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
version: '5.2'
|
32
32
|
- - "<"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '7.
|
34
|
+
version: '7.1'
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: activesupport
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
@@ -41,7 +41,7 @@ dependencies:
|
|
41
41
|
version: '5.2'
|
42
42
|
- - "<"
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: '7.
|
44
|
+
version: '7.1'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
47
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -51,123 +51,133 @@ dependencies:
|
|
51
51
|
version: '5.2'
|
52
52
|
- - "<"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '7.
|
54
|
+
version: '7.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.5'
|
62
|
-
- - "<"
|
59
|
+
- - "~>"
|
63
60
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
61
|
+
version: '5.14'
|
65
62
|
type: :development
|
66
63
|
prerelease: false
|
67
64
|
version_requirements: !ruby/object:Gem::Requirement
|
68
65
|
requirements:
|
69
|
-
- - "
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: '1.5'
|
72
|
-
- - "<"
|
66
|
+
- - "~>"
|
73
67
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
68
|
+
version: '5.14'
|
75
69
|
- !ruby/object:Gem::Dependency
|
76
|
-
name: minitest
|
70
|
+
name: minitest-focus
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
|
-
- - "
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '4.0'
|
82
|
-
- - "<="
|
73
|
+
- - "~>"
|
83
74
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
75
|
+
version: 1.3.0
|
85
76
|
type: :development
|
86
77
|
prerelease: false
|
87
78
|
version_requirements: !ruby/object:Gem::Requirement
|
88
79
|
requirements:
|
89
|
-
- - "
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: '4.0'
|
92
|
-
- - "<="
|
80
|
+
- - "~>"
|
93
81
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
82
|
+
version: 1.3.0
|
95
83
|
- !ruby/object:Gem::Dependency
|
96
84
|
name: pry
|
97
85
|
requirement: !ruby/object:Gem::Requirement
|
98
86
|
requirements:
|
99
|
-
- - "
|
87
|
+
- - "~>"
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
89
|
+
version: 0.14.1
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
93
|
requirements:
|
106
|
-
- - "
|
94
|
+
- - "~>"
|
107
95
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
96
|
+
version: 0.14.1
|
109
97
|
- !ruby/object:Gem::Dependency
|
110
98
|
name: rake
|
111
99
|
requirement: !ruby/object:Gem::Requirement
|
112
100
|
requirements:
|
113
|
-
- - "
|
101
|
+
- - "~>"
|
114
102
|
- !ruby/object:Gem::Version
|
115
|
-
version: '0'
|
103
|
+
version: '13.0'
|
116
104
|
type: :development
|
117
105
|
prerelease: false
|
118
106
|
version_requirements: !ruby/object:Gem::Requirement
|
119
107
|
requirements:
|
120
|
-
- - "
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '13.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake-manifest
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
121
116
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
117
|
+
version: 0.2.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.2.0
|
123
125
|
- !ruby/object:Gem::Dependency
|
124
126
|
name: rdoc
|
125
127
|
requirement: !ruby/object:Gem::Requirement
|
126
128
|
requirements:
|
127
|
-
- - "
|
129
|
+
- - "~>"
|
128
130
|
- !ruby/object:Gem::Version
|
129
|
-
version: '
|
131
|
+
version: '6.3'
|
130
132
|
type: :development
|
131
133
|
prerelease: false
|
132
134
|
version_requirements: !ruby/object:Gem::Requirement
|
133
135
|
requirements:
|
134
|
-
- - "
|
136
|
+
- - "~>"
|
135
137
|
- !ruby/object:Gem::Version
|
136
|
-
version: '
|
138
|
+
version: '6.3'
|
137
139
|
- !ruby/object:Gem::Dependency
|
138
140
|
name: rubocop
|
139
141
|
requirement: !ruby/object:Gem::Requirement
|
140
142
|
requirements:
|
141
143
|
- - "~>"
|
142
144
|
- !ruby/object:Gem::Version
|
143
|
-
version:
|
145
|
+
version: 1.23.0
|
144
146
|
type: :development
|
145
147
|
prerelease: false
|
146
148
|
version_requirements: !ruby/object:Gem::Requirement
|
147
149
|
requirements:
|
148
150
|
- - "~>"
|
149
151
|
- !ruby/object:Gem::Version
|
150
|
-
version:
|
152
|
+
version: 1.23.0
|
151
153
|
- !ruby/object:Gem::Dependency
|
152
|
-
name:
|
154
|
+
name: rubocop-minitest
|
153
155
|
requirement: !ruby/object:Gem::Requirement
|
154
156
|
requirements:
|
155
|
-
- - "
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: 0.18.1
|
158
|
-
- - "<"
|
157
|
+
- - "~>"
|
159
158
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0.
|
159
|
+
version: 0.17.0
|
161
160
|
type: :development
|
162
161
|
prerelease: false
|
163
162
|
version_requirements: !ruby/object:Gem::Requirement
|
164
163
|
requirements:
|
165
|
-
- - "
|
164
|
+
- - "~>"
|
166
165
|
- !ruby/object:Gem::Version
|
167
|
-
version: 0.
|
168
|
-
|
166
|
+
version: 0.17.0
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: simplecov
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.21.2
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
169
179
|
- !ruby/object:Gem::Version
|
170
|
-
version: 0.
|
180
|
+
version: 0.21.2
|
171
181
|
description: Check the home page for more in-depth information.
|
172
182
|
email:
|
173
183
|
- e@zzak.io
|
@@ -176,6 +186,7 @@ extensions: []
|
|
176
186
|
extra_rdoc_files: []
|
177
187
|
files:
|
178
188
|
- CHANGELOG.md
|
189
|
+
- CONTRIBUTING.md
|
179
190
|
- LICENSE
|
180
191
|
- README.md
|
181
192
|
- lib/acts_as_paranoid.rb
|
@@ -184,18 +195,12 @@ files:
|
|
184
195
|
- lib/acts_as_paranoid/relation.rb
|
185
196
|
- lib/acts_as_paranoid/validations.rb
|
186
197
|
- lib/acts_as_paranoid/version.rb
|
187
|
-
- test/test_associations.rb
|
188
|
-
- test/test_core.rb
|
189
|
-
- test/test_default_scopes.rb
|
190
|
-
- test/test_helper.rb
|
191
|
-
- test/test_inheritance.rb
|
192
|
-
- test/test_relations.rb
|
193
|
-
- test/test_validations.rb
|
194
198
|
homepage: https://github.com/ActsAsParanoid/acts_as_paranoid
|
195
199
|
licenses:
|
196
200
|
- MIT
|
197
|
-
metadata:
|
198
|
-
|
201
|
+
metadata:
|
202
|
+
rubygems_mfa_required: 'true'
|
203
|
+
post_install_message:
|
199
204
|
rdoc_options: []
|
200
205
|
require_paths:
|
201
206
|
- lib
|
@@ -203,23 +208,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
203
208
|
requirements:
|
204
209
|
- - ">="
|
205
210
|
- !ruby/object:Gem::Version
|
206
|
-
version: 2.
|
211
|
+
version: 2.6.0
|
207
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
213
|
requirements:
|
209
214
|
- - ">="
|
210
215
|
- !ruby/object:Gem::Version
|
211
216
|
version: '0'
|
212
217
|
requirements: []
|
213
|
-
rubygems_version: 3.
|
214
|
-
signing_key:
|
218
|
+
rubygems_version: 3.2.33
|
219
|
+
signing_key:
|
215
220
|
specification_version: 4
|
216
221
|
summary: Active Record plugin which allows you to hide and restore records without
|
217
222
|
actually deleting them.
|
218
|
-
test_files:
|
219
|
-
- test/test_relations.rb
|
220
|
-
- test/test_inheritance.rb
|
221
|
-
- test/test_core.rb
|
222
|
-
- test/test_default_scopes.rb
|
223
|
-
- test/test_helper.rb
|
224
|
-
- test/test_validations.rb
|
225
|
-
- test/test_associations.rb
|
223
|
+
test_files: []
|
data/test/test_associations.rb
DELETED
@@ -1,358 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
class AssociationsTest < ParanoidBaseTest
|
6
|
-
def test_removal_with_destroy_associations
|
7
|
-
paranoid_company = ParanoidDestroyCompany.create! name: "ParanoidDestroyCompany #1"
|
8
|
-
paranoid_company.paranoid_products.create! name: "ParanoidProduct #1"
|
9
|
-
|
10
|
-
assert_equal 1, ParanoidDestroyCompany.count
|
11
|
-
assert_equal 1, ParanoidProduct.count
|
12
|
-
|
13
|
-
ParanoidDestroyCompany.first.destroy
|
14
|
-
assert_equal 0, ParanoidDestroyCompany.count
|
15
|
-
assert_equal 0, ParanoidProduct.count
|
16
|
-
assert_equal 1, ParanoidDestroyCompany.with_deleted.count
|
17
|
-
assert_equal 1, ParanoidProduct.with_deleted.count
|
18
|
-
|
19
|
-
ParanoidDestroyCompany.with_deleted.first.destroy
|
20
|
-
assert_equal 0, ParanoidDestroyCompany.count
|
21
|
-
assert_equal 0, ParanoidProduct.count
|
22
|
-
assert_equal 0, ParanoidDestroyCompany.with_deleted.count
|
23
|
-
assert_equal 0, ParanoidProduct.with_deleted.count
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_removal_with_delete_all_associations
|
27
|
-
paranoid_company = ParanoidDeleteCompany.create! name: "ParanoidDestroyCompany #1"
|
28
|
-
paranoid_company.paranoid_products.create! name: "ParanoidProduct #2"
|
29
|
-
|
30
|
-
assert_equal 1, ParanoidDeleteCompany.count
|
31
|
-
assert_equal 1, ParanoidProduct.count
|
32
|
-
|
33
|
-
ParanoidDeleteCompany.first.destroy
|
34
|
-
assert_equal 0, ParanoidDeleteCompany.count
|
35
|
-
assert_equal 0, ParanoidProduct.count
|
36
|
-
assert_equal 1, ParanoidDeleteCompany.with_deleted.count
|
37
|
-
assert_equal 1, ParanoidProduct.with_deleted.count
|
38
|
-
|
39
|
-
ParanoidDeleteCompany.with_deleted.first.destroy
|
40
|
-
assert_equal 0, ParanoidDeleteCompany.count
|
41
|
-
assert_equal 0, ParanoidProduct.count
|
42
|
-
assert_equal 0, ParanoidDeleteCompany.with_deleted.count
|
43
|
-
assert_equal 0, ParanoidProduct.with_deleted.count
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_belongs_to_with_scope_option
|
47
|
-
paranoid_has_many_dependant = ParanoidHasManyDependant.new
|
48
|
-
|
49
|
-
expected_includes_values = ParanoidTime.includes(:not_paranoid).includes_values
|
50
|
-
includes_values = paranoid_has_many_dependant
|
51
|
-
.association(:paranoid_time_with_scope).scope.includes_values
|
52
|
-
|
53
|
-
assert_equal expected_includes_values, includes_values
|
54
|
-
|
55
|
-
paranoid_time = ParanoidTime.create(name: "not-hello")
|
56
|
-
paranoid_has_many_dependant.paranoid_time = paranoid_time
|
57
|
-
paranoid_has_many_dependant.save!
|
58
|
-
|
59
|
-
assert_nil paranoid_has_many_dependant.paranoid_time_with_scope
|
60
|
-
|
61
|
-
paranoid_time.update(name: "hello")
|
62
|
-
|
63
|
-
paranoid_has_many_dependant.reload
|
64
|
-
|
65
|
-
assert_equal paranoid_time, paranoid_has_many_dependant.paranoid_time_with_scope
|
66
|
-
|
67
|
-
paranoid_time.destroy
|
68
|
-
|
69
|
-
paranoid_has_many_dependant.reload
|
70
|
-
|
71
|
-
assert_nil paranoid_has_many_dependant.paranoid_time_with_scope
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_belongs_to_with_scope_and_deleted_option
|
75
|
-
paranoid_has_many_dependant = ParanoidHasManyDependant.new
|
76
|
-
includes_values = ParanoidTime.includes(:not_paranoid).includes_values
|
77
|
-
|
78
|
-
assert_equal includes_values, paranoid_has_many_dependant
|
79
|
-
.association(:paranoid_time_with_scope_with_deleted).scope.includes_values
|
80
|
-
|
81
|
-
paranoid_time = ParanoidTime.create(name: "not-hello")
|
82
|
-
paranoid_has_many_dependant.paranoid_time = paranoid_time
|
83
|
-
paranoid_has_many_dependant.save!
|
84
|
-
|
85
|
-
assert_nil paranoid_has_many_dependant.paranoid_time_with_scope_with_deleted
|
86
|
-
|
87
|
-
paranoid_time.update(name: "hello")
|
88
|
-
paranoid_has_many_dependant.reload
|
89
|
-
|
90
|
-
assert_equal paranoid_time, paranoid_has_many_dependant
|
91
|
-
.paranoid_time_with_scope_with_deleted
|
92
|
-
|
93
|
-
paranoid_time.destroy
|
94
|
-
paranoid_has_many_dependant.reload
|
95
|
-
|
96
|
-
assert_equal paranoid_time, paranoid_has_many_dependant
|
97
|
-
.paranoid_time_with_scope_with_deleted
|
98
|
-
end
|
99
|
-
|
100
|
-
def test_belongs_to_with_deleted
|
101
|
-
paranoid_time = ParanoidTime.first
|
102
|
-
paranoid_has_many_dependant = paranoid_time.paranoid_has_many_dependants
|
103
|
-
.create(name: "dependant!")
|
104
|
-
|
105
|
-
assert_equal paranoid_time, paranoid_has_many_dependant.paranoid_time
|
106
|
-
assert_equal paranoid_time, paranoid_has_many_dependant.paranoid_time_with_deleted
|
107
|
-
|
108
|
-
paranoid_time.destroy
|
109
|
-
paranoid_has_many_dependant.reload
|
110
|
-
|
111
|
-
assert_nil paranoid_has_many_dependant.paranoid_time
|
112
|
-
assert_equal paranoid_time, paranoid_has_many_dependant.paranoid_time_with_deleted
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_belongs_to_polymorphic_with_deleted
|
116
|
-
paranoid_time = ParanoidTime.first
|
117
|
-
paranoid_has_many_dependant = ParanoidHasManyDependant
|
118
|
-
.create!(name: "dependant!", paranoid_time_polymorphic_with_deleted: paranoid_time)
|
119
|
-
|
120
|
-
assert_equal paranoid_time, paranoid_has_many_dependant.paranoid_time
|
121
|
-
assert_equal paranoid_time, paranoid_has_many_dependant
|
122
|
-
.paranoid_time_polymorphic_with_deleted
|
123
|
-
|
124
|
-
paranoid_time.destroy
|
125
|
-
|
126
|
-
assert_nil paranoid_has_many_dependant.reload.paranoid_time
|
127
|
-
assert_equal paranoid_time, paranoid_has_many_dependant
|
128
|
-
.reload.paranoid_time_polymorphic_with_deleted
|
129
|
-
end
|
130
|
-
|
131
|
-
def test_belongs_to_nil_polymorphic_with_deleted
|
132
|
-
paranoid_time = ParanoidTime.first
|
133
|
-
paranoid_has_many_dependant =
|
134
|
-
ParanoidHasManyDependant.create!(name: "dependant!",
|
135
|
-
paranoid_time_polymorphic_with_deleted: nil)
|
136
|
-
|
137
|
-
assert_nil paranoid_has_many_dependant.paranoid_time
|
138
|
-
assert_nil paranoid_has_many_dependant.paranoid_time_polymorphic_with_deleted
|
139
|
-
|
140
|
-
paranoid_time.destroy
|
141
|
-
|
142
|
-
assert_nil paranoid_has_many_dependant.reload.paranoid_time
|
143
|
-
assert_nil paranoid_has_many_dependant.reload.paranoid_time_polymorphic_with_deleted
|
144
|
-
end
|
145
|
-
|
146
|
-
def test_belongs_to_options
|
147
|
-
paranoid_time = ParanoidHasManyDependant.reflections
|
148
|
-
.with_indifferent_access[:paranoid_time]
|
149
|
-
assert_equal :belongs_to, paranoid_time.macro
|
150
|
-
assert_nil paranoid_time.options[:with_deleted]
|
151
|
-
end
|
152
|
-
|
153
|
-
def test_belongs_to_with_deleted_options
|
154
|
-
paranoid_time_with_deleted =
|
155
|
-
ParanoidHasManyDependant.reflections
|
156
|
-
.with_indifferent_access[:paranoid_time_with_deleted]
|
157
|
-
assert_equal :belongs_to, paranoid_time_with_deleted.macro
|
158
|
-
assert paranoid_time_with_deleted.options[:with_deleted]
|
159
|
-
end
|
160
|
-
|
161
|
-
def test_belongs_to_polymorphic_with_deleted_options
|
162
|
-
paranoid_time_polymorphic_with_deleted = ParanoidHasManyDependant.reflections
|
163
|
-
.with_indifferent_access[:paranoid_time_polymorphic_with_deleted]
|
164
|
-
assert_equal :belongs_to, paranoid_time_polymorphic_with_deleted.macro
|
165
|
-
assert paranoid_time_polymorphic_with_deleted.options[:with_deleted]
|
166
|
-
end
|
167
|
-
|
168
|
-
def test_only_find_associated_records_when_finding_with_paranoid_deleted
|
169
|
-
parent = ParanoidBelongsDependant.create
|
170
|
-
child = ParanoidHasManyDependant.create
|
171
|
-
parent.paranoid_has_many_dependants << child
|
172
|
-
|
173
|
-
unrelated_parent = ParanoidBelongsDependant.create
|
174
|
-
unrelated_child = ParanoidHasManyDependant.create
|
175
|
-
unrelated_parent.paranoid_has_many_dependants << unrelated_child
|
176
|
-
|
177
|
-
child.destroy
|
178
|
-
assert_paranoid_deletion(child)
|
179
|
-
|
180
|
-
parent.reload
|
181
|
-
|
182
|
-
assert_equal [], parent.paranoid_has_many_dependants.to_a
|
183
|
-
assert_equal [child], parent.paranoid_has_many_dependants.with_deleted.to_a
|
184
|
-
end
|
185
|
-
|
186
|
-
def test_join_with_model_with_deleted
|
187
|
-
obj = ParanoidHasManyDependant.create(paranoid_time: ParanoidTime.create)
|
188
|
-
assert_not_nil obj.paranoid_time
|
189
|
-
assert_not_nil obj.paranoid_time_with_deleted
|
190
|
-
|
191
|
-
obj.paranoid_time.destroy
|
192
|
-
obj.reload
|
193
|
-
|
194
|
-
assert_nil obj.paranoid_time
|
195
|
-
assert_not_nil obj.paranoid_time_with_deleted
|
196
|
-
|
197
|
-
# Note that obj is destroyed because of dependent: :destroy in ParanoidTime
|
198
|
-
assert obj.destroyed?
|
199
|
-
|
200
|
-
assert_empty ParanoidHasManyDependant.with_deleted.joins(:paranoid_time)
|
201
|
-
assert_equal [obj],
|
202
|
-
ParanoidHasManyDependant.with_deleted.joins(:paranoid_time_with_deleted)
|
203
|
-
end
|
204
|
-
|
205
|
-
def test_includes_with_deleted
|
206
|
-
paranoid_time = ParanoidTime.first
|
207
|
-
paranoid_time.paranoid_has_many_dependants.create(name: "dependant!")
|
208
|
-
|
209
|
-
paranoid_time.destroy
|
210
|
-
|
211
|
-
ParanoidHasManyDependant.with_deleted
|
212
|
-
.includes(:paranoid_time_with_deleted).each do |hasmany|
|
213
|
-
assert_not_nil hasmany.paranoid_time_with_deleted
|
214
|
-
end
|
215
|
-
end
|
216
|
-
|
217
|
-
def test_includes_with_deleted_with_polymorphic_parent
|
218
|
-
not_paranoid_parent = NotParanoidHasManyAsParent.create(name: "not paranoid parent")
|
219
|
-
paranoid_parent = ParanoidHasManyAsParent.create(name: "paranoid parent")
|
220
|
-
ParanoidBelongsToPolymorphic.create(name: "belongs_to", parent: not_paranoid_parent)
|
221
|
-
ParanoidBelongsToPolymorphic.create(name: "belongs_to", parent: paranoid_parent)
|
222
|
-
|
223
|
-
paranoid_parent.destroy
|
224
|
-
|
225
|
-
ParanoidBelongsToPolymorphic.with_deleted.includes(:parent).each do |hasmany|
|
226
|
-
assert_not_nil hasmany.parent
|
227
|
-
end
|
228
|
-
end
|
229
|
-
|
230
|
-
def test_cannot_find_a_paranoid_deleted_many_many_association
|
231
|
-
left = ParanoidManyManyParentLeft.create
|
232
|
-
right = ParanoidManyManyParentRight.create
|
233
|
-
left.paranoid_many_many_parent_rights << right
|
234
|
-
|
235
|
-
left.paranoid_many_many_parent_rights.delete(right)
|
236
|
-
|
237
|
-
left.reload
|
238
|
-
|
239
|
-
assert_equal [], left.paranoid_many_many_children, "Linking objects not deleted"
|
240
|
-
assert_equal [], left.paranoid_many_many_parent_rights,
|
241
|
-
"Associated objects not unlinked"
|
242
|
-
assert_equal right, ParanoidManyManyParentRight.find(right.id),
|
243
|
-
"Associated object deleted"
|
244
|
-
end
|
245
|
-
|
246
|
-
def test_cannot_find_a_paranoid_destroyed_many_many_association
|
247
|
-
left = ParanoidManyManyParentLeft.create
|
248
|
-
right = ParanoidManyManyParentRight.create
|
249
|
-
left.paranoid_many_many_parent_rights << right
|
250
|
-
|
251
|
-
left.paranoid_many_many_parent_rights.destroy(right)
|
252
|
-
|
253
|
-
left.reload
|
254
|
-
|
255
|
-
assert_equal [], left.paranoid_many_many_children, "Linking objects not deleted"
|
256
|
-
assert_equal [], left.paranoid_many_many_parent_rights,
|
257
|
-
"Associated objects not unlinked"
|
258
|
-
assert_equal right, ParanoidManyManyParentRight.find(right.id),
|
259
|
-
"Associated object deleted"
|
260
|
-
end
|
261
|
-
|
262
|
-
def test_cannot_find_a_has_many_through_object_when_its_linking_object_is_soft_destroyed
|
263
|
-
left = ParanoidManyManyParentLeft.create
|
264
|
-
right = ParanoidManyManyParentRight.create
|
265
|
-
left.paranoid_many_many_parent_rights << right
|
266
|
-
|
267
|
-
child = left.paranoid_many_many_children.first
|
268
|
-
|
269
|
-
child.destroy
|
270
|
-
|
271
|
-
left.reload
|
272
|
-
|
273
|
-
assert_equal [], left.paranoid_many_many_parent_rights, "Associated objects not deleted"
|
274
|
-
end
|
275
|
-
|
276
|
-
def test_cannot_find_a_paranoid_deleted_model
|
277
|
-
model = ParanoidBelongsDependant.create
|
278
|
-
model.destroy
|
279
|
-
|
280
|
-
assert_raises ActiveRecord::RecordNotFound do
|
281
|
-
ParanoidBelongsDependant.find(model.id)
|
282
|
-
end
|
283
|
-
end
|
284
|
-
|
285
|
-
def test_bidirectional_has_many_through_association_clear_is_paranoid
|
286
|
-
left = ParanoidManyManyParentLeft.create
|
287
|
-
right = ParanoidManyManyParentRight.create
|
288
|
-
left.paranoid_many_many_parent_rights << right
|
289
|
-
|
290
|
-
child = left.paranoid_many_many_children.first
|
291
|
-
assert_equal left, child.paranoid_many_many_parent_left,
|
292
|
-
"Child's left parent is incorrect"
|
293
|
-
assert_equal right, child.paranoid_many_many_parent_right,
|
294
|
-
"Child's right parent is incorrect"
|
295
|
-
|
296
|
-
left.paranoid_many_many_parent_rights.clear
|
297
|
-
|
298
|
-
assert_paranoid_deletion(child)
|
299
|
-
end
|
300
|
-
|
301
|
-
def test_bidirectional_has_many_through_association_destroy_is_paranoid
|
302
|
-
left = ParanoidManyManyParentLeft.create
|
303
|
-
right = ParanoidManyManyParentRight.create
|
304
|
-
left.paranoid_many_many_parent_rights << right
|
305
|
-
|
306
|
-
child = left.paranoid_many_many_children.first
|
307
|
-
assert_equal left, child.paranoid_many_many_parent_left,
|
308
|
-
"Child's left parent is incorrect"
|
309
|
-
assert_equal right, child.paranoid_many_many_parent_right,
|
310
|
-
"Child's right parent is incorrect"
|
311
|
-
|
312
|
-
left.paranoid_many_many_parent_rights.destroy(right)
|
313
|
-
|
314
|
-
assert_paranoid_deletion(child)
|
315
|
-
end
|
316
|
-
|
317
|
-
def test_bidirectional_has_many_through_association_delete_is_paranoid
|
318
|
-
left = ParanoidManyManyParentLeft.create
|
319
|
-
right = ParanoidManyManyParentRight.create
|
320
|
-
left.paranoid_many_many_parent_rights << right
|
321
|
-
|
322
|
-
child = left.paranoid_many_many_children.first
|
323
|
-
assert_equal left, child.paranoid_many_many_parent_left,
|
324
|
-
"Child's left parent is incorrect"
|
325
|
-
assert_equal right, child.paranoid_many_many_parent_right,
|
326
|
-
"Child's right parent is incorrect"
|
327
|
-
|
328
|
-
left.paranoid_many_many_parent_rights.delete(right)
|
329
|
-
|
330
|
-
assert_paranoid_deletion(child)
|
331
|
-
end
|
332
|
-
|
333
|
-
def test_belongs_to_on_normal_model_is_paranoid
|
334
|
-
not_paranoid = HasOneNotParanoid.create
|
335
|
-
not_paranoid.paranoid_time = ParanoidTime.create
|
336
|
-
|
337
|
-
assert not_paranoid.save
|
338
|
-
assert_not_nil not_paranoid.paranoid_time
|
339
|
-
end
|
340
|
-
|
341
|
-
def test_double_belongs_to_with_deleted
|
342
|
-
not_paranoid = DoubleHasOneNotParanoid.create
|
343
|
-
not_paranoid.paranoid_time = ParanoidTime.create
|
344
|
-
|
345
|
-
assert not_paranoid.save
|
346
|
-
assert_not_nil not_paranoid.paranoid_time
|
347
|
-
end
|
348
|
-
|
349
|
-
def test_mass_assignment_of_paranoid_column_enabled
|
350
|
-
if Gem.loaded_specs["activerecord"].version >= Gem::Version.new("5.2.0")
|
351
|
-
skip "Creation as deleted is not supported with Rails >= 5.2"
|
352
|
-
end
|
353
|
-
now = Time.now
|
354
|
-
record = ParanoidTime.create! name: "Foo", deleted_at: now
|
355
|
-
assert_equal "Foo", record.name
|
356
|
-
assert_equal now, record.deleted_at
|
357
|
-
end
|
358
|
-
end
|