Wednesday, July 15, 2026 3:57:05 AM
> user_spec.rb
# frozen_string_literal: true

RSpec.describe ESM::User do
  describe ".find_by_discord_id" do
    let!(:user) { create(:user) }

    it "finds user by discord_id string" do
      result = described_class.find_by_discord_id(user.discord_id)
      expect(result).to eq(user)
    end

    it "handles parsing an integer" do
      result = described_class.find_by_discord_id(user.discord_id.to_i)
      expect(result).to eq(user)
    end

    it "returns nil when not found" do
      expect(described_class.find_by_discord_id("000000000000000000")).to be_nil
    end
  end

  describe ".find_by_steam_uid" do
    let!(:user) { create(:user) }

    it "finds user by steam_uid" do
      result = described_class.find_by_steam_uid(user.steam_uid)
      expect(result).to eq(user)
    end

    it "returns nil when not found" do
      expect(described_class.find_by_steam_uid("76560000000000000")).to be_nil
    end
  end

  describe "#registered?" do
    it "returns true when user has steam_uid" do
      user = create(:user)
      expect(user.registered?).to be(true)
    end

    it "returns false when user has no steam_uid" do
      user = create(:user, :unregistered)
      expect(user.registered?).to be(false)
    end
  end

  describe "#mention" do
    let!(:user) { create(:user) }

    it "returns Discord mention format" do
      expect(user.mention).to eq("<@#{user.discord_id}>")
    end

    it "is aliased as discord_mention" do
      expect(user.discord_mention).to eq(user.mention)
    end
  end

  describe "#public_id" do
    let!(:user) { create(:user) }

    it "returns the discord_id" do
      expect(user.public_id).to eq(user.discord_id)
    end
  end
end
All opinions represented herein are my own
- © 2024 - 2026 itsthedevman
- build 43aa0d7