mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-10-31 11:21:06 -04:00
* Remove unused bluecloth gem Last released in 2011. It was only required, never called; kramdown renders the markdown. * Add specs for Tilt markdown rendering and posts markdown partial * Remove rails_12factor gem Last released in 2014. Rails 5+ does this via RAILS_SERVE_STATIC_FILES and RAILS_LOG_TO_STDOUT, which production.rb already reads. * Remove memcachier gem from Gemfile and Gemfile.lock * Remove unused webrat gem Last released in 2011. Nothing requires it; the specs use Rails' assert_select and Capybara matchers. Only generator comments mention it. * Remove crowdin-cli gem Last released in 2018. Crowdin now ships its own standalone CLI, which reads crowdin.yml and doesn't need the gem. Also drops the dependencies only it used (rest-client, gli, crowdin-api and friends). * Removes the crowdin-cli gem (last released 2018), the dependencies only it needed, and crowdin.yml. Crowdin was never set up: the config still has a placeholder project ID and nothing else in the repo mentions it. Assisted by Claude * Remove newsletter functionality and associated views and tests * Remove newsletter functionality and related code across the application * keep the column * Remove stale test step * add back newsletter * Add migration to update newsletter column comment in members table --------- Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
114 lines
2.9 KiB
Ruby
114 lines
2.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
FactoryBot.define do
|
|
factory :member, aliases: %i(author owner sender recipient creator) do
|
|
login_name { (0...8).map { rand(65..90).chr }.join }
|
|
password { 'password1' }
|
|
email { Faker::Internet.unique.email }
|
|
tos_agreement { true }
|
|
confirmed_at { Time.zone.now }
|
|
show_email { false }
|
|
bio { 'I love seeds' }
|
|
preferred_avatar_uri { 'https://secure.gravatar.com/avatar/d021434aac03a7f7c7c0de60d07dad1c?size=150&default=identicon' }
|
|
|
|
# cropbot is needed for certain tests, eg. Crop.create_from_csv
|
|
factory :cropbot do
|
|
login_name { 'cropbot' }
|
|
end
|
|
|
|
factory :no_tos_member do
|
|
tos_agreement { false }
|
|
end
|
|
|
|
factory :no_bio_member do
|
|
bio { nil }
|
|
end
|
|
|
|
factory :unconfirmed_member do
|
|
confirmed_at { nil }
|
|
end
|
|
|
|
# this member has very loose privacy settings
|
|
factory :public_member do
|
|
login_name { 'NothingToHide' }
|
|
show_email { true }
|
|
end
|
|
|
|
factory :london_member do
|
|
sequence(:login_name) { |n| "JohnH#{n}" } # for the astronomer who figured out longitude
|
|
location { 'Greenwich, UK' }
|
|
# including lat/long explicitly because geocoder doesn't work with FactoryBot
|
|
latitude { 51.483 }
|
|
longitude { 0.004 }
|
|
end
|
|
|
|
factory :edinburgh_member do
|
|
location { 'Edinburgh' }
|
|
latitude { 55.953252 }
|
|
longitude { -3.188267 }
|
|
end
|
|
|
|
factory :south_pole_member do
|
|
sequence(:login_name) { |n| "ScottRF#{n}" }
|
|
location { 'Amundsen-Scott Base, Antarctica' }
|
|
latitude { -90 }
|
|
longitude { 0 }
|
|
end
|
|
|
|
factory :interesting_member do
|
|
sequence(:login_name) { |n| "ScottRF#{n}" }
|
|
location { 'Edinburgh' }
|
|
latitude { Faker::Address.latitude }
|
|
longitude { Faker::Address.longitude }
|
|
after(:create) do |member|
|
|
create(:planting, owner: member, garden: member.gardens.first)
|
|
end
|
|
end
|
|
|
|
factory :admin_member do
|
|
roles { [FactoryBot.create(:admin)] }
|
|
end
|
|
|
|
factory :crop_wrangling_member do
|
|
roles { [FactoryBot.create(:crop_wrangler)] }
|
|
sequence(:login_name) { |n| "wrangler#{n}" }
|
|
end
|
|
|
|
factory :invalid_member_shortname do
|
|
login_name { 'a' }
|
|
end
|
|
|
|
factory :invalid_member_longname do
|
|
login_name { 'MarmadukeBlundellHollinsheadBlundellTolemachePlantagenetWhistlebinkie3rdDukeofMarmoset' }
|
|
end
|
|
|
|
factory :invalid_member_spaces do
|
|
login_name { "a b" }
|
|
end
|
|
|
|
factory :invalid_member_badchars do
|
|
login_name { 'aa%$' }
|
|
end
|
|
|
|
factory :invalid_member_badname do
|
|
login_name { 'admin' }
|
|
end
|
|
|
|
factory :valid_member_alphanumeric do
|
|
login_name { 'abc123' }
|
|
end
|
|
|
|
factory :valid_member_uppercase do
|
|
login_name { 'ABC123' }
|
|
end
|
|
|
|
factory :valid_member_underscore do
|
|
login_name { 'abc_123' }
|
|
end
|
|
|
|
factory :no_email_notifications_member do
|
|
send_notification_email { false }
|
|
end
|
|
end
|
|
end
|