ridgepole 0.6.4 → 0.6.5.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +18 -8
  4. data/Appraisals +8 -0
  5. data/README.md +26 -2
  6. data/docker-compose.yml +12 -0
  7. data/gemfiles/activerecord_4.2.gemfile +8 -0
  8. data/gemfiles/activerecord_5.0.gemfile +7 -0
  9. data/lib/ridgepole/diff.rb +3 -1
  10. data/lib/ridgepole/version.rb +1 -1
  11. data/ridgepole.gemspec +6 -2
  12. data/spec/cli_helper.rb +63 -0
  13. data/spec/mysql/bigint_pk/bigint_pk_spec.rb +45 -0
  14. data/spec/mysql/cli/config_spec.rb +0 -2
  15. data/spec/mysql/cli/ridgepole_spec.rb +58 -56
  16. data/spec/mysql/collation/collation_spec.rb +134 -138
  17. data/spec/mysql/diff/diff2_spec.rb +1 -3
  18. data/spec/mysql/diff/diff_spec.rb +1 -3
  19. data/spec/mysql/dump/dump_class_method_spec.rb +29 -11
  20. data/spec/mysql/dump/dump_some_tables_spec.rb +18 -8
  21. data/spec/mysql/dump/dump_spec.rb +28 -10
  22. data/spec/mysql/dump/dump_without_table_options_spec.rb +29 -33
  23. data/spec/mysql/fk/migrate_change_fk_spec.rb +2 -4
  24. data/spec/mysql/fk/migrate_create_fk_spec.rb +39 -29
  25. data/spec/mysql/fk/migrate_drop_fk_spec.rb +20 -22
  26. data/spec/mysql/migrate/check_orphan_index_spec.rb +2 -4
  27. data/spec/mysql/migrate/migrate_add_column2_spec.rb +33 -26
  28. data/spec/mysql/migrate/migrate_add_column_spec.rb +32 -22
  29. data/spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb +26 -16
  30. data/spec/mysql/migrate/migrate_add_column_with_script_spec.rb +27 -17
  31. data/spec/mysql/migrate/migrate_change_column2_spec.rb +26 -16
  32. data/spec/mysql/migrate/migrate_change_column3_spec.rb +54 -44
  33. data/spec/mysql/migrate/migrate_change_column4_spec.rb +8 -10
  34. data/spec/mysql/migrate/migrate_change_column5_spec.rb +32 -22
  35. data/spec/mysql/migrate/migrate_change_column6_spec.rb +28 -30
  36. data/spec/mysql/migrate/migrate_change_column_default_spec.rb +34 -36
  37. data/spec/mysql/migrate/migrate_change_column_float_spec.rb +10 -12
  38. data/spec/mysql/migrate/migrate_change_column_spec.rb +41 -29
  39. data/spec/mysql/migrate/migrate_change_index2_spec.rb +12 -14
  40. data/spec/mysql/migrate/migrate_change_index3_spec.rb +24 -26
  41. data/spec/mysql/migrate/migrate_change_index4_spec.rb +34 -24
  42. data/spec/mysql/migrate/migrate_change_index5_spec.rb +26 -16
  43. data/spec/mysql/migrate/migrate_change_index6_spec.rb +38 -28
  44. data/spec/mysql/migrate/migrate_change_index_spec.rb +39 -29
  45. data/spec/mysql/migrate/migrate_change_table_option_spec.rb +26 -13
  46. data/spec/mysql/migrate/migrate_create_index2_spec.rb +30 -20
  47. data/spec/mysql/migrate/migrate_create_index_spec.rb +28 -18
  48. data/spec/mysql/migrate/migrate_create_table_spec.rb +24 -14
  49. data/spec/mysql/migrate/migrate_create_table_with_options_spec.rb +4 -6
  50. data/spec/mysql/migrate/migrate_create_table_with_script_spec.rb +23 -13
  51. data/spec/mysql/migrate/migrate_drop_column_and_index2_spec.rb +32 -22
  52. data/spec/mysql/migrate/migrate_drop_column_and_index_spec.rb +35 -25
  53. data/spec/mysql/migrate/migrate_drop_column_spec.rb +36 -26
  54. data/spec/mysql/migrate/migrate_drop_index_spec.rb +28 -18
  55. data/spec/mysql/migrate/migrate_drop_table_spec.rb +29 -19
  56. data/spec/mysql/migrate/migrate_duplicate_index_spec.rb +2 -4
  57. data/spec/mysql/migrate/migrate_duplicate_table_spec.rb +2 -4
  58. data/spec/mysql/migrate/migrate_empty_spec.rb +24 -14
  59. data/spec/mysql/migrate/migrate_execute_spec.rb +78 -65
  60. data/spec/mysql/migrate/migrate_log_file_spec.rb +22 -12
  61. data/spec/mysql/migrate/migrate_merge_mode_spec.rb +31 -21
  62. data/spec/mysql/migrate/migrate_noop_spec.rb +55 -45
  63. data/spec/mysql/migrate/migrate_rename_column_spec.rb +38 -28
  64. data/spec/mysql/migrate/migrate_rename_table_spec.rb +43 -33
  65. data/spec/mysql/migrate/migrate_same_default_null_spec.rb +28 -18
  66. data/spec/mysql/migrate/migrate_same_spec.rb +26 -12
  67. data/spec/mysql/migrate/migrate_script_error_spec.rb +3 -5
  68. data/spec/mysql/migrate/migrate_skip_rename_column_spec.rb +30 -20
  69. data/spec/mysql/migrate/migrate_skip_rename_table_spec.rb +30 -20
  70. data/spec/mysql/migrate/migrate_with_ignore_tables_spec.rb +44 -46
  71. data/spec/mysql/migrate/migrate_with_pre_post_query_spec.rb +6 -8
  72. data/spec/mysql/migrate/migrate_with_tables_spec.rb +20 -22
  73. data/spec/mysql/migrate_/migrate_create_index_with_alter_spec.rb +22 -12
  74. data/spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb +22 -12
  75. data/spec/mysql/~default_name_fk/migrate_change_fk_spec.rb +8 -10
  76. data/spec/mysql/~default_name_fk/migrate_create_fk_spec.rb +39 -29
  77. data/spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb +20 -22
  78. data/spec/postgresql/diff/diff_spec.rb +7 -9
  79. data/spec/postgresql/dump/dump_spec.rb +2 -4
  80. data/spec/postgresql/fk/migrate_change_fk_spec.rb +8 -10
  81. data/spec/postgresql/fk/migrate_create_fk_spec.rb +24 -26
  82. data/spec/postgresql/fk/migrate_drop_fk_spec.rb +21 -23
  83. data/spec/postgresql/migrate/migrate_add_column_spec.rb +19 -22
  84. data/spec/postgresql/migrate/migrate_change_column_default_spec.rb +6 -8
  85. data/spec/postgresql/migrate/migrate_change_column_spec.rb +17 -19
  86. data/spec/postgresql/migrate/migrate_change_index_spec.rb +11 -13
  87. data/spec/postgresql/migrate/migrate_create_table_spec.rb +6 -9
  88. data/spec/postgresql/migrate/migrate_drop_column_spec.rb +12 -14
  89. data/spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb +12 -14
  90. data/spec/postgresql/migrate/migrate_drop_index_spec.rb +10 -12
  91. data/spec/postgresql/migrate/migrate_drop_table_spec.rb +7 -9
  92. data/spec/postgresql/migrate/migrate_ext_cols_spec.rb +6 -8
  93. data/spec/postgresql/migrate/migrate_rename_column_spec.rb +12 -14
  94. data/spec/postgresql/migrate/migrate_rename_table_spec.rb +14 -16
  95. data/spec/postgresql/migrate/migrate_same_spec.rb +4 -6
  96. data/spec/postgresql/~default_name_fk/migrate_change_fk_spec.rb +8 -10
  97. data/spec/postgresql/~default_name_fk/migrate_create_fk_spec.rb +24 -26
  98. data/spec/postgresql/~default_name_fk/migrate_drop_fk_spec.rb +20 -22
  99. data/spec/processing_for_travis.rb +9 -0
  100. data/spec/spec_condition.rb +24 -0
  101. data/spec/spec_const.rb +18 -0
  102. data/spec/spec_helper.rb +125 -196
  103. data/spec/string_ext.rb +0 -13
  104. metadata +106 -32
  105. data/spec/mysql/bigint_pk/bigint_pkspec.rb +0 -47
