ridgepole 0.6.4 → 0.6.5.beta

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.
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,8 +1,7 @@
1
- if postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when rename table' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "clubs", force: :cascade do |t|
7
6
  t.string "name", limit: 255, default: "", null: false
8
7
  end
@@ -66,11 +65,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
66
65
  end
67
66
 
68
67
  add_index "titles", ["emp_no"], name: "idx_titles_emp_no", using: :btree
69
- RUBY
68
+ EOS
70
69
  }
71
70
 
72
71
  let(:expected_dsl) {
73
- <<-RUBY
72
+ <<-EOS
74
73
  create_table "clubs", force: :cascade do |t|
75
74
  t.string "name", limit: 255, default: "", null: false
76
75
  end
@@ -134,7 +133,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
134
133
  end
135
134
 
136
135
  add_index "titles", ["emp_no"], name: "idx_titles_emp_no", using: :btree
137
- RUBY
136
+ EOS
138
137
  }
139
138
 
140
139
  before { subject.diff(actual_dsl).migrate }
@@ -143,23 +142,23 @@ describe 'Ridgepole::Client#diff -> migrate' do
143
142
  it {
144
143
  delta = subject.diff(expected_dsl)
145
144
  expect(delta.differ?).to be_truthy
146
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
145
+ expect(subject.dump).to match_fuzzy actual_dsl
147
146
  delta.migrate
148
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/, renamed_from: 'employees'/, '')
147
+ expect(subject.dump).to match_fuzzy expected_dsl.gsub(/, renamed_from: 'employees'/, '')
149
148
  }
150
149
 
151
150
  it {
152
151
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true)
153
152
  expect(delta.differ?).to be_truthy
154
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
153
+ expect(delta.script).to match_fuzzy <<-EOS
155
154
  rename_table("employees2", "employees")
156
- RUBY
155
+ EOS
157
156
  }
158
157
  end
159
158
 
160
159
  context 'when rename table (dry-run)' do
161
160
  let(:actual_dsl) {
162
- <<-RUBY
161
+ <<-EOS
163
162
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
164
163
  t.date "birth_date", null: false
165
164
  t.string "first_name", limit: 14, null: false
@@ -168,11 +167,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
168
167
  end
169
168
 
170
169
  add_index "employees", ["first_name"], name: "first_name", using: :btree
171
- RUBY
170
+ EOS
172
171
  }
173
172
 
174
173
  let(:expected_dsl) {
175
- <<-RUBY
174
+ <<-EOS
176
175
  create_table "employees2", primary_key: "emp_no", force: :cascade, renamed_from: 'employees' do |t|
177
176
  t.date "birth_date", null: false
178
177
  t.string "first_name", limit: 14, null: false
@@ -181,7 +180,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
181
180
  end
182
181
 
183
182
  add_index "employees2", ["first_name"], name: "first_name", using: :btree
184
- RUBY
183
+ EOS
185
184
  }
186
185
 
187
186
  before { subject.diff(actual_dsl).migrate }
@@ -190,10 +189,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
190
189
  it {
191
190
  delta = subject.diff(expected_dsl)
192
191
  expect(delta.differ?).to be_truthy
193
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
192
+ expect(subject.dump).to match_fuzzy actual_dsl
194
193
  delta.migrate(noop: true)
195
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
194
+ expect(subject.dump).to match_fuzzy actual_dsl
196
195
  }
197
196
  end
198
197
  end
199
- end
@@ -1,8 +1,7 @@
1
- if postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when database and definition are same' do
4
3
  let(:dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "clubs", force: :cascade do |t|
7
6
  t.string "name", limit: 255, default: "", null: false
8
7
  end
@@ -66,7 +65,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
66
65
  end
67
66
 
68
67
  add_index "titles", ["emp_no"], name: "idx_titles_emp_no", using: :btree
69
- RUBY
68
+ EOS
70
69
  }
71
70
 
72
71
  before { restore_tables }
@@ -75,10 +74,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
75
74
  it {
76
75
  delta = subject.diff(dsl)
77
76
  expect(delta.differ?).to be_falsey
78
- expect(subject.dump).to eq dsl.strip_heredoc.strip
77
+ expect(subject.dump).to match_fuzzy dsl
79
78
  delta.migrate
80
- expect(subject.dump).to eq dsl.strip_heredoc.strip
79
+ expect(subject.dump).to match_fuzzy dsl
81
80
  }
82
81
  end
83
82
  end
84
- end
@@ -1,8 +1,7 @@
1
- if postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when change fk' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "parent", force: :cascade do |t|
7
6
  end
8
7
 
@@ -13,11 +12,11 @@ end
13
12
  add_index "child", ["parent_id"], name: "par_id", using: :btree
