Skip to content

Commit cd2fac1

Browse files
authored
fix: Test fixes (#426)
* MiniTest -> Minitest * use force: :cascade so tables can be recreated regardless of constraints * require tag_examples module where it's used Otherwise it's specs would be loaded / run out of context leading to many errors like this: 1) Error: TagExamples::from empty db::lowest_common_ancestor#test_0009_is itself for single item: NameError: uninitialized class variable @@described_class in TagExamples Did you mean? describe /closure_tree/test/support/tag_examples.rb:10:in `block (2 levels) in <module:TagExamples>' when trying to run a single test, i.e. bundle exec rake test TESTOPTS="--seed=10410" TEST=test/closure_tree/parallel_test.rb * revert to :truncation DatabaseCleaner strategy - same as specs, fixes parallel_test
1 parent 2b1f088 commit cd2fac1

File tree

4 files changed

+27
-26
lines changed

4 files changed

+27
-26
lines changed

spec/support/schema.rb

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
# frozen_string_literal: true
22

33
ActiveRecord::Schema.define(version: 0) do
4-
create_table 'tags', force: true do |t|
4+
create_table 'tags', force: :cascade do |t|
55
t.string 'name'
66
t.string 'title'
77
t.references 'parent'
88
t.integer 'sort_order'
99
t.timestamps null: false
1010
end
1111

12-
create_table 'tag_hierarchies', id: false, force: true do |t|
12+
create_table 'tag_hierarchies', id: false, force: :cascade do |t|
1313
t.references 'ancestor', null: false
1414
t.references 'descendant', null: false
1515
t.integer 'generations', null: false
1616
end
1717

18-
create_table 'uuid_tags', id: false, force: true do |t|
18+
create_table 'uuid_tags', id: false, force: :cascade do |t|
1919
t.string 'uuid', unique: true
2020
t.string 'name'
2121
t.string 'title'
@@ -24,115 +24,115 @@
2424
t.timestamps null: false
2525
end
2626

27-
create_table 'uuid_tag_hierarchies', id: false, force: true do |t|
27+
create_table 'uuid_tag_hierarchies', id: false, force: :cascade do |t|
2828
t.string 'ancestor_id', null: false
2929
t.string 'descendant_id', null: false
3030
t.integer 'generations', null: false
3131
end
3232

33-
create_table 'destroyed_tags', force: true do |t|
33+
create_table 'destroyed_tags', force: :cascade do |t|
3434
t.string 'name'
3535
end
3636

3737
add_index 'tag_hierarchies', %i[ancestor_id descendant_id generations], unique: true,
3838
name: 'tag_anc_desc_idx'
3939
add_index 'tag_hierarchies', [:descendant_id], name: 'tag_desc_idx'
4040

41-
create_table 'groups', force: true do |t|
41+
create_table 'groups', force: :cascade do |t|
4242
t.string 'name', null: false
4343
end
4444

45-
create_table 'groupings', force: true do |t|
45+
create_table 'groupings', force: :cascade do |t|
4646
t.string 'name', null: false
4747
end
4848

49-
create_table 'user_sets', force: true do |t|
49+
create_table 'user_sets', force: :cascade do |t|
5050
t.string 'name', null: false
5151
end
5252

53-
create_table 'teams', force: true do |t|
53+
create_table 'teams', force: :cascade do |t|
5454
t.string 'name', null: false
5555
end
5656

57-
create_table 'users', force: true do |t|
57+
create_table 'users', force: :cascade do |t|
5858
t.string 'email'
5959
t.references 'referrer'
6060
t.integer 'group_id'
6161
t.timestamps null: false
6262
end
6363

64-
create_table 'contracts', force: true do |t|
64+
create_table 'contracts', force: :cascade do |t|
6565
t.references 'user', null: false
6666
t.references 'contract_type'
6767
t.string 'title'
6868
end
6969

70-
create_table 'contract_types', force: true do |t|
70+
create_table 'contract_types', force: :cascade do |t|
7171
t.string 'name', null: false
7272
end
7373