@@ -1,26 +1,25 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when change float column' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "salaries", id: false, force: :cascade do |t|
7
6
  t.integer "emp_no", limit: 4, null: false
8
7
  t.float "salary", limit: 24, null: false
9
8
  t.date "from_date", null: false
10
9
  t.date "to_date", null: false
11
10
  end
12
- RUBY
11
+ EOS
13
12
  }
14
13
 
15
14
  let(:expected_dsl) {
16
- <<-RUBY
15
+ <<-EOS
17
16
  create_table "salaries", id: false, force: :cascade do |t|
18
17
  t.integer "emp_no", null: false
19
18
  t.float "salary", null: false
20
19
  t.date "from_date", null: false
21
20
  t.date "to_date", null: false
22
21
  end
23
- RUBY
22
+ EOS
24
23
  }
25
24
 
26
25
  before { subject.diff(actual_dsl).migrate }
@@ -29,33 +28,33 @@ describe 'Ridgepole::Client#diff -> migrate' do
29
28
  it {
30
29
  delta = subject.diff(expected_dsl)
31
30
  expect(delta.differ?).to be_truthy
32
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
31
+ expect(subject.dump).to match_fuzzy actual_dsl
33
32
  delta.migrate
34
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
33
+ expect(subject.dump).to match_fuzzy actual_dsl
35
34
  }
