2024-02-29 16:35:54 -05:00
namespace :demo_data do
2025-06-11 18:48:39 -04:00
desc " Creates a new user with no data. Use for testing empty data states. "
2024-07-11 08:37:21 -04:00
task empty : :environment do
2025-01-31 19:08:21 -05:00
families = [ " Demo Family 1 " ]
Demo :: Generator . new . reset_and_clear_data! ( families )
2024-07-01 10:49:43 -04:00
end
2025-06-11 18:48:39 -04:00
desc " Creates a new user who has to go through onboarding still. Use for testing onboarding flows. "
2025-05-01 16:47:14 -04:00
task new_user : :environment do
families = [ " Demo Family 1 " ]
Demo :: Generator . new . reset_and_clear_data! ( families , require_onboarding : true )
end
2025-06-11 18:48:39 -04:00
desc " General data reset that loads semi-realistic data "
2025-02-21 11:57:59 -05:00
task :reset , [ :count ] = > :environment do | t , args |
count = ( args [ :count ] || 1 ) . to_i
families = count . times . map { | i | " Demo Family #{ i + 1 } " }
2025-01-31 19:08:21 -05:00
Demo :: Generator . new . reset_data! ( families )
2024-02-29 16:35:54 -05:00
end
2025-02-21 11:57:59 -05:00
2025-06-11 18:48:39 -04:00
desc " Use this when you need to test multi-currency features of the app with a minimal setup "
2025-02-21 11:57:59 -05:00
task multi_currency : :environment do
2025-02-24 12:51:13 -05:00
families = [ " Demo Family 1 " , " Demo Family 2 " ]
Demo :: Generator . new . generate_multi_currency_data! ( families )
end
2025-06-11 18:48:39 -04:00
desc " Use this when you want realistic budget data "
2025-02-24 12:51:13 -05:00
task basic_budget : :environment do
families = [ " Demo Family 1 " ]
Demo :: Generator . new . generate_basic_budget_data! ( families )
2025-02-21 11:57:59 -05:00
end
2025-06-11 18:48:39 -04:00
# DO NOT RUN THIS unless you're testing performance locally. It will take a long time to load/clear. Easiest to clear with a db:reset
desc " Generates realistic data for 500 families for performance testing. Creates 1 family with Ruby, then efficiently duplicates it 499 times using SQL bulk operations. "
task performance_testing : :environment do
families = [ " Performance Family 1 " ]
Demo :: Generator . new . generate_performance_testing_data! ( families )
end
2024-02-29 16:35:54 -05:00
end