acts_as_paranoid 0.6.3 → 0.7.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 +69 -16
- data/README.md +130 -68
- data/lib/acts_as_paranoid.rb +31 -30
- data/lib/acts_as_paranoid/associations.rb +21 -17
- data/lib/acts_as_paranoid/core.rb +87 -77
- data/lib/acts_as_paranoid/relation.rb +2 -0
- data/lib/acts_as_paranoid/validations.rb +8 -74
- data/lib/acts_as_paranoid/version.rb +3 -1
- data/test/test_associations.rb +119 -43
- data/test/test_core.rb +90 -66
- data/test/test_default_scopes.rb +7 -5
- data/test/test_helper.rb +87 -65
- data/test/test_inheritance.rb +3 -1
- data/test/test_relations.rb +18 -10
- data/test/test_validations.rb +9 -7
- metadata +57 -26
- data/lib/acts_as_paranoid/preloader_association.rb +0 -16
- data/test/test_preloader_association.rb +0 -27
data/test/test_default_scopes.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
2
4
|
|
3
5
|
class MultipleDefaultScopesTest < ParanoidBaseTest
|
4
6
|
def setup
|
5
7
|
setup_db
|
6
8
|
|
7
|
-
ParanoidPolygon.create! :
|
8
|
-
ParanoidPolygon.create! :
|
9
|
-
ParanoidPolygon.create! :
|
10
|
-
ParanoidPolygon.create! :
|
9
|
+
ParanoidPolygon.create! sides: 3
|
10
|
+
ParanoidPolygon.create! sides: 3
|
11
|
+
ParanoidPolygon.create! sides: 3
|
12
|
+
ParanoidPolygon.create! sides: 8
|
11
13
|
|
12
14
|
assert_equal 3, ParanoidPolygon.count
|
13
15
|
assert_equal 4, ParanoidPolygon.unscoped.count
|
data/test/test_helper.rb
CHANGED
@@ -1,23 +1,32 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bundler"
|
2
4
|
begin
|
3
|
-
Bundler.
|
5
|
+
Bundler.load
|
4
6
|
rescue Bundler::BundlerError => e
|
5
|
-
|
6
|
-
|
7
|
+
warn e.message
|
8
|
+
warn "Run `bundle install` to install missing gems"
|
7
9
|
exit e.status_code
|
8
10
|
end
|
9
11
|
|
10
|
-
require
|
11
|
-
|
12
|
+
require "simplecov"
|
13
|
+
SimpleCov.start do
|
14
|
+
enable_coverage :branch
|
15
|
+
end
|
16
|
+
|
17
|
+
require "acts_as_paranoid"
|
18
|
+
require "minitest/autorun"
|
12
19
|
|
13
20
|
# Silence deprecation halfway through the test
|
14
21
|
I18n.enforce_available_locales = true
|
15
22
|
|
16
|
-
ActiveRecord::Base.establish_connection(:
|
23
|
+
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
|
17
24
|
ActiveRecord::Schema.verbose = false
|
18
25
|
|
26
|
+
# rubocop:disable Metrics/AbcSize
|
27
|
+
# rubocop:disable Metrics/MethodLength
|
19
28
|
def setup_db
|
20
|
-
ActiveRecord::Schema.define(:
|
29
|
+
ActiveRecord::Schema.define(version: 1) do # rubocop:disable Metrics/BlockLength
|
21
30
|
create_table :paranoid_times do |t|
|
22
31
|
t.string :name
|
23
32
|
t.datetime :deleted_at
|
@@ -112,14 +121,15 @@ def setup_db
|
|
112
121
|
|
113
122
|
create_table :super_paranoids do |t|
|
114
123
|
t.string :type
|
115
|
-
t.references :has_many_inherited_super_paranoidz,
|
124
|
+
t.references :has_many_inherited_super_paranoidz,
|
125
|
+
index: { name: "index__sp_id_on_has_many_isp" }
|
116
126
|
t.datetime :deleted_at
|
117
127
|
|
118
128
|
timestamps t
|
119
129
|
end
|
120
130
|
|
121
131
|
create_table :has_many_inherited_super_paranoidzs do |t|
|
122
|
-
t.references :super_paranoidz, index: { name:
|
132
|
+
t.references :super_paranoidz, index: { name: "index_has_many_isp_on_sp_id" }
|
123
133
|
t.datetime :deleted_at
|
124
134
|
|
125
135
|
timestamps t
|
@@ -166,7 +176,7 @@ def setup_db
|
|
166
176
|
end
|
167
177
|
|
168
178
|
create_table :paranoid_polygons do |t|
|
169
|
-
t.integer
|
179
|
+
t.integer :sides
|
170
180
|
t.datetime :deleted_at
|
171
181
|
|
172
182
|
timestamps t
|
@@ -185,7 +195,7 @@ def setup_db
|
|
185
195
|
|
186
196
|
create_table :paranoid_boolean_not_nullables do |t|
|
187
197
|
t.string :name
|
188
|
-
t.boolean :deleted, :boolean, :
|
198
|
+
t.boolean :deleted, :boolean, null: false, default: false
|
189
199
|
end
|
190
200
|
|
191
201
|
create_table :paranoid_belongs_to_polymorphics do |t|
|
@@ -223,19 +233,18 @@ def setup_db
|
|
223
233
|
end
|
224
234
|
end
|
225
235
|
end
|
236
|
+
# rubocop:enable Metrics/AbcSize
|
237
|
+
# rubocop:enable Metrics/MethodLength
|
226
238
|
|
227
239
|
def timestamps(table)
|
228
|
-
table.column :created_at
|
229
|
-
table.column :updated_at
|
240
|
+
table.column :created_at, :timestamp, null: false
|
241
|
+
table.column :updated_at, :timestamp, null: false
|
230
242
|
end
|
231
243
|
|
232
244
|
def teardown_db
|
233
|
-
|
234
|
-
ActiveRecord::Base.connection.
|
235
|
-
else
|
236
|
-
ActiveRecord::Base.connection.data_sources
|
245
|
+
ActiveRecord::Base.connection.data_sources.each do |table|
|
246
|
+
ActiveRecord::Base.connection.drop_table(table)
|
237
247
|
end
|
238
|
-
tables.each { |table| ActiveRecord::Base.connection.drop_table(table) }
|
239
248
|
end
|
240
249
|
|
241
250
|
class ParanoidTime < ActiveRecord::Base
|
@@ -243,50 +252,56 @@ class ParanoidTime < ActiveRecord::Base
|
|
243
252
|
|
244
253
|
validates_uniqueness_of :name
|
245
254
|
|
246
|
-
has_many :paranoid_has_many_dependants, :
|
247
|
-
has_many :paranoid_booleans, :
|
248
|
-
has_many :not_paranoids, :
|
249
|
-
has_many :paranoid_sections, :
|
255
|
+
has_many :paranoid_has_many_dependants, dependent: :destroy
|
256
|
+
has_many :paranoid_booleans, dependent: :destroy
|
257
|
+
has_many :not_paranoids, dependent: :delete_all
|
258
|
+
has_many :paranoid_sections, dependent: :destroy
|
250
259
|
|
251
|
-
has_one :has_one_not_paranoid, :
|
260
|
+
has_one :has_one_not_paranoid, dependent: :destroy
|
252
261
|
|
253
|
-
belongs_to :not_paranoid, :
|
262
|
+
belongs_to :not_paranoid, dependent: :destroy
|
254
263
|
end
|
255
264
|
|
256
265
|
class ParanoidBoolean < ActiveRecord::Base
|
257
|
-
acts_as_paranoid :
|
266
|
+
acts_as_paranoid column_type: "boolean", column: "is_deleted"
|
258
267
|
validates_as_paranoid
|
259
268
|
validates_uniqueness_of_without_deleted :name
|
260
269
|
|
261
270
|
belongs_to :paranoid_time
|
262
|
-
has_one :paranoid_has_one_dependant, :
|
263
|
-
has_many :paranoid_with_counter_cache, :
|
264
|
-
has_many :paranoid_with_custom_counter_cache, :
|
271
|
+
has_one :paranoid_has_one_dependant, dependent: :destroy
|
272
|
+
has_many :paranoid_with_counter_cache, dependent: :destroy
|
273
|
+
has_many :paranoid_with_custom_counter_cache, dependent: :destroy
|
265
274
|
end
|
266
275
|
|
267
276
|
class ParanoidString < ActiveRecord::Base
|
268
|
-
acts_as_paranoid :
|
277
|
+
acts_as_paranoid column_type: "string", column: "deleted", deleted_value: "dead"
|
269
278
|
end
|
270
279
|
|
271
280
|
class NotParanoid < ActiveRecord::Base
|
272
281
|
end
|
273
282
|
|
274
283
|
class ParanoidNoDoubleTapDestroysFully < ActiveRecord::Base
|
275
|
-
acts_as_paranoid :
|
284
|
+
acts_as_paranoid double_tap_destroys_fully: false
|
276
285
|
end
|
277
286
|
|
278
287
|
class HasOneNotParanoid < ActiveRecord::Base
|
279
|
-
belongs_to :paranoid_time, :
|
288
|
+
belongs_to :paranoid_time, with_deleted: true
|
280
289
|
end
|
281
290
|
|
282
291
|
class DoubleHasOneNotParanoid < HasOneNotParanoid
|
283
|
-
belongs_to :paranoid_time, :
|
284
|
-
|
292
|
+
belongs_to :paranoid_time, with_deleted: true
|
293
|
+
begin
|
294
|
+
verbose = $VERBOSE
|
295
|
+
$VERBOSE = false
|
296
|
+
belongs_to :paranoid_time, with_deleted: true
|
297
|
+
ensure
|
298
|
+
$VERBOSE = verbose
|
299
|
+
end
|
285
300
|
end
|
286
301
|
|
287
302
|
class ParanoidWithCounterCache < ActiveRecord::Base
|
288
303
|
acts_as_paranoid
|
289
|
-
belongs_to :paranoid_boolean, :
|
304
|
+
belongs_to :paranoid_boolean, counter_cache: true
|
290
305
|
end
|
291
306
|
|
292
307
|
class ParanoidWithCustomCounterCache < ActiveRecord::Base
|
@@ -310,12 +325,19 @@ end
|
|
310
325
|
class ParanoidHasManyDependant < ActiveRecord::Base
|
311
326
|
acts_as_paranoid
|
312
327
|
belongs_to :paranoid_time
|
313
|
-
belongs_to :paranoid_time_with_scope,
|
314
|
-
|
315
|
-
|
316
|
-
belongs_to :
|
328
|
+
belongs_to :paranoid_time_with_scope,
|
329
|
+
-> { where(name: "hello").includes(:not_paranoid) },
|
330
|
+
class_name: "ParanoidTime", foreign_key: :paranoid_time_id
|
331
|
+
belongs_to :paranoid_time_with_deleted, class_name: "ParanoidTime",
|
332
|
+
foreign_key: :paranoid_time_id, with_deleted: true
|
333
|
+
belongs_to :paranoid_time_with_scope_with_deleted,
|
334
|
+
-> { where(name: "hello").includes(:not_paranoid) },
|
335
|
+
class_name: "ParanoidTime", foreign_key: :paranoid_time_id, with_deleted: true
|
336
|
+
belongs_to :paranoid_time_polymorphic_with_deleted, class_name: "ParanoidTime",
|
337
|
+
foreign_key: :paranoid_time_id,
|
338
|
+
polymorphic: true, with_deleted: true
|
317
339
|
|
318
|
-
belongs_to :paranoid_belongs_dependant, :
|
340
|
+
belongs_to :paranoid_belongs_dependant, dependent: :destroy
|
319
341
|
end
|
320
342
|
|
321
343
|
class ParanoidBelongsDependant < ActiveRecord::Base
|
@@ -333,13 +355,14 @@ end
|
|
333
355
|
class ParanoidWithCallback < ActiveRecord::Base
|
334
356
|
acts_as_paranoid
|
335
357
|
|
336
|
-
attr_accessor :called_before_destroy, :called_after_destroy,
|
337
|
-
|
358
|
+
attr_accessor :called_before_destroy, :called_after_destroy,
|
359
|
+
:called_after_commit_on_destroy, :called_before_recover,
|
360
|
+
:called_after_recover
|
338
361
|
|
339
362
|
before_destroy :call_me_before_destroy
|
340
363
|
after_destroy :call_me_after_destroy
|
341
364
|
|
342
|
-
after_commit :call_me_after_commit_on_destroy, :
|
365
|
+
after_commit :call_me_after_commit_on_destroy, on: :destroy
|
343
366
|
|
344
367
|
before_recover :call_me_before_recover
|
345
368
|
after_recover :call_me_after_recover
|
@@ -372,14 +395,14 @@ end
|
|
372
395
|
|
373
396
|
class ParanoidDestroyCompany < ActiveRecord::Base
|
374
397
|
acts_as_paranoid
|
375
|
-
validates :name, :
|
376
|
-
has_many :paranoid_products, :
|
398
|
+
validates :name, presence: true
|
399
|
+
has_many :paranoid_products, dependent: :destroy
|
377
400
|
end
|
378
401
|
|
379
402
|
class ParanoidDeleteCompany < ActiveRecord::Base
|
380
403
|
acts_as_paranoid
|
381
|
-
validates :name, :
|
382
|
-
has_many :paranoid_products, :
|
404
|
+
validates :name, presence: true
|
405
|
+
has_many :paranoid_products, dependent: :delete_all
|
383
406
|
end
|
384
407
|
|
385
408
|
class ParanoidProduct < ActiveRecord::Base
|
@@ -395,22 +418,21 @@ class SuperParanoid < ActiveRecord::Base
|
|
395
418
|
end
|
396
419
|
|
397
420
|
class HasManyInheritedSuperParanoidz < ActiveRecord::Base
|
398
|
-
has_many :super_paranoidz, :
|
421
|
+
has_many :super_paranoidz, class_name: "InheritedParanoid", dependent: :destroy
|
399
422
|
end
|
400
423
|
|
401
424
|
class InheritedParanoid < SuperParanoid
|
402
425
|
acts_as_paranoid
|
403
426
|
end
|
404
427
|
|
405
|
-
|
406
428
|
class ParanoidManyManyParentLeft < ActiveRecord::Base
|
407
429
|
has_many :paranoid_many_many_children
|
408
|
-
has_many :paranoid_many_many_parent_rights, :
|
430
|
+
has_many :paranoid_many_many_parent_rights, through: :paranoid_many_many_children
|
409
431
|
end
|
410
432
|
|
411
433
|
class ParanoidManyManyParentRight < ActiveRecord::Base
|
412
434
|
has_many :paranoid_many_many_children
|
413
|
-
has_many :paranoid_many_many_parent_lefts, :
|
435
|
+
has_many :paranoid_many_many_parent_lefts, through: :paranoid_many_many_children
|
414
436
|
end
|
415
437
|
|
416
438
|
class ParanoidManyManyChild < ActiveRecord::Base
|
@@ -421,21 +443,21 @@ end
|
|
421
443
|
|
422
444
|
class ParanoidWithScopedValidation < ActiveRecord::Base
|
423
445
|
acts_as_paranoid
|
424
|
-
validates_uniqueness_of :name, :
|
446
|
+
validates_uniqueness_of :name, scope: :category
|
425
447
|
end
|
426
448
|
|
427
449
|
class ParanoidBelongsToPolymorphic < ActiveRecord::Base
|
428
450
|
acts_as_paranoid
|
429
|
-
belongs_to :parent, :
|
451
|
+
belongs_to :parent, polymorphic: true, with_deleted: true
|
430
452
|
end
|
431
453
|
|
432
454
|
class NotParanoidHasManyAsParent < ActiveRecord::Base
|
433
|
-
has_many :paranoid_belongs_to_polymorphics, :
|
455
|
+
has_many :paranoid_belongs_to_polymorphics, as: :parent, dependent: :destroy
|
434
456
|
end
|
435
457
|
|
436
458
|
class ParanoidHasManyAsParent < ActiveRecord::Base
|
437
459
|
acts_as_paranoid
|
438
|
-
has_many :paranoid_belongs_to_polymorphics, :
|
460
|
+
has_many :paranoid_belongs_to_polymorphics, as: :parent, dependent: :destroy
|
439
461
|
end
|
440
462
|
|
441
463
|
class ParanoidBaseTest < ActiveSupport::TestCase
|
@@ -443,13 +465,13 @@ class ParanoidBaseTest < ActiveSupport::TestCase
|
|
443
465
|
setup_db
|
444
466
|
|
445
467
|
["paranoid", "really paranoid", "extremely paranoid"].each do |name|
|
446
|
-
ParanoidTime.create! :
|
447
|
-
ParanoidBoolean.create! :
|
468
|
+
ParanoidTime.create! name: name
|
469
|
+
ParanoidBoolean.create! name: name
|
448
470
|
end
|
449
471
|
|
450
|
-
ParanoidString.create! :
|
451
|
-
NotParanoid.create! :
|
452
|
-
ParanoidWithCallback.create! :
|
472
|
+
ParanoidString.create! name: "strings can be paranoid"
|
473
|
+
NotParanoid.create! name: "no paranoid goals"
|
474
|
+
ParanoidWithCallback.create! name: "paranoid with callbacks"
|
453
475
|
end
|
454
476
|
|
455
477
|
def teardown
|
@@ -483,9 +505,9 @@ class ParanoidForest < ActiveRecord::Base
|
|
483
505
|
|
484
506
|
ActiveRecord::Base.logger = Logger.new(StringIO.new)
|
485
507
|
|
486
|
-
scope :rainforest,
|
508
|
+
scope :rainforest, -> { where(rainforest: true) }
|
487
509
|
|
488
|
-
has_many :paranoid_trees, :
|
510
|
+
has_many :paranoid_trees, dependent: :destroy
|
489
511
|
end
|
490
512
|
|
491
513
|
class ParanoidTree < ActiveRecord::Base
|
@@ -496,7 +518,7 @@ end
|
|
496
518
|
|
497
519
|
class ParanoidPolygon < ActiveRecord::Base
|
498
520
|
acts_as_paranoid
|
499
|
-
default_scope { where(
|
521
|
+
default_scope { where("sides = ?", 3) }
|
500
522
|
end
|
501
523
|
|
502
524
|
class ParanoidAndroid < ActiveRecord::Base
|
@@ -506,11 +528,11 @@ end
|
|
506
528
|
class ParanoidSection < ActiveRecord::Base
|
507
529
|
acts_as_paranoid
|
508
530
|
belongs_to :paranoid_time
|
509
|
-
belongs_to :paranoid_thing, :
|
531
|
+
belongs_to :paranoid_thing, polymorphic: true, dependent: :destroy
|
510
532
|
end
|
511
533
|
|
512
534
|
class ParanoidBooleanNotNullable < ActiveRecord::Base
|
513
|
-
acts_as_paranoid column:
|
535
|
+
acts_as_paranoid column: "deleted", column_type: "boolean", allow_nulls: false
|
514
536
|
end
|
515
537
|
|
516
538
|
class ParanoidWithExplicitTableNameAfterMacro < ActiveRecord::Base
|
data/test/test_inheritance.rb
CHANGED
data/test/test_relations.rb
CHANGED
@@ -1,20 +1,22 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
2
4
|
|
3
5
|
class RelationsTest < ParanoidBaseTest
|
4
6
|
def setup
|
5
7
|
setup_db
|
6
8
|
|
7
|
-
@paranoid_forest_1 = ParanoidForest.create! :
|
8
|
-
@paranoid_forest_2 = ParanoidForest.create! :
|
9
|
-
@paranoid_forest_3 = ParanoidForest.create! :
|
9
|
+
@paranoid_forest_1 = ParanoidForest.create! name: "ParanoidForest #1"
|
10
|
+
@paranoid_forest_2 = ParanoidForest.create! name: "ParanoidForest #2", rainforest: true
|
11
|
+
@paranoid_forest_3 = ParanoidForest.create! name: "ParanoidForest #3", rainforest: true
|
10
12
|
|
11
13
|
assert_equal 3, ParanoidForest.count
|
12
14
|
assert_equal 2, ParanoidForest.rainforest.count
|
13
15
|
|
14
|
-
@paranoid_forest_1.paranoid_trees.create! :
|
15
|
-
@paranoid_forest_1.paranoid_trees.create! :
|
16
|
-
@paranoid_forest_2.paranoid_trees.create! :
|
17
|
-
@paranoid_forest_2.paranoid_trees.create! :
|
16
|
+
@paranoid_forest_1.paranoid_trees.create! name: "ParanoidTree #1"
|
17
|
+
@paranoid_forest_1.paranoid_trees.create! name: "ParanoidTree #2"
|
18
|
+
@paranoid_forest_2.paranoid_trees.create! name: "ParanoidTree #3"
|
19
|
+
@paranoid_forest_2.paranoid_trees.create! name: "ParanoidTree #4"
|
18
20
|
|
19
21
|
assert_equal 4, ParanoidTree.count
|
20
22
|
end
|
@@ -86,13 +88,15 @@ class RelationsTest < ParanoidBaseTest
|
|
86
88
|
assert_equal 2, @paranoid_forest_2.paranoid_trees.with_deleted.count
|
87
89
|
end
|
88
90
|
|
89
|
-
def
|
90
|
-
# destroy!: aliased to delete
|
91
|
+
def test_real_removal_through_relation_with_destroy_bang
|
92
|
+
# Relation.destroy!: aliased to delete
|
91
93
|
ParanoidForest.rainforest.destroy!(@paranoid_forest_3)
|
92
94
|
assert_equal 1, ParanoidForest.rainforest.count
|
93
95
|
assert_equal 1, ParanoidForest.rainforest.with_deleted.count
|
94
96
|
assert_equal 0, ParanoidForest.rainforest.only_deleted.count
|
97
|
+
end
|
95
98
|
|
99
|
+
def test_two_step_real_removal_through_relation_with_destroy
|
96
100
|
# destroy: two-step through a relation
|
97
101
|
paranoid_tree = @paranoid_forest_1.paranoid_trees.first
|
98
102
|
@paranoid_forest_1.paranoid_trees.order(:id).destroy(paranoid_tree.id)
|
@@ -100,14 +104,18 @@ class RelationsTest < ParanoidBaseTest
|
|
100
104
|
assert_equal 1, @paranoid_forest_1.paranoid_trees.count
|
101
105
|
assert_equal 1, @paranoid_forest_1.paranoid_trees.with_deleted.count
|
102
106
|
assert_equal 0, @paranoid_forest_1.paranoid_trees.only_deleted.count
|
107
|
+
end
|
103
108
|
|
109
|
+
def test_two_step_real_removal_through_relation_with_destroy_all
|
104
110
|
# destroy_all: two-step through a relation
|
105
111
|
@paranoid_forest_1.paranoid_trees.order(:id).destroy_all
|
106
112
|
@paranoid_forest_1.paranoid_trees.only_deleted.destroy_all
|
107
113
|
assert_equal 0, @paranoid_forest_1.paranoid_trees.count
|
108
114
|
assert_equal 0, @paranoid_forest_1.paranoid_trees.with_deleted.count
|
109
115
|
assert_equal 0, @paranoid_forest_1.paranoid_trees.only_deleted.count
|
116
|
+
end
|
110
117
|
|
118
|
+
def test_real_removal_through_relation_with_delete_all_bang
|
111
119
|
# delete_all!: through a relation
|
112
120
|
@paranoid_forest_2.paranoid_trees.order(:id).delete_all!
|
113
121
|
assert_equal 0, @paranoid_forest_2.paranoid_trees.count
|
data/test/test_validations.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
2
4
|
|
3
5
|
class ValidatesUniquenessTest < ParanoidBaseTest
|
4
6
|
def test_should_include_deleted_by_default
|
5
|
-
ParanoidTime.new(:
|
7
|
+
ParanoidTime.new(name: "paranoid").tap do |record|
|
6
8
|
assert !record.valid?
|
7
9
|
ParanoidTime.first.destroy
|
8
10
|
assert !record.valid?
|
@@ -12,7 +14,7 @@ class ValidatesUniquenessTest < ParanoidBaseTest
|
|
12
14
|
end
|
13
15
|
|
14
16
|
def test_should_validate_without_deleted
|
15
|
-
ParanoidBoolean.new(:
|
17
|
+
ParanoidBoolean.new(name: "paranoid").tap do |record|
|
16
18
|
refute record.valid?
|
17
19
|
ParanoidBoolean.first.destroy
|
18
20
|
assert record.valid?
|
@@ -22,8 +24,8 @@ class ValidatesUniquenessTest < ParanoidBaseTest
|
|
22
24
|
end
|
23
25
|
|
24
26
|
def test_models_with_scoped_validations_can_be_multiply_deleted
|
25
|
-
model_a = ParanoidWithScopedValidation.create(:
|
26
|
-
model_b = ParanoidWithScopedValidation.create(:
|
27
|
+
model_a = ParanoidWithScopedValidation.create(name: "Model A", category: "Category A")
|
28
|
+
model_b = ParanoidWithScopedValidation.create(name: "Model B", category: "Category B")
|
27
29
|
|
28
30
|
ParanoidWithScopedValidation.delete([model_a.id, model_b.id])
|
29
31
|
|
@@ -32,8 +34,8 @@ class ValidatesUniquenessTest < ParanoidBaseTest
|
|
32
34
|
end
|
33
35
|
|
34
36
|
def test_models_with_scoped_validations_can_be_multiply_destroyed
|
35
|
-
model_a = ParanoidWithScopedValidation.create(:
|
36
|
-
model_b = ParanoidWithScopedValidation.create(:
|
37
|
+
model_a = ParanoidWithScopedValidation.create(name: "Model A", category: "Category A")
|
38
|
+
model_b = ParanoidWithScopedValidation.create(name: "Model B", category: "Category B")
|
37
39
|
|
38
40
|
ParanoidWithScopedValidation.destroy([model_a.id, model_b.id])
|
39
41
|
|