# frozen_string_literal: true # == Schema Information # # Table name: user_bans # # id :integer not null, primary key # enabled :boolean default(TRUE), not null # note :string # override_ip_ban :boolean default(FALSE), not null # reason :string not null # valid_until :datetime not null # created_at :datetime not null # updated_at :datetime not null # banning_user_id :integer not null # generated_ban_id :string not null # user_id :integer not null # # Indexes # # index_user_bans_on_banning_user_id (banning_user_id) # index_user_bans_on_created_at (created_at) # index_user_bans_on_user_id (user_id) # # Foreign Keys # # fk_rails_... (banning_user_id => users.id) ON DELETE => restrict ON UPDATE => cascade # fk_rails_... (user_id => users.id) ON DELETE => cascade ON UPDATE => cascade # require 'test_helper' class UserBanTest < ActiveSupport::TestCase setup do @ban = build(:user_ban) end test 'should be valid' do assert @ban.valid? end test '.banned? should return the active ban when banned' do @ban.save assert_equal @ban, UserBan.banned?(@ban.user) end test '.banned? should return false when not banned' do assert_not UserBan.banned?(@ban.user) # did not save @ban = create(:expired_user_ban) assert_not UserBan.banned?(@ban.user) end end