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,15 +1,26 @@
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 add column' do
4
15
  let(:actual_dsl) {
5
- <<-RUBY
6
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
16
+ erbh(<<-EOS, template_variables)
17
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
18
  t.string "name", limit: 255, default: "", null: false
8
19
  end
9
20
 
10
21
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
11
22
 
12
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
23
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
13
24
  t.string "dept_name", limit: 40, null: false
14
25
  end
15
26
 
@@ -35,14 +46,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
35
46
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
36
47
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
37
48
 
38
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
49
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
39
50
  t.integer "emp_no", limit: 4, null: false
40
51
  t.integer "club_id", limit: 4, null: false
41
52
  end
42
53
 
43
54
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
44
55
 
45
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
56
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
46
57
  t.date "birth_date", null: false
47
58
  t.string "first_name", limit: 14, null: false
48
59
  t.string "last_name", limit: 16, null: false
@@ -67,18 +78,18 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
78
  end
68
79
 
69
80
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
70
- RUBY
81
+ EOS
71
82
  }
72
83
 
73
84
  let(:expected_dsl) {
74
- <<-RUBY
75
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
85
+ erbh(<<-EOS, template_variables)
86
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
76
87
  t.string "name", limit: 255, default: "", null: false
77
88
  end
78
89
 
79
90
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
80
91
 
81
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
92
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
82
93
  t.string "dept_name", limit: 40, null: false
83
94
  end
84
95
 
@@ -104,7 +115,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
104
115
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
105
116
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
106
117
 
107
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
118
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
108
119
  t.integer "emp_no", limit: 4, null: false
109
120
  t.integer "club_id", limit: 4, null: false
110
121
  t.string "any_col", limit: 255, null: false
@@ -112,7 +123,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
112
123
 
113
124
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
114
125
 
115
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
126
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
116
127
  t.date "birth_date", null: false
117
128
  t.string "first_name", limit: 14, null: false
118
129
  t.string "last_name", limit: 16, null: false
@@ -139,7 +150,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
139
150
  end
140
151
 
141
152
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
142
- RUBY
153
+ EOS
143
154
  }
144
155
 
145
156
  before { subject.diff(actual_dsl).migrate }
@@ -148,10 +159,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
148
159
  it {
149
160
  delta = subject.diff(expected_dsl)
150
161
  expect(delta.differ?).to be_truthy
151
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
162
+ expect(subject.dump).to match_fuzzy actual_dsl
152
163
  delta.migrate(alter_extra: 'FORCE')
153
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip
164
+ expect(subject.dump).to match_fuzzy expected_dsl
154
165
  }
155
166
  end
156
167
  end
157
- end
@@ -1,15 +1,26 @@
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 add column' do
4
15
  let(:actual_dsl) {
5
- <<-RUBY
6
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
16
+ erbh(<<-EOS, template_variables)
17
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
18
  t.string "name", limit: 255, default: "", null: false
8
19
  end
9
20
 
10
21
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
11
22
 
12
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
23
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
13
24
  t.string "dept_name", limit: 40, null: false
14
25
  end
15
26
 
@@ -35,14 +46,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
35
46
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
36
47
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
37
48
 
38
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
49
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
39
50
  t.integer "emp_no", limit: 4, null: false
40
51
  t.integer "club_id", limit: 4, null: false
41
52
  end
42
53
 
43
54
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
44
55
 
45
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
56
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
46
57
  t.date "birth_date", null: false
47
58
  t.string "first_name", limit: 14, null: false
48
59
  t.string "last_name", limit: 16, null: false
@@ -67,18 +78,18 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
78
  end
68
79
 
69
80
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
70
- RUBY
81
+ EOS
71
82
  }
72
83
 
73
84
  let(:expected_dsl) {
74
- <<-RUBY
75
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
85
+ erbh(<<-EOS, template_variables)
86
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
76
87
  t.string "name", limit: 255, default: "", null: false
77
88
  end
78
89
 
79
90
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
80
91
 
81
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
92
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
82
93
  t.string "dept_name", limit: 40, null: false
83
94
  end
84
95
 
@@ -104,7 +115,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
104
115
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
105
116
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
106
117
 
107
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
118
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
108
119
  t.integer "emp_no", limit: 4, null: false
109
120
  t.integer "club_id", limit: 4, null: false
110
121
  t.string "any_col", limit: 255, null: false
@@ -112,7 +123,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
112
123
 
113
124
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
114
125
 
115
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
126
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
116
127
  t.date "birth_date", null: false
117
128
  t.string "first_name", limit: 14, null: false
118
129
  t.string "last_name", limit: 16, null: false
@@ -139,7 +150,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
139
150
  end
140
151
 
141
152
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
142
- RUBY
153
+ EOS
143
154
  }