74-
create_table 'referral_hierarchies', id: false, force: true do |t|
74+
create_table 'referral_hierarchies', id: false, force: :cascade do |t|
7575
t.references 'ancestor', null: false
7676
t.references 'descendant', null: false
7777
t.integer 'generations', null: false
7878
end
7979

80-
create_table 'labels', force: true do |t|
80+
create_table 'labels', force: :cascade do |t|
8181
t.string 'name'
8282
t.string 'type'
8383
t.integer 'column_whereby_ordering_is_inferred'
8484
t.references 'mother'
8585
end
8686

87-
create_table 'label_hierarchies', id: false do |t|
87+
create_table 'label_hierarchies', id: false, force: :cascade do |t|
8888
t.references 'ancestor', null: false
8989
t.references 'descendant', null: false
9090
t.integer 'generations', null: false
9191
end
9292

93-
create_table 'cuisine_types', force: true do |t|
93+
create_table 'cuisine_types', force: :cascade do |t|
9494
t.string 'name'
9595
t.references 'parent'
9696
end
9797

98-
create_table 'cuisine_type_hierarchies', id: false, force: true do |t|
98+
create_table 'cuisine_type_hierarchies', id: false, force: :cascade do |t|
9999
t.references 'ancestor', null: false
100100
t.references 'descendant', null: false
101101
t.integer 'generations', null: false
102102
end
103103

104-
create_table 'namespace_types', force: true do |t|
104+
create_table 'namespace_types', force: :cascade do |t|
105105
t.string 'name'
106106
t.references 'parent'
107107
end
108108

109-
create_table 'namespace_type_hierarchies', id: false, force: true do |t|
109+
create_table 'namespace_type_hierarchies', id: false, force: :cascade do |t|
110110
t.references 'ancestor', null: false
111111
t.references 'descendant', null: false
112112
t.integer 'generations', null: false
113113
end
114114

115-
create_table 'metal', force: true do |t|
115+
create_table 'metal', force: :cascade do |t|
116116
t.references 'parent'
117117
t.string 'metal_type'
118118
t.string 'value'
119119
t.string 'description'
120120
t.integer 'sort_order'
121121
end
122122

123-
create_table 'metal_hierarchies', id: false, force: true do |t|
123+
create_table 'metal_hierarchies', id: false, force: :cascade do |t|
124124
t.references 'ancestor', null: false
125125
t.references 'descendant', null: false
126126
t.integer 'generations', null: false
127127
end
128128

129-
create_table 'menu_items', force: true do |t|
129+
create_table 'menu_items', force: :cascade do |t|
130130
t.string 'name'
131131
t.references 'parent'
132132
t.timestamps null: false
133133
end
134134

135-
create_table 'menu_item_hierarchies', id: false, force: true do |t|
135+
create_table 'menu_item_hierarchies', id: false, force: :cascade do |t|
136136
t.references 'ancestor', null: false
137137
t.references 'descendant', null: false
138138
t.integer 'generations', null: false

test/closure_tree/tag_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
require 'test_helper'
4+
require 'support/tag_examples'
45

56
describe Tag do
67
include TagExamples

test/closure_tree/uuid_tag_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
require 'test_helper'
4+
require 'support/tag_examples'
45

56
describe UUIDTag do
67
include TagExamples

test/test_helper.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ def sqlite?
4343
ActiveRecord::Base.connection.recreate_database('closure_tree_test') unless sqlite?
4444
puts "Testing with #{env_db} database, ActiveRecord #{ActiveRecord.gem_version} and #{RUBY_ENGINE} #{RUBY_ENGINE_VERSION} as #{RUBY_VERSION}"
4545

46-
DatabaseCleaner.strategy = :transaction
46+
DatabaseCleaner.strategy = :truncation
4747

48-
module MiniTest
48+
module Minitest
4949
class Spec
5050
include QueryCounter
5151

@@ -67,4 +67,3 @@ class Spec
6767
require 'closure_tree'
6868
require_relative '../spec/support/schema'
6969
require_relative '../spec/support/models'
70-
require 'support/tag_examples'

0 commit comments

Comments
 (0)