hensei-api/spec/factories/crew_invitations.rb
Justin Edmund a3a0138526 add request specs for crew controllers (phases 1-2)
- add crews_spec.rb (18 examples)
- add crew_memberships_spec.rb (13 examples)
- add crew_invitations_spec.rb (15 examples)
- fix crew_memberships authorize_crew_captain! as before_action
- update crew_invitations factory to auto-set invited_by officer

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

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

37 lines
905 B
Ruby

FactoryBot.define do
factory :crew_invitation do
crew
user
status { :pending }
expires_at { 7.days.from_now }
# invited_by must be an officer of the crew
after(:build) do |invitation, _evaluator|
unless invitation.invited_by
# Create an officer for the crew if one doesn't exist
officer = invitation.crew.crew_memberships.find_by(role: [:captain, :vice_captain], retired: false)&.user
unless officer
officer = create(:user)
create(:crew_membership, crew: invitation.crew, user: officer, role: :captain)
end
invitation.invited_by = officer
end
end
trait :accepted do
status { :accepted }
end
trait :rejected do
status { :rejected }
end
trait :expired do
status { :expired }
end
trait :expired_by_time do
expires_at { 1.day.ago }
end
end
end