144
155
 
145
156
  before { subject.diff(actual_dsl).migrate }
@@ -148,10 +159,10 @@ describe 'Ridgepole::Client#diff -> migrate' do
148
159
  it {
149
160
  delta = subject.diff(expected_dsl)
150
161
  expect(delta.differ?).to be_truthy
151
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
162
+ expect(subject.dump).to match_fuzzy actual_dsl
152
163
 
153
164
  script = <<-EOS
154
- echo "$1" | mysql -uroot #{TEST_SCHEMA}
165
+ echo "$1" | #{MYSQL_CLI} #{TEST_SCHEMA}
155
166
  EOS
156
167
 
157
168
  tempfile(File.basename(__FILE__), script) do |path|
@@ -159,8 +170,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
159
170
  delta.migrate(external_script: path)
160
171
  end
161
172
 
162
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip
173
+ expect(subject.dump).to match_fuzzy expected_dsl
163
174
  }
164
175
  end
165
176
  end
166
- end
@@ -1,8 +1,19 @@
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 column (no change)' do
4
15
  let(:actual_dsl) {
5
- <<-RUBY
16
+ <<-EOS
6
17
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
7
18
  t.date "birth_date", null: false
8
19
  t.string "first_name", limit: 14, null: false
@@ -12,11 +23,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
12
23
  end
13
24
 
14
25
  add_index "employees", ["gender"], name: "gender", using: :btree
15
- RUBY
26
+ EOS
16
27
  }
17
28
 
18
29
  let(:expected_dsl) {
19
- <<-RUBY
30
+ <<-EOS
20
31
  create_table :employees, primary_key: :emp_no, force: :cascade do |t|
21
32
  t.date "birth_date", null: false
22
33
  t.string "first_name", limit: 14, null: false
@@ -26,7 +37,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
26
37
  end
27
38
 
28
39
  add_index :employees, :gender, name: :gender, using: :btree
29
- RUBY
40
+ EOS
30
41
  }
31
42
 
32
43
  before { subject.diff(actual_dsl).migrate }
@@ -40,8 +51,8 @@ describe 'Ridgepole::Client#diff -> migrate' do
40
51
 
41
52
  context 'when change column (change)' do
42
53
  let(:actual_dsl) {
43
- <<-RUBY
44
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
54
+ erbh(<<-EOS, template_variables)
55
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
45
56
  t.date "birth_date", null: false
46
57
  t.string "first_name", limit: 14, null: false
47
58
  t.string "last_name", limit: 16, null: false
@@ -50,11 +61,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
50
61
  end
51
62
 
52
63
  add_index "employees", ["gender"], name: "gender", using: :btree
53
- RUBY
64
+ EOS
54
65
  }
55
66
 
56
67
  let(:dsl) {
57
- <<-RUBY
68
+ <<-EOS
58
69
  create_table :employees, primary_key: :emp_no, force: :cascade do |t|
59
70
  t.date "birth_date", null: false
60
71
  t.string "first_name", limit: 14, null: false
@@ -64,12 +75,12 @@ describe 'Ridgepole::Client#diff -> migrate' do
64
75
  end
65
76
 
66
77
  add_index :employees, :last_name, name: :last_name, using: :btree
67
- RUBY
78
+ EOS
68
79
  }
69
80
 
70
81
  let(:expected_dsl) {
71
- <<-RUBY
72
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
82
+ erbh(<<-EOS, template_variables)
83
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
73
84
  t.date "birth_date", null: false
74
85
  t.string "first_name", limit: 14, null: false
75
86
  t.string "last_name", limit: 16, null: false
@@ -78,7 +89,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
78
89
  end
79
90
 
80
91
  add_index "employees", ["last_name"], name: "last_name", using: :btree
81
- RUBY
92
+ EOS
82
93
  }
83
94
 
84
95
  before { subject.diff(actual_dsl).migrate }
@@ -87,10 +98,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
87
98
  it {
88
99
  delta = subject.diff(dsl)
89
100
  expect(delta.differ?).to be_truthy
90
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
101
+ expect(subject.dump).to match_fuzzy actual_dsl
91
102
  delta.migrate
92
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/(\s*,\s*unsigned: false)?\s*,\s*null: true/, '')
103
+ expect(subject.dump).to match_fuzzy expected_dsl
93
104
  }
94
105
  end
95
106
  end
