From 27e954adc2aa6c975695bf807f99ec4365318b7e Mon Sep 17 00:00:00 2001 From: snogrammer Date: Sun, 28 Mar 2021 09:48:39 -0600 Subject: [PATCH] update seeds to use factories. update admin users view. --- app/admin/{admin_users.rb => users.rb} | 2 +- db/seeds.rb | 3 ++- docker-compose.yml | 2 -- spec/factories/users.rb | 22 ++++++++++++++++++++-- 4 files changed, 23 insertions(+), 6 deletions(-) rename app/admin/{admin_users.rb => users.rb} (89%) diff --git a/app/admin/admin_users.rb b/app/admin/users.rb similarity index 89% rename from app/admin/admin_users.rb rename to app/admin/users.rb index 3151982..7e9c19e 100644 --- a/app/admin/admin_users.rb +++ b/app/admin/users.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true ActiveAdmin.register User do - permit_params :email, :password, :password_confirmation + permit_params proc: User.attribute_names index do selectable_column diff --git a/db/seeds.rb b/db/seeds.rb index e66ad00..654c2ed 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -9,4 +9,5 @@ # Character.create(name: 'Luke', movie: movies.first) return unless Rails.env.development? -User.create!(email: 'admin@example.com', password: 'password', password_confirmation: 'password', admin: true) +FactoryBot.create(:user, :admin) +FactoryBot.create_list(:user, 10) diff --git a/docker-compose.yml b/docker-compose.yml index c5c7c00..270eddb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,8 +12,6 @@ services: environment: POSTGRES_USER: "user" POSTGRES_PASSWORD: "password" - ports: - - "5432:5432" volumes: - ./tmp/postgres/data:/var/lib/postgresql/data diff --git a/spec/factories/users.rb b/spec/factories/users.rb index d50eb0e..e9540f1 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -2,7 +2,25 @@ FactoryBot.define do factory :user do - email { Faker::Internet.email } - password { Faker::Internet.password } + sequence(:email) { |n| "user_#{n}@example.com" } + sequence(:username) { |n| "user_#{n}" } + password { 'password' } + password_confirmation { 'password' } + + confirmed # default trait + + trait :admin do + sequence(:email) { |n| "admin_#{n}@example.com" } + sequence(:username) { |n| "admin_#{n}" } + admin { true } + end + + trait :confirmed do + confirmed_at { Time.current } + end + + trait :unconfirmed do + confirmed_at { nil } + end end end