localtower 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,6 +9,16 @@ FactoryGirl.define do
9
9
  ]
10
10
  end
11
11
 
12
+ factory :create_table_two, class: Hash do
13
+ migration_name "User"
14
+ migrations [
15
+ {
16
+ action: "create_table",
17
+ table_name: "users"
18
+ }
19
+ ]
20
+ end
21
+
12
22
  factory :add_column, class: Hash do
13
23
  migration_name "Post"
14
24
  migrations [
@@ -117,6 +127,17 @@ FactoryGirl.define do
117
127
  ]
118
128
  end
119
129
 
130
+ factory :belongs_to, class: Hash do
131
+ migration_name "Post"
132
+ migrations [
133
+ {
134
+ action: "belongs_to",
135
+ table_name: "posts",
136
+ belongs_to: "users",
137
+ }
138
+ ]
139
+ end
140
+
120
141
  factory :remove_index_to_column, class: Hash do
121
142
  migration_name "Post"
122
143
  migrations [
@@ -3,16 +3,8 @@ require 'spec_helper'
3
3
  module Localtower
4
4
  module Generators
5
5
  describe Migration do
6
-
7
- def migration_files
8
- Dir["#{Rails.root}/db/migrate/*"]
9
- end
10
-
11
- def last_migration
12
- migration_files.sort.last
13
- end
14
-
15
6
  before(:all) do
7
+ clean_files
16
8
  end
17
9
 
18
10
  after(:all) do
@@ -27,6 +19,15 @@ module Localtower
27
19
  expect(::Localtower::Tools.word_in_file?(last_migration, /create_table :posts/)).to eq(true)
28
20
  end
29
21
 
22
+ it 'create_table_two' do
23
+ data = attributes_for(:create_table_two)
24
+ data["run_migrate"] = true
25
+
26
+ generator = ::Localtower::Generators::Migration.new(data).run
27
+
28
+ expect(::Localtower::Tools.word_in_file?(last_migration, /create_table :users/)).to eq(true)
29
+ end
30
+
30
31
  it 'add_column' do
31
32
  data = attributes_for(:add_column)
32
33
  data["run_migrate"] = true
@@ -4,7 +4,8 @@ module Localtower
4
4
  module Generators
5
5
  describe Model do
6
6
 
7
- before(:each) do
7
+ before(:all) do
8
+ clean_files
8
9
  end
9
10
 
10
11
  after(:all) do
@@ -4,13 +4,41 @@ module Localtower
4
4
  module Generators
5
5
  describe Relation do
6
6
 
7
- before(:each) do
7
+ before(:all) do
8
+ clean_files
8
9
  end
9
10
 
10
11
  after(:all) do
11
12
  end
12
13
 
14
+ it 'belongs_to' do
15
+ data1 = attributes_for(:post_one)
16
+ data1["run_migrate"] = true
17
+ ::Localtower::Generators::Model.new(data1).run
18
+
19
+ data2 = attributes_for(:user_one)
20
+ data2["run_migrate"] = true
21
+ ::Localtower::Generators::Model.new(data2).run
22
+
23
+ data = attributes_for(:belongs_to)
24
+ data["run_migrate"] = true
25
+
26
+ generator = ::Localtower::Generators::Migration.new(data).run
27
+
28
+ expect(::Localtower::Tools.word_in_file?(last_migration, /add_reference :posts, :user, foreign_key: true, index: true/)).to eq(true)
29
+ expect(File.exist?("#{Rails.root}/app/models/post.rb")).to eq(true)
30
+ expect(File.exist?("#{Rails.root}/app/models/user.rb")).to eq(true)
31
+ expect(::Localtower::Tools.word_in_file?("#{Rails.root}/app/models/post.rb", /class Post/)).to eq(true)
32
+ expect(::Localtower::Tools.word_in_file?("#{Rails.root}/app/models/post.rb", /belongs_to/)).to eq(true)
33
+ expect(::Localtower::Tools.word_in_file?("#{Rails.root}/app/models/user.rb", /class User/)).to eq(true)
34
+ expect(::Localtower::Tools.word_in_file?("#{Rails.root}/app/models/user.rb", /has_many/)).to eq(true)
35
+
36
+ Dir["#{Rails.root}/app/models/**/*.*"].each { |model_file| File.delete(model_file) }
37
+ end
38
+
13
39
  it 'create a relation' do
40
+ clean_files
41
+
14
42
  ::Localtower::Generators::Model.new(attributes_for(:post_one)).run
15
43
  ::Localtower::Generators::Model.new(attributes_for(:user_one)).run
16
44
 
data/spec/spec_helper.rb CHANGED
@@ -4,6 +4,14 @@ def clean_files
4
4
  Dir["#{Rails.root}/app/models/**/*.*"].each { |model_file| File.delete(model_file) }
5
5
  end
6
6
 
7
+ def migration_files
8
+ Dir["#{Rails.root}/db/migrate/*"]
9
+ end
10
+
11
+ def last_migration
12
+ migration_files.sort.last
13
+ end
14
+
7
15
  #============================
8
16
  ENV['RAILS_ENV'] = 'test'
9
17
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: localtower
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damian Le Nouaille
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-08 00:00:00.000000000 Z
11
+ date: 2017-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.1
19
+ version: 4.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 5.0.1
26
+ version: 4.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor
29
29
  requirement: !ruby/object:Gem::Requirement