hensei-api/spec/factories/phantom_players.rb
Justin Edmund 4c8f4ffcf3 add phantom players for non-registered crew members
- phantom_players table for tracking scores of non-user members
- claim flow: officer assigns phantom to user, user confirms, scores transfer
- CRUD endpoints plus /assign and /confirm_claim actions
- model/request specs for all functionality (37 examples)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 23:55:15 -08:00

34 lines
765 B
Ruby

FactoryBot.define do
factory :phantom_player do
crew
sequence(:name) { |n| "Phantom Player #{n}" }
granblue_id { nil }
notes { nil }
trait :with_granblue_id do
sequence(:granblue_id) { |n| "#{10000000 + n}" }
end
trait :claimed do
transient do
claimer { nil }
end
after(:build) do |phantom, evaluator|
if evaluator.claimer
phantom.claimed_by = evaluator.claimer
else
# Create a member of the crew
user = create(:user)
create(:crew_membership, crew: phantom.crew, user: user, role: :member)
phantom.claimed_by = user
end
end
end
trait :confirmed do
claimed
claim_confirmed { true }
end
end
end