96
- end
@@ -1,8 +1,19 @@
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 use timestamps (no change)' do
4
15
  let(:actual_dsl) {
5
- <<-RUBY
16
+ <<-EOS
6
17
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
7
18
  t.date "birth_date", null: false
8
19
  t.string "first_name", limit: 14, null: false
@@ -12,11 +23,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
12
23
  t.datetime "created_at", null: false
13
24
  t.datetime "updated_at", null: false
14
25
  end
15
- RUBY
26
+ EOS
16
27
  }
17
28
 
18
29
  let(:expected_dsl) {
19
- <<-RUBY
30
+ <<-EOS
20
31
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
21
32
  t.date "birth_date", null: false
22
33
  t.string "first_name", limit: 14, null: false
@@ -25,7 +36,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
25
36
  t.date "hire_date", null: false
26
37
  t.timestamps
27
38
  end
28
- RUBY
39
+ EOS
29
40
  }
30
41
 
31
42
  before { subject.diff(actual_dsl).migrate }
@@ -39,19 +50,19 @@ describe 'Ridgepole::Client#diff -> migrate' do
39
50
 
40
51
  context 'when use timestamps (change)' do
41
52
  let(:actual_dsl) {
42
- <<-RUBY
43
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
53
+ erbh(<<-EOS, template_variables)
54
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
44
55
  t.date "birth_date", null: false
45
56
  t.string "first_name", limit: 14, null: false
46
57
  t.string "last_name", limit: 16, null: false
47
58
  t.string "gender", limit: 1, null: false
48
59
  t.date "hire_date", null: false
49
60
  end
50
- RUBY
61
+ EOS
51
62
  }
52
63
 
53
64
  let(:dsl) {
54
- <<-RUBY
65
+ <<-EOS
55
66
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
56
67
  t.date "birth_date", null: false
57
68
  t.string "first_name", limit: 14, null: false
@@ -60,12 +71,12 @@ describe 'Ridgepole::Client#diff -> migrate' do
60
71
  t.date "hire_date", null: false
61
72
  t.timestamps
62
73
  end
63
- RUBY
74
+ EOS
64
75
  }
65
76
 
66
77
  let(:expected_dsl) {
67
- <<-RUBY
68
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
78
+ erbh(<<-EOS, template_variables)
79
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
69
80
  t.date "birth_date", null: false
70
81
  t.string "first_name", limit: 14, null: false
71
82
  t.string "last_name", limit: 16, null: false
@@ -74,7 +85,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
74
85
  t.datetime "created_at", null: false
75
86
  t.datetime "updated_at", null: false
76
87
  end
77
- RUBY
88
+ EOS
78
89
  }
79
90
 
80
91
  before { subject.diff(actual_dsl).migrate }
@@ -83,15 +94,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
83
94
  it {
84
95
  delta = subject.diff(dsl)
85
96
  expect(delta.differ?).to be_truthy
86
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
97
+ expect(subject.dump).to match_fuzzy actual_dsl
87
98
  delta.migrate
88
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/(\s*,\s*unsigned: false)?\s*,\s*null: true/, '')
99
+ expect(subject.dump).to match_fuzzy expected_dsl
89
100
  }
90
101
  end
91
102
 
92
103
  context 'when use references (no change)' do
93
104
  let(:actual_dsl) {
94
- <<-RUBY
105
+ <<-EOS
95
106
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
96
107
  t.date "birth_date", null: false
97
108
  t.string "first_name", limit: 14, null: false
@@ -101,11 +112,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
101
112
  t.integer "products_id"
102
113
  t.integer "user_id"
103
114
  end
104
- RUBY
115
+ EOS
105
116
  }
106
117
 
107
118
  let(:expected_dsl) {
108
- <<-RUBY
119
+ <<-EOS
109
120
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
110
121
  t.date "birth_date", null: false
111
122
  t.string "first_name", limit: 14, null: false
@@ -114,7 +125,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
114
125
  t.date "hire_date", null: false
115
126
  t.references :products, :user
116
127
  end
117
- RUBY
128
+ EOS
118
129
  }
119
130
 
120
131
  before { subject.diff(actual_dsl).migrate }
@@ -128,7 +139,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
128
139
 
129
140
  context 'when use references with polymorphic (no change)' do
130
141
  let(:actual_dsl) {
131
- <<-RUBY
142
+ <<-EOS
132
143
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
133
144
  t.date "birth_date", null: false
134
145
  t.string "first_name", limit: 14, null: false
@@ -140,11 +151,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
140
151
  t.integer "user_id"
141
152
  t.string "user_type"
142
153
  end
143
- RUBY
154
+ EOS
144
155
  }
145
156
 
146
157
  let(:expected_dsl) {
147
- <<-RUBY
158
+ <<-EOS
148
159
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
149
160
  t.date "birth_date", null: false
150
161
  t.string "first_name", limit: 14, null: false
@@ -153,7 +164,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
153
164
  t.date "hire_date", null: false
154
165
  t.references :products, :user, polymorphic: true
155
166
  end
156
- RUBY
167
+ EOS
157
168
  }