14
13
 
15
14
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc", on_delete: :cascade
16
- RUBY
15
+ EOS
17
16
  }
18
17
 
19
18
  let(:sorted_actual_dsl) {
20
- <<-RUBY
19
+ <<-EOS
21
20
  create_table "child", force: :cascade do |t|
22
21
  t.integer "parent_id"
23
22
  end
@@ -28,11 +27,11 @@ create_table "parent", force: :cascade do |t|
28
27
  end
29
28
 
30
29
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc", on_delete: :cascade
31
- RUBY
30
+ EOS
32
31
  }
33
32
 
34
33
  let(:expected_dsl) {
35
- <<-RUBY
34
+ <<-EOS
36
35
  create_table "child", force: :cascade do |t|
37
36
  t.integer "parent_id"
38
37
  end
@@ -43,7 +42,7 @@ create_table "parent", force: :cascade do |t|
43
42
  end
44
43
 
45
44
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
46
- RUBY
45
+ EOS
47
46
  }
48
47
 
49
48
  before { subject.diff(actual_dsl).migrate }
@@ -53,10 +52,9 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
53
52
  it {
54
53
  delta = subject.diff(expected_dsl)
55
54
  expect(delta.differ?).to be_truthy
56
- expect(subject.dump.delete_empty_lines).to eq sorted_actual_dsl.strip_heredoc.strip.delete_empty_lines
55
+ expect(subject.dump).to match_fuzzy sorted_actual_dsl
57
56
  delta.migrate
58
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
57
+ expect(subject.dump).to match_fuzzy expected_dsl
59
58
  }
60
59
  end
61
60
  end
62
- end
@@ -1,8 +1,7 @@
1
- if postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when create fk' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "child", force: :cascade do |t|
7
6
  t.integer "parent_id"
8
7
  end
@@ -11,14 +10,14 @@ add_index "child", ["parent_id"], name: "par_id", using: :btree
11
10
 
12
11
  create_table "parent", force: :cascade do |t|
13
12
  end
14
- RUBY
13
+ EOS
15
14
  }
16
15
 
17
16
  let(:expected_dsl) {
18
- actual_dsl + (<<-RUBY)
17
+ actual_dsl + (<<-EOS)
19
18
 
20
19
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
21
- RUBY
20
+ EOS
22
21
  }
23
22
 
24
23
  before { subject.diff(actual_dsl).migrate }
@@ -27,34 +26,34 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
27
26
  it {
28
27
  delta = subject.diff(expected_dsl)
29
28
  expect(delta.differ?).to be_truthy
30
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
29
+ expect(subject.dump).to match_fuzzy actual_dsl
31
30
  delta.migrate
32
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
31
+ expect(subject.dump).to match_fuzzy expected_dsl
33
32
  }
34
33
 
35
34
  it {
36
35
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dumb_with_default_fk_name: true)
37
36
  expect(delta.differ?).to be_truthy
38
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
37
+ expect(delta.script).to match_fuzzy <<-EOS
39
38
  remove_foreign_key("child", {:name=>"fk_rails_e74ce85cbc"})
40
- RUBY
39
+ EOS
41
40
  }
42
41
 
43
42
  it {
44
43
  delta = client(bulk_change: true, dumb_with_default_fk_name: true).diff(expected_dsl)
45
44
  expect(delta.differ?).to be_truthy
46
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
47
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
45
+ expect(subject.dump).to match_fuzzy actual_dsl
46
+ expect(delta.script).to match_fuzzy <<-EOS
48
47
  add_foreign_key("child", "parent", {:name=>"fk_rails_e74ce85cbc"})
49
- RUBY
48
+ EOS
50
49
  delta.migrate
51
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
50
+ expect(subject.dump).to match_fuzzy expected_dsl
52
51
  }
53
52
  end
54
53
 
55
54
  context 'when create fk when create table' do
56
55
  let(:dsl) {
57
- <<-RUBY
56
+ <<-EOS
58
57
  # Define parent before child
59
58
  create_table "parent", force: :cascade do |t|
60
59
  end
@@ -66,11 +65,11 @@ end
66
65
  add_index "child", ["parent_id"], name: "par_id", using: :btree
67
66
 
68
67
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
69
- RUBY
68
+ EOS
70
69
  }
71
70
 
72
71
  let(:sorted_dsl) {
73
- <<-RUBY
72
+ <<-EOS
74
73
  create_table "child", force: :cascade do |t|
75
74
  t.integer "parent_id"
76
75
  end
@@ -81,7 +80,7 @@ create_table "parent", force: :cascade do |t|
81
80
  end
82
81
 
83
82
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
84
- RUBY
83
+ EOS
85
84
  }
