Skip to content

chore: infer RSpec metadata about "type" of test from file location #2268

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Aug 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions spec/controllers/admin/invitations_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
require "spec_helper"

RSpec.describe Admin::InvitationsController, type: :controller do
Copy link
Contributor

@matyikriszta matyikriszta Aug 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@olleolleolle should we remove the type here as well? Or do we have to keep it since it's in the admin folder within the controllers folder? Not sure how the metadata inference works exactly.

Copy link
Collaborator Author

@olleolleolle olleolleolle Aug 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, too. Every file under spec/controllers and below. Another PR does that removing.

let(:invitation) { Fabricate(:student_workshop_invitation) }
let(:workshop) { invitation.workshop }
Expand Down
4 changes: 1 addition & 3 deletions spec/controllers/auth_services_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
require "spec_helper"

RSpec.describe AuthServicesController, type: :controller do
RSpec.describe AuthServicesController do
describe "GET #new" do
it "redirects when referer is missing" do
expected_referer_path = nil
Expand Down
2 changes: 1 addition & 1 deletion spec/controllers/members_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe MembersController, type: :controller do
RSpec.describe MembersController do
describe "GET unsubscribe/#token" do
it "redirects to the subscription path when token is valid" do
member = Fabricate(:member)
Expand Down
2 changes: 1 addition & 1 deletion spec/helpers/application_helper_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe ApplicationHelper, type: :helper do
RSpec.describe ApplicationHelper do
describe '#contact_email' do
it "returns the workshop chapter's email" do
workshop = Fabricate(:workshop)
Expand Down
2 changes: 1 addition & 1 deletion spec/mailers/event_invitation_mailer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe EventInvitationMailer, type: :mailer do
RSpec.describe EventInvitationMailer do
let(:email) { ActionMailer::Base.deliveries.last }
let(:event) { Fabricate(:event, date_and_time: Time.zone.local(2017, 11, 12, 10, 0), name: 'Test event') }
let(:coach_event) { Fabricate(:event, date_and_time: Time.zone.local(2017, 11, 12, 10, 0), name: 'Test event', audience: 'Coaches') }
Expand Down
2 changes: 1 addition & 1 deletion spec/mailers/feedback_request_mailer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe FeedbackRequestMailer, type: :mailer do
RSpec.describe FeedbackRequestMailer do
let(:email) { ActionMailer::Base.deliveries.last }
let(:member) { Fabricate(:member) }
let(:feedback_request) { Fabricate(:feedback_request, workshop: workshop, member: member) }
Expand Down
2 changes: 1 addition & 1 deletion spec/mailers/meeting_invitation_mailer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe MeetingInvitationMailer, type: :mailer do
RSpec.describe MeetingInvitationMailer do
let(:meeting) { Fabricate(:meeting) }
let(:member) { Fabricate(:member) }
let(:invitation) { Fabricate(:meeting_invitation, meeting: meeting, member: member) }
Expand Down
2 changes: 1 addition & 1 deletion spec/mailers/member_mailer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe MemberMailer, type: :mailer do
RSpec.describe MemberMailer do
let(:member) { Fabricate(:member) }