36
35
  end
37
36
 
38
37
  context 'when change float column (no change)' do
39
38
  let(:actual_dsl) {
40
- <<-RUBY
39
+ <<-EOS
41
40
  create_table "salaries", id: false, force: :cascade do |t|
42
41
  t.integer "emp_no", null: false
43
42
  t.float "salary", limit: 24, null: false
44
43
  t.date "from_date", null: false
45
44
  t.date "to_date", null: false
46
45
  end
47
- RUBY
46
+ EOS
48
47
  }
49
48
 
50
49
  let(:expected_dsl) {
51
- <<-RUBY
50
+ <<-EOS
52
51
  create_table "salaries", id: false, force: :cascade do |t|
53
52
  t.integer "emp_no", null: false
54
53
  t.float "salary", null: false
55
54
  t.date "from_date", null: false
56
55
  t.date "to_date", null: false
57
56
  end
58
- RUBY
57
+ EOS
59
58
  }
60
59
 
61
60
  before { subject.diff(actual_dsl).migrate }
@@ -67,4 +66,3 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
66
  }
68
67
  end
69
68
  end
70
- end
@@ -1,15 +1,28 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
2
+ let(:template_variables) {
3
+ opts = {
4
+ unsigned: {},
5
+ unsigned_false: {},
6
+ }
7
+
8
+ if condition(:mysql_awesome_enabled)
9
+ opts[:unsigned] = {unsigned: true}
10
+ opts[:unsigned_false] = {unsigned: false}
11
+ end
12
+
13
+ opts
14
+ }
15
+
3
16
  context 'when change column' do
4
17
  let(:actual_dsl) {
5
- <<-RUBY
6
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
18
+ erbh(<<-EOS, template_variables)
19
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
20
  t.string "name", limit: 255, default: "", null: false
8
21
  end
9
22
 
10
23
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
11
24
 
12
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
25
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
13
26
  t.string "dept_name", limit: 40, null: false
14
27
  end
15
28
 
@@ -35,14 +48,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
35
48
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
36
49
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
37
50
 
38
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
39
- t.integer "emp_no", limit: 4, null: false#{unsigned_if_enabled}
40
- t.integer "club_id", limit: 4, null: false#{unsigned_if_enabled}
51
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
52
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
53
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
41
54
  end
42
55
 
43
56
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
44
57
 
45
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
58
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
46
59
  t.date "birth_date", null: false
47
60
  t.string "first_name", limit: 14, null: false
48
61
  t.string "last_name", limit: 16, null: false
@@ -67,18 +80,18 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
80
  end
68
81
 
69
82
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
70
- RUBY
83
+ EOS
71
84
  }
72
85
 
73
86
  let(:expected_dsl) {
74
- <<-RUBY
75
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
87
+ erbh(<<-EOS, template_variables)
88
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
76
89
  t.string "name", limit: 255, default: "", null: false
77
90
  end
78
91
 
79
92
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
80
93
 
81
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
94
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
82
95
  t.string "dept_name", limit: 40, null: false
83
96
  end
84
97
 
@@ -104,14 +117,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
104
117
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
105
118
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
106
119
 
107
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
108
- t.integer "emp_no", limit: 4, null: false#{unsigned_if_enabled}
120
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
121
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
109
122
  t.integer "club_id", limit: 4
110
123
  end
111
124
 
112
125
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
113
126
 
114
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
127
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
115
128
  t.date "birth_date", null: false
116
129
  t.string "first_name", limit: 14, null: false
117
130
  t.string "last_name", limit: 20, default: "XXX", null: false
@@ -136,7 +149,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
136
149
  end
137
150
 
138
151
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
139
- RUBY
152
+ EOS
140
153
  }
