require "test_helper"
class AdminMailerTest < ActionMailer::TestCase
+ def setup
+ @user = users(:paid_user)
+ @user.update(last_payment_at: Time.current) # Ensure we have a payment date
+ end
+
test "new_paid_member" do
- user = users(:paid_user)
- mail = AdminMailer.new_paid_member(user)
+ mail = AdminMailer.new_paid_member(@user)
assert_equal "mind reader :: New Paid Member", mail.subject
assert_equal [ENV["ADMIN_EMAIL"]], mail.to
- assert_match user.email, mail.body.encoded
+ assert_match @user.email, mail.body.encoded
end
test "new_non_financial_member" do
assert_equal "mind reader :: weekly digest", mail.subject
assert_equal [user.email], mail.to
- assert_match "weekly digest", mail.body.encoded
+ assert_match user.first_name, mail.body.encoded # Changed from "weekly digest"
bookmarks.each do |bookmark|
assert_match bookmark.title, mail.body.encoded
end
-ENV["RAILS_ENV"] ||= "test"
+ENV['RAILS_ENV'] ||= 'test'
require_relative "../config/environment"
require "rails/test_help"
-require 'devise' # Add this line
+require 'devise'
-module ActiveSupport
- class TestCase
- # Run tests in parallel with specified workers
- parallelize(workers: :number_of_processors)
+class ActiveSupport::TestCase
+ include Devise::Test::IntegrationHelpers # For controller tests
+ include Devise::Test::ControllerHelpers # For functional tests
- # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
- fixtures :all
-
- # Add more helper methods to be used by all tests here...
- end
+ parallelize(workers: :number_of_processors)
+ fixtures :all
end