Skip to content
Merged
13 changes: 11 additions & 2 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -270,15 +270,24 @@ Rails/FilePath:
- "spec/rails_helper.rb"

RSpec/MultipleExpectations:
Max: 2
Max: 8

RSpec/ExampleLength:
Max: 10
Max: 25

RSpec/MultipleMemoizedHelpers:
Max: 15

RSpec/SubjectStub:
Enabled: true
Exclude:
- "spec/models/job_spec.rb"
- "spec/models/workshop_invitation_spec.rb"
- "spec/models/workshop_spec.rb"

RSpec/SpecFilePathFormat:
CustomTransform:
OmniAuth: omniauth

RSpec/NestedGroups:
Max: 5
225 changes: 16 additions & 209 deletions .rubocop_todo.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit`
# on 2026-07-28 13:49:30 UTC using RuboCop version 1.88.2.
# on 2026-07-28 16:48:26 UTC using RuboCop version 1.88.2.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
Expand All @@ -18,6 +18,14 @@ Capybara/RSpec/VisibilityMatcher:
Exclude:
- 'spec/components/chapters_sidebar_component_spec.rb'

# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: empty_lines, no_empty_lines
Layout/EmptyLinesAroundBlockBody:
Exclude:
- 'spec/features/admin/manage_workshop_attendances_spec.rb'

# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: AllowSafeAssignment.
Expand All @@ -26,13 +34,12 @@ Lint/AssignmentInCondition:
- 'app/controllers/application_controller.rb'
- 'app/models/feedback.rb'

# Offense count: 2
# Offense count: 1
# Configuration parameters: AllowedMethods.
# AllowedMethods: enums
Lint/ConstantDefinitionInBlock:
Exclude:
- 'lib/tasks/setup.rake'
- 'spec/features/admin/manage_workshop_attendances_spec.rb'

# Offense count: 1
# Configuration parameters: DebuggerMethods, DebuggerRequires.
Expand Down Expand Up @@ -278,97 +285,20 @@ RSpec/ContextWording:
- 'spec/support/shared_examples/behaves_like_an_invitation_route.rb'
- 'spec/support/shared_examples/behaves_like_managing_workshop_attendance.rb'

# Offense count: 57
# Offense count: 1
# Configuration parameters: Max, CountAsOne.
RSpec/ExampleLength:
Exclude:
- 'spec/controllers/admin/sponsors_controller_spec.rb'
- 'spec/controllers/feedback_controller_spec.rb'
- 'spec/controllers/member/details_controller_spec.rb'
- 'spec/controllers/payments_controller_spec.rb'
- 'spec/features/admin/add_user_to_workshop_spec.rb'
- 'spec/features/admin/chapter/feedback_spec.rb'
- 'spec/features/admin/event_spec.rb'
- 'spec/features/admin/manage_sponsor_spec.rb'
- 'spec/features/admin/meeting_spec.rb'
- 'spec/features/admin/sponsor_spec.rb'
- 'spec/features/admin/workshops_spec.rb'
- 'spec/features/chapter_spec.rb'
- 'spec/features/listing_coaches_spec.rb'
- 'spec/features/member_feedback_spec.rb'
- 'spec/features/member_joining_spec.rb'
- 'spec/features/member_portal_spec.rb'
- 'spec/features/member_updating_details_spec.rb'
- 'spec/features/subscribing_to_newsletter_spec.rb'
- 'spec/lib/omniauth/strategies/codebar_spec.rb'
- 'spec/lib/services/flodesk_spec.rb'
- 'spec/lib/tasks/delete_member_rake_spec.rb'
- 'spec/lib/tasks/feedback_rake_spec.rb'
- 'spec/lib/tasks/mailing_list_rake_spec.rb'
- 'spec/lib/tasks/reminders_meeting_rake_spec.rb'
- 'spec/models/member_spec.rb'
- 'spec/presenters/how_you_found_us_presenter_spec.rb'
- 'spec/presenters/workshop_presenter_spec.rb'
- 'spec/services/invitation_manager_spec.rb'
- 'spec/services/three_month_email_service_spec.rb'
- 'spec/support/shared_examples/behaves_like_an_invitation_route.rb'
- 'spec/support/shared_examples/behaves_like_sending_workshop_emails.rb'

# Offense count: 3
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: single_line_only, single_statement_only, disallow, require_implicit
RSpec/ImplicitSubject:
Exclude:
- 'spec/models/contact_spec.rb'
- 'spec/models/sponsor_spec.rb'
- 'spec/models/workshop_sponsor_spec.rb'

# Offense count: 2
# Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns.
RSpec/IndexedLet:
Exclude:
- 'spec/controllers/admin/member_search_controller_spec.rb'

# Offense count: 9
# Configuration parameters: AssignmentOnly.
RSpec/InstanceVariable:
Exclude:
- 'spec/features/admin/add_user_to_workshop_spec.rb'
- 'spec/features/member_feedback_spec.rb'

# Offense count: 1
RSpec/LeakyConstantDeclaration:
Exclude:
- 'spec/features/admin/manage_workshop_attendances_spec.rb'

# Offense count: 12
RSpec/LetSetup:
Exclude:
- 'spec/features/admin/groups_spec.rb'
- 'spec/features/admin/manage_event_spec.rb'
- 'spec/features/admin/manage_sponsor_spec.rb'
- 'spec/features/admin/manage_workshop_attendances_spec.rb'
- 'spec/features/admin/meeting_spec.rb'
- 'spec/features/admin/tom_select_member_lookup_spec.rb'
- 'spec/features/listing_events_spec.rb'
- 'spec/models/sponsor_spec.rb'
- 'spec/services/invitation_manager_spec.rb'
- 'spec/support/shared_examples/behaves_like_managing_workshop_attendance.rb'

# Offense count: 3
RSpec/MessageChain:
Exclude:
- 'spec/features/admin/workshops_spec.rb'
- 'spec/services/contact_mailing_list_service_spec.rb'

# Offense count: 66
# Offense count: 68
# Configuration parameters: EnforcedStyle.
# SupportedStyles: have_received, receive
RSpec/MessageSpies:
Exclude:
- 'spec/controllers/admin/members_controller_spec.rb'
- 'spec/controllers/payments_controller_spec.rb'
- 'spec/features/admin/workshops_spec.rb'
- 'spec/features/subscribing_to_newsletter_spec.rb'
- 'spec/helpers/email_header_helper_spec.rb'
- 'spec/lib/services/mailing_list_spec.rb'
Expand All @@ -385,132 +315,20 @@ RSpec/MessageSpies:
- 'spec/support/shared_examples/behaves_like_an_invitation.rb'
- 'spec/support/shared_examples/behaves_like_sending_workshop_emails.rb'

# Offense count: 136
# Offense count: 3
# Configuration parameters: Max.
RSpec/MultipleExpectations:
Exclude:
- 'spec/components/event_card_component_spec.rb'
- 'spec/controllers/admin/chapters_controller_spec.rb'
- 'spec/controllers/admin/invitations_controller_spec.rb'
- 'spec/controllers/admin/members_controller_spec.rb'
- 'spec/controllers/feedback_controller_spec.rb'
- 'spec/controllers/member/details_controller_spec.rb'
- 'spec/features/accepting_invitation_spec.rb'
- 'spec/features/accepting_terms_and_conditions_spec.rb'
- 'spec/features/admin/add_user_to_workshop_spec.rb'
- 'spec/features/admin/announcements_spec.rb'
- 'spec/features/admin/event_spec.rb'
- 'spec/features/admin/manage_event_spec.rb'
- 'spec/features/admin/manage_sponsor_spec.rb'
- 'spec/features/admin/manage_workshop_attendances_spec.rb'
- 'spec/features/admin/meeting_spec.rb'
- 'spec/features/admin/members_spec.rb'
- 'spec/features/admin/sponsor_spec.rb'
- 'spec/features/admin/tom_select_member_lookup_spec.rb'
- 'spec/features/admin/workshops_spec.rb'
- 'spec/features/chapter_spec.rb'
- 'spec/features/listing_coaches_spec.rb'
- 'spec/features/member_feedback_spec.rb'
- 'spec/features/member_joining_spec.rb'
- 'spec/features/member_portal_spec.rb'
- 'spec/features/member_updating_details_spec.rb'
- 'spec/features/sponsors_spec.rb'
- 'spec/features/subscribing_to_newsletter_spec.rb'
- 'spec/features/view_event_spec.rb'
- 'spec/features/viewing_a_workshop_invitation_spec.rb'
- 'spec/features/viewing_a_workshop_spec.rb'
- 'spec/features/visiting_homepage_spec.rb'
- 'spec/helpers/email_header_helper_spec.rb'
- 'spec/lib/omniauth/strategies/codebar_spec.rb'
- 'spec/lib/tasks/delete_member_rake_spec.rb'
- 'spec/lib/tasks/feedback_rake_spec.rb'
- 'spec/lib/tasks/mailing_list_rake_spec.rb'
- 'spec/lib/tasks/reminders_meeting_rake_spec.rb'
- 'spec/lib/tasks/reminders_workshop_rake_spec.rb'
- 'spec/mailers/meeting_invitation_mailer_spec.rb'
- 'spec/mailers/member_mailer_spec.rb'
- 'spec/mailers/virtual_workshop_invitation_mailer_spec.rb'
- 'spec/mailers/workshop_invitation_mailer_spec.rb'
- 'spec/models/chapter_spec.rb'
- 'spec/models/member_note_spec.rb'
- 'spec/models/member_spec.rb'
- 'spec/presenters/workshop_presenter_capacity_spec.rb'
- 'spec/presenters/workshop_presenter_spec.rb'
- 'spec/serializers/workshop_calendar_spec.rb'
- 'spec/services/contact_mailing_list_service_spec.rb'
- 'spec/services/invitation_logger_spec.rb'
- 'spec/services/invitation_manager_deduplication_spec.rb'
- 'spec/services/invitation_manager_logging_spec.rb'
- 'spec/services/invitation_manager_spec.rb'
- 'spec/services/three_month_email_service_spec.rb'
- 'spec/support/shared_examples/behaves_like_an_invitation_route.rb'
- 'spec/support/shared_examples/behaves_like_managing_workshop_attendance.rb'
- 'spec/support/shared_examples/behaves_like_sending_workshop_emails.rb'

# Offense count: 44
# Configuration parameters: AllowSubject, Max.
RSpec/MultipleMemoizedHelpers:
Exclude:
- 'spec/controllers/admin/sponsors_controller_spec.rb'
- 'spec/controllers/workshop_invitation_controller_spec.rb'
- 'spec/features/accepting_invitation_spec.rb'
- 'spec/features/coach_accepting_invitation_spec.rb'
- 'spec/features/member_feedback_spec.rb'
- 'spec/lib/omniauth/strategies/codebar_spec.rb'
- 'spec/mailers/event_invitation_mailer_spec.rb'
- 'spec/mailers/feedback_request_mailer_spec.rb'
- 'spec/mailers/virtual_workshop_invitation_mailer_spec.rb'
- 'spec/mailers/workshop_invitation_mailer_spec.rb'
- 'spec/policies/invitation_log_policy_spec.rb'
- 'spec/presenters/workshop_presenter_spec.rb'
- 'spec/services/invitation_logger_spec.rb'
- 'spec/services/invitation_manager_spec.rb'
- 'spec/services/three_month_email_service_spec.rb'

# Offense count: 73
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
# SupportedStyles: always, named_only
RSpec/NamedSubject:
Exclude:
- 'spec/models/group_spec.rb'
- 'spec/models/workshop_invitation_spec.rb'
- 'spec/models/workshop_spec.rb'
- 'spec/policies/admin_portal_policy_spec.rb'
- 'spec/policies/application_policy_spec.rb'
- 'spec/policies/chapter_policy_spec.rb'
- 'spec/policies/contact_policy_spec.rb'
- 'spec/policies/event_policy_spec.rb'
- 'spec/policies/group_policy_spec.rb'
- 'spec/policies/invitation_log_policy_spec.rb'
- 'spec/policies/member_note_policy_spec.rb'
- 'spec/policies/organiser_policy_spec.rb'
- 'spec/policies/sponsor_policy_spec.rb'
- 'spec/policies/testimonial_policy_spec.rb'
- 'spec/policies/workshop_policy_spec.rb'

# Offense count: 4
RSpec/RepeatedExample:
Exclude:
- 'spec/controllers/admin/sponsors_controller_spec.rb'
- 'spec/support/shared_examples/behaves_like_an_invitation_route.rb'

# Offense count: 2
RSpec/RepeatedExampleGroupDescription:
Exclude:
- 'spec/features/admin/manage_sponsor_spec.rb'

# Offense count: 1
# Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata, InflectorPath, EnforcedInflector.
# SupportedInflectors: default, active_support
RSpec/SpecFilePathFormat:
Exclude:
- 'spec/lib/omniauth/strategies/codebar_spec.rb'

# Offense count: 17
# Offense count: 19
RSpec/StubbedMock:
Exclude:
- 'spec/controllers/admin/members_controller_spec.rb'
- 'spec/controllers/payments_controller_spec.rb'
- 'spec/features/admin/workshops_spec.rb'
- 'spec/features/subscribing_to_newsletter_spec.rb'
- 'spec/lib/services/mailing_list_spec.rb'
- 'spec/lib/tasks/feedback_rake_spec.rb'
Expand All @@ -519,12 +337,6 @@ RSpec/StubbedMock:
- 'spec/lib/tasks/reminders_workshop_rake_spec.rb'
- 'spec/presenters/meeting_presenter_spec.rb'

# Offense count: 2
RSpec/SubjectStub:
Exclude:
- 'spec/models/workshop_invitation_spec.rb'
- 'spec/models/workshop_spec.rb'

# Offense count: 38
# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
RSpec/VerifiedDoubles:
Expand All @@ -537,11 +349,6 @@ RSpec/VerifiedDoubles:
- 'spec/presenters/virtual_workshop_presenter_spec.rb'
- 'spec/presenters/workshop_presenter_spec.rb'

# Offense count: 8
RSpec/VoidExpect:
Exclude:
- 'spec/features/admin/sponsor_spec.rb'

# Offense count: 4
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: NilOrEmpty, NotPresent, UnlessPresent.
Expand Down
6 changes: 3 additions & 3 deletions spec/controllers/admin/member_search_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,15 @@

describe 'GET #results' do
context 'when user is an admin' do
let(:member1) { Fabricate(:member, name: 'Alice') }
let(:member2) { Fabricate(:member, name: 'Bob') }
let(:alice) { Fabricate(:member, name: 'Alice') }
let(:bob) { Fabricate(:member, name: 'Bob') }

before do
login_as_admin(member)
end

it 'finds members by ids using params.expect' do
get :results, params: { member_pick: { members: [member1.id, member2.id] } }
get :results, params: { member_pick: { members: [alice.id, bob.id] } }
expect(response).to have_http_status(:ok)
end
end
Expand Down
16 changes: 1 addition & 15 deletions spec/controllers/admin/sponsors_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,21 +46,7 @@
end.to change(Sponsor, :count).by(1)
end

it 'members as contacts and contact info' do
login admin
request.env['HTTP_REFERER'] = '/admin/member/3'

expect do
post :create, params: {
sponsor: {
name: 'name', website: 'https://example.com', seats: 40, number_of_coaches: 10,
address: address, avatar: avatar, contact_ids: [member.id, member1.id]
}
}
end.to change(Sponsor, :count).by(1)
end

it 'only members as contacts' do
it 'includes members as contacts' do
login admin
request.env['HTTP_REFERER'] = '/admin/member/3'

Expand Down
Loading