require "test_helper" class MemberTest < ActiveSupport::TestCase setup do @member = Member.create!( email: 'dsfargeg@example.com', display_name: 'dsfargeg', joined_on: Date.today, expires_on: Date.today + 1.year ) end test "no expired in the first year and 90 days" do (1.year + 90.days).in_days.to_i.times do |n| Timecop.freeze(Date.today + n.days) do assert_not_equal @member.expected_status, :cancelled end end end test "expired after 1 year and 90 days" do Timecop.freeze(Date.today + 1.year + 90.days) do assert_equal @member.expected_status, :cancelled end end test "regenerate notifications creates all 6 notifications" do @member.regenerate_notifications assert_equal @member.notifications.count, 6 end test "regenerate_notifications does not create notifications in the past" do Timecop.freeze(Date.today + 1.year) do @member.regenerate_notifications assert_equal @member.notifications.count, 4 end Timecop.freeze(Date.today + 2.year) do @member.regenerate_notifications assert_equal @member.notifications.count, 0 end end test "regenerate_notifications does not create manually sent notifications" do @member.regenerate_notifications @member.notifications.first.deliver! assert_equal 5, @member.notifications.where(status: 'scheduled').count @member.regenerate_notifications assert_equal 1, @member.notifications.where(status: 'sent').count assert_equal 5, @member.notifications.where(status: 'scheduled').count end end