86
85
 
87
86
  before { client.diff('').migrate }
@@ -90,15 +89,15 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
90
89
  it {
91
90
  delta = subject.diff(dsl)
92
91
  expect(delta.differ?).to be_truthy
93
- expect(subject.dump.strip).to eq ''
92
+ expect(subject.dump).to match_fuzzy ''
94
93
  delta.migrate
95
- expect(subject.dump.delete_empty_lines).to eq sorted_dsl.strip_heredoc.strip.delete_empty_lines
94
+ expect(subject.dump).to match_fuzzy sorted_dsl
96
95
  }
97
96
  end
98
97
 
99
98
  context 'already defined' do
100
99
  let(:dsl) {
101
- <<-RUBY
100
+ <<-EOS
102
101
  # Define parent before child
103
102
  create_table "parent", force: :cascade do |t|
104
103
  end
@@ -112,7 +111,7 @@ add_index "child", ["parent_id"], name: "par_id", using: :btree
112
111
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
113
112
 
114
113
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
115
- RUBY
114
+ EOS
116
115
  }
117
116
 
118
117
  subject { client(dumb_with_default_fk_name: true) }
@@ -126,7 +125,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
126
125
 
127
126
  context 'no name' do
128
127
  let(:dsl) {
129
- <<-RUBY
128
+ <<-EOS
130
129
  # Define parent before child
131
130
  create_table "parent", force: :cascade do |t|
132
131
  end
@@ -138,7 +137,7 @@ end
138
137
  add_index "child", ["parent_id"], name: "par_id", using: :btree
139
138
 
140
139
  add_foreign_key "child", "parent"
141
- RUBY
140
+ EOS
142
141
  }
143
142
 
144
143
  subject { client(dumb_with_default_fk_name: true) }
@@ -152,13 +151,13 @@ add_foreign_key "child", "parent"
152
151
 
153
152
  context 'orphan fk' do
154
153
  let(:dsl) {
155
- <<-RUBY
154
+ <<-EOS
156
155
  # Define parent before child
157
156
  create_table "parent", force: :cascade do |t|
158
157
  end
159
158
 
160
159
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
161
- RUBY
160
+ EOS
162
161
  }
163
162
 
164
163
  subject { client(dumb_with_default_fk_name: true) }
@@ -170,4 +169,3 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
170
169
  }
171
170
  end
172
171
  end
173
- end
@@ -1,8 +1,7 @@
1
- if postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when drop fk' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "parent", force: :cascade do |t|
7
6
  end
8
7
 
@@ -13,18 +12,18 @@ end
13
12
  add_index "child", ["parent_id"], name: "par_id", using: :btree
14
13
 
15
14
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
16
- RUBY
15
+ EOS
17
16
  }
18
17
 
19
18
  let(:sorted_actual_dsl) {
20
- expected_dsl + (<<-RUBY)
19
+ expected_dsl + (<<-EOS)
21
20
 
22
21
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
23
- RUBY
22
+ EOS
24
23
  }
25
24
 
26
25
  let(:expected_dsl) {
27
- <<-RUBY
26
+ <<-EOS
28
27
  create_table "child", force: :cascade do |t|
29
28
  t.integer "parent_id"
30
29
  end
@@ -33,7 +32,7 @@ add_index "child", ["parent_id"], name: "par_id", using: :btree
33
32
 
34
33
  create_table "parent", force: :cascade do |t|
35
34
  end
36
- RUBY
35
+ EOS
37
36
  }
38
37
 
39
38
  before { subject.diff(actual_dsl).migrate }
@@ -42,34 +41,34 @@ end
42
41
  it {
43
42
  delta = subject.diff(expected_dsl)
44
43
  expect(delta.differ?).to be_truthy
45
- expect(subject.dump).to eq sorted_actual_dsl.strip_heredoc.strip
44
+ expect(subject.dump).to match_fuzzy sorted_actual_dsl
46
45
  delta.migrate
47
- expect(subject.dump.each_line.select {|i| i !~ /\A\Z/ }.join).to eq expected_dsl.strip_heredoc.strip.each_line.select {|i| i !~ /\A\Z/ }.join
46
+ expect(subject.dump).to match_fuzzy expected_dsl
48
47
  }
49
48
 
50
49
  it {
51
50
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dumb_with_default_fk_name: true)
52
51
  expect(delta.differ?).to be_truthy
53
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
52
+ expect(delta.script).to match_fuzzy <<-EOS
54
53
  add_foreign_key("child", "parent", {:name=>"fk_rails_e74ce85cbc"})
55
- RUBY
54
+ EOS
56
55
  }
57
56
 