158
169
 
159
170
  before { subject.diff(actual_dsl).migrate }
@@ -167,19 +178,19 @@ describe 'Ridgepole::Client#diff -> migrate' do
167
178
 
168
179
  context 'when use references (change)' do
169
180
  let(:actual_dsl) {
170
- <<-RUBY
171
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
181
+ erbh(<<-EOS, template_variables)
182
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
172
183
  t.date "birth_date", null: false
173
184
  t.string "first_name", limit: 14, null: false
174
185
  t.string "last_name", limit: 16, null: false
175
186
  t.string "gender", limit: 1, null: false
176
187
  t.date "hire_date", null: false
177
188
  end
178
- RUBY
189
+ EOS
179
190
  }
180
191
 
181
192
  let(:dsl) {
182
- <<-RUBY
193
+ <<-EOS
183
194
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
184
195
  t.date "birth_date", null: false
185
196
  t.string "first_name", limit: 14, null: false
@@ -188,12 +199,12 @@ describe 'Ridgepole::Client#diff -> migrate' do
188
199
  t.date "hire_date", null: false
189
200
  t.references :products, :user
190
201
  end
191
- RUBY
202
+ EOS
192
203
  }
193
204
 
194
205
  let(:expected_dsl) {
195
- <<-RUBY
196
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
206
+ erbh(<<-EOS, template_variables)
207
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
197
208
  t.date "birth_date", null: false
198
209
  t.string "first_name", limit: 14, null: false
199
210
  t.string "last_name", limit: 16, null: false
@@ -202,7 +213,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
202
213
  t.integer "products_id", limit: 4
203
214
  t.integer "user_id", limit: 4
204
215
  end
205
- RUBY
216
+ EOS
206
217
  }
207
218
 
208
219
  before { subject.diff(actual_dsl).migrate }
@@ -211,27 +222,27 @@ describe 'Ridgepole::Client#diff -> migrate' do
211
222
  it {
212
223
  delta = subject.diff(dsl)
213
224
  expect(delta.differ?).to be_truthy
214
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
225
+ expect(subject.dump).to match_fuzzy actual_dsl
215
226
  delta.migrate
216
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/(\s*,\s*unsigned: false)?\s*,\s*null: true/, '')
227
+ expect(subject.dump).to match_fuzzy expected_dsl
217
228
  }
218
229
  end
219
230
 
220
231
  context 'when use references with polymorphic (change)' do
221
232
  let(:actual_dsl) {
222
- <<-RUBY
223
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
233
+ erbh(<<-EOS, template_variables)
234
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
224
235
  t.date "birth_date", null: false
225
236
  t.string "first_name", limit: 14, null: false
226
237
  t.string "last_name", limit: 16, null: false
227
238
  t.string "gender", limit: 1, null: false
228
239
  t.date "hire_date", null: false
229
240
  end
230
- RUBY
241
+ EOS
231
242
  }
232
243
 
233
244
  let(:dsl) {
234
- <<-RUBY
245
+ <<-EOS
235
246
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
236
247
  t.date "birth_date", null: false
237
248
  t.string "first_name", limit: 14, null: false
@@ -240,12 +251,12 @@ describe 'Ridgepole::Client#diff -> migrate' do
240
251
  t.date "hire_date", null: false
241
252
  t.references :products, :user, polymorphic: true
242
253
  end
243
- RUBY
254
+ EOS
244
255
  }
245
256
 
246
257
  let(:expected_dsl) {
247
- <<-RUBY
248
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
258
+ erbh(<<-EOS, template_variables)
259
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
249
260
  t.date "birth_date", null: false
250
261
  t.string "first_name", limit: 14, null: false
251
262
  t.string "last_name", limit: 16, null: false
@@ -256,7 +267,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
256
267
  t.integer "user_id", limit: 4
257
268
  t.string "user_type", limit: 255
258
269
  end
259
- RUBY
270
+ EOS
260
271
  }
261
272
 
262
273
  before { subject.diff(actual_dsl).migrate }
@@ -265,10 +276,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
265
276
  it {
266
277
  delta = subject.diff(dsl)
267
278
  expect(delta.differ?).to be_truthy
268
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
279
+ expect(subject.dump).to match_fuzzy actual_dsl
269
280
  delta.migrate
270
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/(\s*,\s*unsigned: false)?\s*,\s*null: true/, '')
281
+ expect(subject.dump).to match_fuzzy expected_dsl
271
282
  }
272
283
  end
273
284
  end
274
- end