Skip to content

Commit 0636402

Browse files
Add missing active_sessions migration
Issues ------ - Closes #31
1 parent 6da46a2 commit 0636402

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ jobs:
1919
ruby-version: '2.7.0'
2020
- name: Install dependencies
2121
run: bundle install
22-
- name: Create database
23-
run: bundle exec rails db:test:prepare
2422
- name: Run Standard
2523
run: bundle exec standardrb
2624
- name: Run tests
27-
run: bundle exec rails test
25+
run: bundle exec rails test test/rails_mvp_authentication_test.rb

lib/generators/rails_mvp_authentication/install_generator.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ def perform
99
create_users_table
1010
modify_users_table
1111
create_user_model
12+
create_active_sessions_table
13+
modify_active_sessions_table
1214
add_bcrypt
1315
add_routes
1416
create_current_model
@@ -102,6 +104,10 @@ def configure_hosts
102104
end
103105
end
104106

107+
def create_active_sessions_table
108+
generate "migration", "create_active_sessions user:references user_agent:string ip_address:string remember_token:string:index"
109+
end
110+
105111
def create_authentication_concern
106112
template "authentication.rb", "app/controllers/concerns/authentication.rb"
107113
end
@@ -195,6 +201,12 @@ def gemfile_exists
195201
File.exist?(gemfile)
196202
end
197203

204+
def modify_active_sessions_table
205+
migration = Dir.glob(Rails.root.join("db/migrate/*")).max_by { |f| File.mtime(f) }
206+
gsub_file migration, /t.string :remember_token/, "t.string :remember_token, null: false"
207+
gsub_file migration, /add_index :active_sessions, :remember_token/, "add_index :active_sessions, :remember_token, unique: true"
208+
end
209+
198210
def modify_application_controller
199211
inject_into_file "app/controllers/application_controller.rb", "\tinclude Authentication\n", after: "class ApplicationController < ActionController::Base\n"
200212
end

test/lib/generators/rails_mvp_authentication/install_generator_test.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,19 @@ class RailsMvpAuthentication::InstallGeneratorTest < Rails::Generators::TestCase
1919
end
2020
end
2121

22+
test "creates migration for active sessions table" do
23+
run_generator
24+
25+
assert_migration "db/migrate/create_active_sessions.rb" do |migration|
26+
assert_match(/create_table :active_sessions do |t|/, migration)
27+
assert_match(/t.references :user, null: false, foreign_key: true/, migration)
28+
assert_match(/t.string :user_agent/, migration)
29+
assert_match(/t.string :ip_address/, migration)
30+
assert_match(/t.string :remember_token, null: false/, migration)
31+
assert_match(/add_index :active_sessions, :remember_token, unique: true/, migration)
32+
end
33+
end
34+
2235
test "creates user model" do
2336
run_generator
2437

0 commit comments

Comments
 (0)