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,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