describe 'welcome_student' do
Expand Down
2 changes: 1 addition & 1 deletion spec/mailers/virtual_workshop_invitation_mailer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe VirtualWorkshopInvitationMailer, type: :mailer do
RSpec.describe VirtualWorkshopInvitationMailer do
let(:email) { ActionMailer::Base.deliveries.last }
let(:workshop) { Fabricate(:workshop) }
let(:member) { Fabricate(:member) }
Expand Down
2 changes: 1 addition & 1 deletion spec/mailers/workshop_invitation_mailer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe WorkshopInvitationMailer, type: :mailer do
RSpec.describe WorkshopInvitationMailer do
let(:email) { ActionMailer::Base.deliveries.last }
let(:workshop) { Fabricate(:workshop, title: 'HTML & CSS') }
let(:member) { Fabricate(:member) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/address_spec.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
RSpec.describe Address, type: :model do
RSpec.describe Address do
subject(:address) { Fabricate.build(:address) }
end
2 changes: 1 addition & 1 deletion spec/models/attendance_warning_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe AttendanceWarning, type: :model do
RSpec.describe AttendanceWarning do
describe '#create' do
let(:member) { Fabricate(:member) }
let(:admin) { Fabricate(:member) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/ban_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Ban, type: :model do
RSpec.describe Ban do
context 'validates' do
it { is_expected.to validate_presence_of(:expires_at) }
it { is_expected.to validate_presence_of(:reason) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/chapter_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Chapter, type: :model do
RSpec.describe Chapter do
it { should validate_presence_of(:city) }
it { should validate_length_of(:description).is_at_most(280) }

Expand Down
2 changes: 1 addition & 1 deletion spec/models/concerns/listable_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Listable, type: :model do
RSpec.describe Listable do
subject(:workshop) { Fabricate(:workshop) }

context 'scopes' do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/concerns/permissions_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Permissions, type: :model do
RSpec.describe Permissions do
subject(:member) { Fabricate(:member) }

let(:chapter) { Fabricate(:chapter) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/eligibility_inquiry_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe EligibilityInquiry, type: :model do
RSpec.describe EligibilityInquiry do
describe '#create' do
let(:member) { Fabricate(:member) }
let(:admin) { Fabricate(:member) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/event_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Event, type: :model do
RSpec.describe Event do
subject(:event) { Fabricate(:event) }
include_examples "Invitable", :invitation, :event
include_examples DateTimeConcerns, :event
Expand Down
2 changes: 1 addition & 1 deletion spec/models/feedback_request_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe FeedbackRequest, type: :model do
RSpec.describe FeedbackRequest do
subject { Fabricate(:feedback_request) }

it { should respond_to(:member) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/feedback_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Feedback, type: :model do
RSpec.describe Feedback do
subject(:feedback) { Fabricate.build(:feedback) }

context 'validations' do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/group_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Group, type: :model do
RSpec.describe Group do
subject(:group) { Fabricate.build(:group) }

context 'validations' do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/invitation_manager_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe InvitationManager, type: :model do
RSpec.describe InvitationManager do
subject(:manager) { InvitationManager.new }

let(:chapter) { Fabricate(:chapter) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/invitation_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Invitation, type: :model do
RSpec.describe Invitation do
it_behaves_like InvitationConcerns, :invitation, :event

context 'defaults' do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/meeting_invitation_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe MeetingInvitation, type: :model do
RSpec.describe MeetingInvitation do
it_behaves_like InvitationConcerns, :meeting_invitation, :meeting

context 'defaults' do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/meeting_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Meeting, type: :model do
RSpec.describe Meeting do
include_examples "Invitable", :meeting_invitation, :meeting
include_examples DateTimeConcerns, :meeting

Expand Down
2 changes: 1 addition & 1 deletion spec/models/meeting_talk_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe MeetingTalk, type: :model do
RSpec.describe MeetingTalk do
context 'validations' do
subject { MeetingTalk.new }

Expand Down
2 changes: 1 addition & 1 deletion spec/models/member_note_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe MemberNote, type: :model do
RSpec.describe MemberNote do
context 'Mandatory attributes' do
it 'Requires a note' do
note = Fabricate.build(:member_note, note: nil)
Expand Down
2 changes: 1 addition & 1 deletion spec/models/member_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Member, type: :model do
RSpec.describe Member do
let(:member) { Fabricate(:member) }

describe 'mandatory attributes' do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/role_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Role, type: :model do
RSpec.describe Role do
context 'scopes' do
let(:student_role) { Fabricate(:student_role) }
let(:coach_role) { Fabricate(:coach_role) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/sponsor_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Sponsor, type: :model do
RSpec.describe Sponsor do
subject(:sponsor) { Fabricate.build(:sponsor) }

context 'validations' do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/sponsors_search_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe SponsorsSearch, type: :model do
RSpec.describe SponsorsSearch do
let(:search_params) { { name: Faker::Name.name, chapter: Faker::Name.name } }

describe 'initialization params' do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/tutorial_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Tutorial, type: :model do
RSpec.describe Tutorial do
subject(:tutorial) { Fabricate.build(:tutorial) }

it { should respond_to(:title) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/waiting_list_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe WaitingList, type: :model do
RSpec.describe WaitingList do
let(:workshop) { Fabricate(:workshop) }

context 'scopes' do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/workshop_invitation_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe WorkshopInvitation, type: :model do
RSpec.describe WorkshopInvitation do
subject(:workshop_invitation) { Fabricate(:workshop_invitation) }
it_behaves_like InvitationConcerns, :workshop_invitation, :workshop

Expand Down
2 changes: 1 addition & 1 deletion spec/models/workshop_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Workshop, type: :model do
RSpec.describe Workshop do
subject(:workshop) { Fabricate(:workshop) }
include_examples "Invitable", :workshop_invitation, :workshop
include_examples DateTimeConcerns, :workshop
Expand Down
2 changes: 1 addition & 1 deletion spec/models/workshop_sponsor_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe WorkshopSponsor, type: :model do
RSpec.describe WorkshopSponsor do
context 'validates' do
it 'sponsor_id for uniqueness' do
is_expected.to validate_uniqueness_of(:sponsor_id)
Expand Down
2 changes: 1 addition & 1 deletion spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ def self.branch_coverage?
config.include LoginHelpers
config.include ActiveSupport::Testing::TimeHelpers
config.include SelectFromChosen, type: :feature
config.infer_spec_type_from_file_location!
config.use_transactional_fixtures = false
config.infer_base_class_for_anonymous_controllers = false
config.order = 'random'
Expand Down Expand Up @@ -90,7 +91,6 @@ def self.branch_coverage?
DatabaseCleaner.clean
end


config.after do |example|
# Take a screenshot if the example failed and JavaScript is enabled
if example.exception && defined?(page) && Capybara.current_driver == :chrome
Expand Down