141
154
 
142
155
  before { subject.diff(actual_dsl).migrate }
@@ -145,39 +158,38 @@ describe 'Ridgepole::Client#diff -> migrate' do
145
158
  it {
146
159
  delta = subject.diff(expected_dsl)
147
160
  expect(delta.differ?).to be_truthy
148
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
161
+ expect(subject.dump).to match_fuzzy actual_dsl
149
162
  delta.migrate
150
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/(\s*,\s*unsigned: false)?\s*,\s*null: true/, '')
163
+ expect(subject.dump).to match_fuzzy expected_dsl
151
164
  }
152
165
 
153
166
  it {
154
167
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, enable_mysql_unsigned: true)
155
168
  expect(delta.differ?).to be_truthy
156
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
157
- change_column("employee_clubs", "club_id", :integer, {:null=>false#{unsigned_if_enabled2}, :default=>nil})
169
+ expect(delta.script).to match_fuzzy erbh(<<-EOS, template_variables)
170
+ change_column("employee_clubs", "club_id", :integer, <%= {:null=>false, :default=>nil}.insert(1, @unsigned) %>)
158
171
 
159
172
  change_column("employees", "last_name", :string, {:limit=>16, :default=>nil})
160
173
  change_column("employees", "gender", :string, {:limit=>1, :null=>false, :default=>nil})
161
- RUBY
174
+ EOS
162
175
  }
163
176
 
164
177
  it {
165
178
  delta = client(:bulk_change => true).diff(expected_dsl)
166
179
  expect(delta.differ?).to be_truthy
167
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
168
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
180
+ expect(subject.dump).to match_fuzzy actual_dsl
181
+ expect(delta.script).to match_fuzzy erbh(<<-EOS, template_variables)
169
182
  change_table("employee_clubs", {:bulk => true}) do |t|
170
- t.change("club_id", :integer, {:null=>true, :default=>nil#{unsigned_false_if_enabled2}})
183
+ t.change("club_id", :integer, <%= {:null=>true, :default=>nil}.push(@unsigned_false) %>)
171
184
  end
172
185
 
173
186
  change_table("employees", {:bulk => true}) do |t|
174
- t.change("last_name", :string, {:limit=>20, :default=>"XXX"#{unsigned_false_if_enabled2}})
175
- t.change("gender", :string, {:limit=>2, :null=>false, :default=>nil#{unsigned_false_if_enabled2}})
187
+ t.change("last_name", :string, <%= {:limit=>20, :default=>"XXX"}.push(@unsigned_false) %>)
188
+ t.change("gender", :string, <%= {:limit=>2, :null=>false, :default=>nil}.push(@unsigned_false) %>)
176
189
  end
177
- RUBY
190
+ EOS
178
191
  delta.migrate
179
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/(\s*,\s*unsigned: false)?\s*,\s*null: true/, '')
192
+ expect(subject.dump).to match_fuzzy expected_dsl
180
193
  }
181
194
  end
182
195
  end
183
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when change index (no change)' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "salaries", id: false, force: :cascade do |t|
7
6
  t.integer "emp_no", null: false
8
7
  t.integer "salary", null: false
@@ -11,11 +10,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
11
10
  end
12
11
 
13
12
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
14
- RUBY
13
+ EOS
15
14
  }
16
15
 
17
16
  let(:expected_dsl) {
18
- <<-RUBY
17
+ <<-EOS
19
18
  create_table "salaries", id: false, force: :cascade do |t|
20
19
  t.integer "emp_no", null: false
21
20
  t.integer "salary", null: false
@@ -24,7 +23,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
24
23
  end
25
24
 
26
25
  add_index "salaries", "emp_no", name: "emp_no", using: :btree
27
- RUBY
26
+ EOS
28
27
  }
29
28
 
30
29
  before { subject.diff(actual_dsl).migrate }
@@ -38,7 +37,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
38
37
 
39
38
  context 'when change index (change)' do
40
39
  let(:actual_dsl) {
41
- <<-RUBY
40
+ <<-EOS
42
41
  create_table "salaries", id: false, force: :cascade do |t|
43
42
  t.integer "emp_no", limit: 4, null: false
44
43
  t.integer "salary", limit: 4, null: false
@@ -47,11 +46,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
47
46
  end
48
47
 
49
48
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
50
- RUBY
49
+ EOS
51
50
  }
52
51
 
53
52
  let(:dsl) {
54
- <<-RUBY
53
+ <<-EOS
55
54
  create_table "salaries", id: false, force: :cascade do |t|
56
55
  t.integer "emp_no", null: false
57
56
  t.integer "salary", null: false
@@ -60,11 +59,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
60
59
  end
61
60
 
62
61
  add_index "salaries", "salary", name: "emp_no", using: :btree
63
- RUBY
62
+ EOS
64
63
  }
65
64
 
66
65
  let(:expected_dsl) {
67
- <<-RUBY
66
+ <<-EOS
68
67
  create_table "salaries", id: false, force: :cascade do |t|
69
68
  t.integer "emp_no", limit: 4, null: false
70
69
  t.integer "salary", limit: 4, null: false
@@ -73,7 +72,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
73
72
  end
74
73
 
75
74
  add_index "salaries", ["salary"], name: "emp_no", using: :btree
76
- RUBY
75
+ EOS
77
76
  }
78
77
 
79
78
  before { subject.diff(actual_dsl).migrate }
@@ -82,10 +81,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
82
81
  it {
83
82
  delta = subject.diff(dsl)
84
83
  expect(delta.differ?).to be_truthy
85
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
84
+ expect(subject.dump).to match_fuzzy actual_dsl
86
85
  delta.migrate
87
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
86
+ expect(subject.dump).to match_fuzzy expected_dsl
88
87
  }
89
88
  end
90
89
  end
91
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when change index without using (no change)' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "salaries", id: false, force: :cascade do |t|
7
6
  t.integer "emp_no", null: false
8
7
  t.integer "salary", null: false
@@ -11,11 +10,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
11
10
  end
12
11
 
13
12
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
14
- RUBY
13
+ EOS
15
14
  }
16
15
 
17
16
  let(:expected_dsl) {
18
- <<-RUBY
17
+ <<-EOS
19
18
  create_table "salaries", id: false, force: :cascade do |t|
20
19
  t.integer "emp_no", null: false
21
20
  t.integer "salary", null: false
@@ -24,7 +23,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
24
23
  end
25
24
 
26
25
  add_index "salaries", ["emp_no"], name: "emp_no"
27
- RUBY
26
+ EOS
28
27
  }
29
28
 
30
29
  before { subject.diff(actual_dsl).migrate }
@@ -38,7 +37,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
38
37
 
39
38
  context 'when change index without using (change)' do
40
39
  let(:actual_dsl) {
41
- <<-RUBY
40
+ <<-EOS
42
41
  create_table "salaries", id: false, force: :cascade do |t|
43
42
  t.integer "emp_no", limit: 4, null: false
44
43
  t.integer "salary", limit: 4, null: false
@@ -47,11 +46,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
47
46
  end
48
47
 
49
48
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
50
- RUBY
49
+ EOS
51
50
  }
52
51
 
53
52
  let(:dsl) {
54
- <<-RUBY
53
+ <<-EOS
55
54
  create_table "salaries", id: false, force: :cascade do |t|
56
55
  t.integer "emp_no", null: false
57
56
  t.integer "salary", null: false
@@ -60,11 +59,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
60
59
  end
61
60
 
62
61
  add_index "salaries", ["salary"], using: :hash
63
- RUBY
62
+ EOS
64
63
  }
65
64
 
66
65
  let(:expected_dsl) {
67
- <<-RUBY
66
+ <<-EOS
68
67
  create_table "salaries", id: false, force: :cascade do |t|
69
68
  t.integer "emp_no", limit: 4, null: false
70
69
  t.integer "salary", limit: 4, null: false
@@ -73,7 +72,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
73
72
  end
74
73
 
75
74
  add_index "salaries", ["salary"], name: "index_salaries_on_salary", using: :hash
76
- RUBY
75
+ EOS
77
76
  }
78
77
 
79
78
  before { subject.diff(actual_dsl).migrate }
@@ -82,15 +81,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
82
81
  it {
83
82
  delta = subject.diff(dsl)
84
83
  expect(delta.differ?).to be_truthy
85
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
84
+ expect(subject.dump).to match_fuzzy actual_dsl
86
85
  delta.migrate
87
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
86
+ expect(subject.dump).to match_fuzzy expected_dsl
88
87
  }
89
88
  end
90
89
 
91
90
  context 'when change index without name (no change)' do
92
91
  let(:actual_dsl) {
93
- <<-RUBY
92
+ <<-EOS
94
93
  create_table "salaries", id: false, force: :cascade do |t|
95
94
  t.integer "emp_no", null: false
96
95
  t.integer "salary", null: false
@@ -99,11 +98,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
99
98
  end
100
99
 
101
100
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
102
- RUBY
101
+ EOS
103
102
  }
104
103
 
105
104
  let(:expected_dsl) {
106
- <<-RUBY
105
+ <<-EOS
107
106
  create_table "salaries", id: false, force: :cascade do |t|
108
107
  t.integer "emp_no", null: false
109
108
  t.integer "salary", null: false
@@ -112,7 +111,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
112
111
  end
113
112
 
114
113
  add_index "salaries", ["emp_no"], using: :btree
115
- RUBY
114
+ EOS
116
115
  }
117
116
 
118
117
  before { subject.diff(actual_dsl).migrate }
@@ -126,7 +125,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
126
125
 
127
126
  context 'when change index without name (change)' do
128
127
  let(:actual_dsl) {
129
- <<-RUBY
128
+ <<-EOS
130
129
  create_table "salaries", id: false, force: :cascade do |t|
131
130
  t.integer "emp_no", limit: 4, null: false
132
131
  t.integer "salary", limit: 4, null: false
@@ -135,11 +134,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
135
134
  end
136
135
 
137
136
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
138
- RUBY
137
+ EOS
139
138
  }
140
139
 
141
140
  let(:dsl) {
142
- <<-RUBY
141
+ <<-EOS
143
142
  create_table "salaries", id: false, force: :cascade do |t|
144
143
  t.integer "emp_no", null: false
145
144
  t.integer "salary", null: false
@@ -148,11 +147,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
148
147
  end
149
148
 
150
149
  add_index "salaries", ["salary"], using: :btree
151
- RUBY
150
+ EOS
152
151
  }
153
152
 
154
153
  let(:expected_dsl) {
155
- <<-RUBY
154
+ <<-EOS
156
155
  create_table "salaries", id: false, force: :cascade do |t|
157
156
  t.integer "emp_no", limit: 4, null: false
158
157
  t.integer "salary", limit: 4, null: false
@@ -161,7 +160,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
161
160
  end
162
161
 
163
162
  add_index "salaries", ["salary"], name: "index_salaries_on_salary", using: :btree
164
- RUBY
163
+ EOS
165
164
  }
166
165
 
167
166
  before { subject.diff(actual_dsl).migrate }
@@ -170,10 +169,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
170
169
  it {
171
170
  delta = subject.diff(dsl)
172
171
  expect(delta.differ?).to be_truthy
173
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
172
+ expect(subject.dump).to match_fuzzy actual_dsl
174
173
  delta.migrate
175
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
174
+ expect(subject.dump).to match_fuzzy expected_dsl
176
175
  }
177
176
  end
178
177
  end
179
- end
@@ -1,9 +1,20 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
2
+ let(:template_variables) {
3
+ opts = {
4
+ unsigned: {}
5
+ }
6
+
7
+ if condition(:mysql_awesome_enabled)
8
+ opts[:unsigned] = {unsigned: true}
9
+ end
10
+
11
+ opts
12
+ }
13
+
3
14
  context 'when change index (same name)' do
4
15
  let(:actual_dsl) {
5
- <<-RUBY
6
- create_table "salaries"#{unsigned_if_enabled}, force: :cascade do |t|
16
+ erbh(<<-EOS, template_variables)
17
+ create_table "salaries", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
18
  t.integer "emp_no", limit: 4, null: false
8
19
  t.integer "salary", limit: 4, null: false
9
20
  t.date "from_date", null: false
@@ -11,12 +22,12 @@ describe 'Ridgepole::Client#diff -> migrate' do
11
22
  end
12
23
 
13
24
  add_index "salaries", ["emp_no", "id"], name: "emp_no", using: :btree
14
- RUBY
25
+ EOS
15
26
  }
16
27
 
17
28
  let(:expected_dsl) {
18
- <<-RUBY
19
- create_table "salaries"#{unsigned_if_enabled}, force: :cascade do |t|
29
+ erbh(<<-EOS, template_variables)
30
+ create_table "salaries", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
20
31
  t.integer "emp_no", limit: 4, null: false
21
32
  t.integer "salary", limit: 4, null: false
22
33
  t.date "from_date", null: false
@@ -24,7 +35,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
24
35
  end
25
36
 
26
37
  add_index "salaries", ["salary", "id"], name: "emp_no", using: :btree
27
- RUBY
38
+ EOS
28
39
  }
29
40
 
30
41
  before { subject.diff(actual_dsl).migrate }
@@ -33,15 +44,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
33
44
  it {
34
45
  delta = subject.diff(expected_dsl)
35
46
  expect(delta.differ?).to be_truthy
36
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
47
+ expect(subject.dump).to match_fuzzy actual_dsl
37
48
  delta.migrate
38
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
49
+ expect(subject.dump).to match_fuzzy expected_dsl
39
50
  }
40
51
  end
41
52
 
42
53
  context 'when change index (same name) (2)' do
43
54
  let(:actual_dsl) {
44
- <<-RUBY
55
+ <<-EOS
45
56
  create_table "salaries", id: false, force: :cascade do |t|
46
57
  t.integer "emp_no", limit: 4, null: false
47
58
  t.integer "salary", limit: 4, null: false
@@ -50,11 +61,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
50
61
  end
51
62
 
52
63
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
53
- RUBY
64
+ EOS
54
65
  }
55
66
 
56
67
  let(:expected_dsl) {
57
- <<-RUBY
68
+ <<-EOS
58
69
  create_table "salaries", id: false, force: :cascade do |t|
59
70
  t.integer "emp_no", limit: 4, null: false
60
71
  t.integer "salary", limit: 4, null: false
@@ -63,7 +74,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
63
74
  end
64
75
 
65
76
  add_index "salaries", ["salary"], name: "emp_no", using: :btree
66
- RUBY
77
+ EOS
67
78
  }
68
79
 
69
80
  before { subject.diff(actual_dsl).migrate }
@@ -72,35 +83,35 @@ describe 'Ridgepole::Client#diff -> migrate' do
72
83
  it {
73
84
  delta = subject.diff(expected_dsl)
74
85
  expect(delta.differ?).to be_truthy
75
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
86
+ expect(subject.dump).to match_fuzzy actual_dsl
76
87
  delta.migrate
77
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
88
+ expect(subject.dump).to match_fuzzy expected_dsl
78
89
  }
79
90
  end
80
91
 
81
92
  context 'when change index (same name) (3)' do
82
93
  let(:actual_dsl) {
83
- <<-RUBY
84
- create_table "salaries", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
94
+ erbh(<<-EOS, template_variables)
95
+ create_table "salaries", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
85
96
  t.integer "salary", limit: 4, null: false
86
97
  t.date "from_date", null: false
87
98
  t.date "to_date", null: false
88
99
  end
89
100
 
90
101
  add_index "salaries", ["salary", "emp_no"], name: "emp_no", using: :btree
91
- RUBY
102
+ EOS
92
103
  }
93
104
 
94
105
  let(:expected_dsl) {
95
- <<-RUBY
96
- create_table "salaries", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
106
+ erbh(<<-EOS, template_variables)
107
+ create_table "salaries", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
97
108
  t.integer "salary", limit: 4, null: false
98
109
  t.date "from_date", null: false
99
110
  t.date "to_date", null: false
100
111
  end
101
112
 
102
113
  add_index "salaries", ["from_date", "emp_no"], name: "emp_no", using: :btree
103
- RUBY
114
+ EOS
104
115
  }
105
116
 
106
117
  before { subject.diff(actual_dsl).migrate }
@@ -109,10 +120,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
109
120
  it {
110
121
  delta = subject.diff(expected_dsl)
111
122
  expect(delta.differ?).to be_truthy
112
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
123
+ expect(subject.dump).to match_fuzzy actual_dsl
113
124
  delta.migrate
114
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
125
+ expect(subject.dump).to match_fuzzy expected_dsl
115
126
  }
116
127
  end
117
128
  end
118
- end