58
57
  it {
59
58
  delta = client(bulk_change: true, dumb_with_default_fk_name: true).diff(expected_dsl)
60
59
  expect(delta.differ?).to be_truthy
61
- expect(subject.dump).to eq sorted_actual_dsl.strip_heredoc.strip
62
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
60
+ expect(subject.dump).to match_fuzzy sorted_actual_dsl
61
+ expect(delta.script).to match_fuzzy <<-EOS
63
62
  remove_foreign_key("child", {:name=>"fk_rails_e74ce85cbc"})
64
- RUBY
63
+ EOS
65
64
  delta.migrate
66
- expect(subject.dump.each_line.select {|i| i !~ /\A\Z/ }.join).to eq expected_dsl.strip_heredoc.strip.each_line.select {|i| i !~ /\A\Z/ }.join
65
+ expect(subject.dump).to match_fuzzy expected_dsl
67
66
  }
68
67
  end
69
68
 
70
69
  context 'when drop fk when drop table' do
71
70
  let(:dsl) {
72
- <<-RUBY
71
+ <<-EOS
73
72
  create_table "parent", force: :cascade do |t|
74
73
  end
75
74
 
@@ -81,11 +80,11 @@ end
81
80
  add_index "child", ["parent_id"], name: "par_id", using: :btree
82
81
 
83
82
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
84
- RUBY
83
+ EOS
85
84
  }
86
85
 
87
86
  let(:sorted_dsl) {
88
- <<-RUBY
87
+ <<-EOS
89
88
  create_table "child", force: :cascade do |t|
90
89
  t.integer "parent_id"
91
90
  end
@@ -96,7 +95,7 @@ create_table "parent", force: :cascade do |t|
96
95
  end
97
96
 
98
97
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
99
- RUBY
98
+ EOS
100
99
  }
101
100
 
102
101
  before { subject.diff(dsl).migrate }
@@ -105,10 +104,9 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
105
104
  it {
106
105
  delta = subject.diff('')
107
106
  expect(delta.differ?).to be_truthy
108
- expect(subject.dump).to eq sorted_dsl.strip_heredoc.strip
107
+ expect(subject.dump).to match_fuzzy sorted_dsl
109
108
  delta.migrate
110
- expect(subject.dump.strip).to eq ''
109
+ expect(subject.dump).to match_fuzzy ''
111
110
  }
112
111
  end
113
112
  end
114
- end
@@ -0,0 +1,9 @@
1
+ if ENV['TRAVIS']
2
+ require 'simplecov'
3
+ require 'coveralls'
4
+
5
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
6
+ SimpleCov.start do
7
+ add_filter "spec/"
8
+ end
9
+ end
@@ -0,0 +1,24 @@
1
+ module SpecCondition
2
+ class << self
3
+ def postgresql?
4
+ ENV['POSTGRESQL'] == '1'
5
+ end
6
+
7
+ def mysql_awesome_enabled?
8
+ ENV['ENABLE_MYSQL_AWESOME'] == '1'
9
+ end
10
+
11
+ def activerecord_5?
12
+ ENV['BUNDLE_GEMFILE'] =~ /activerecord_5/
13
+ end
14
+
15
+ def debug?
16
+ ENV['DEBUG'] == '1'
17
+ end
18
+ end
19
+
20
+ def condition(*conds)
21
+ conds.all? {|c| SpecCondition.send("#{c}?") }
22
+ end
23
+ end
24
+ include SpecCondition
@@ -0,0 +1,18 @@
1
+ TEST_MYSQL_HOST = '127.0.0.1'
2
+ TEST_MYSQL_PORT = 3306
3
+ TEST_MYSQL_USER = 'root'
4
+ TEST_MYSQL_PASS = 'password'
5
+
6
+ MYSQL_CLI = "MYSQL_PWD=#{TEST_MYSQL_PASS} mysql -h #{TEST_MYSQL_HOST} -P #{TEST_MYSQL_PORT} -u #{TEST_MYSQL_USER}"
7
+
8
+ TEST_PG_HOST = '127.0.0.1'
9
+ TEST_PG_PORT = 5432
10
+ TEST_PG_USER = 'postgres'
11
+ TEST_PG_PASS = 'password'
12
+
13
+ PG_CLI_OPTS = "PGPASSWORD=#{TEST_PG_PASS} %s -h #{TEST_PG_HOST} -p #{TEST_PG_PORT} -U #{TEST_PG_USER}"
14
+ PG_PSQL = PG_CLI_OPTS % 'psql'
15
+ PG_CREATEDB = PG_CLI_OPTS % 'createdb'
16
+ PG_DUMP = PG_CLI_OPTS % 'pg_dump'
17
+
18
+ TEST_SCHEMA = 'ridgepole_test'