mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-05-11 17:24:50 -04:00
Fix RSpec/ExpectInHook offenses
- Move expectations from `before` hooks to `it` blocks. - Ensure controller actions are called after expectations are set in controller specs. - Replace synchronization expectations in hooks with Capybara `find` calls. - Remove RSpec/ExpectInHook from .rubocop_todo.yml. Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>
This commit is contained in:
@@ -248,17 +248,6 @@ RSpec/ExampleLength:
|
||||
Max: 27
|
||||
|
||||
# Offense count: 32
|
||||
RSpec/ExpectInHook:
|
||||
Exclude:
|
||||
- 'spec/controllers/garden_types_controller_spec.rb'
|
||||
- 'spec/controllers/gardens_controller_spec.rb'
|
||||
- 'spec/features/admin/forums_spec.rb'
|
||||
- 'spec/features/admin/plant_parts_spec.rb'
|
||||
- 'spec/features/admin/roles_spec.rb'
|
||||
- 'spec/features/crops/crop_photos_spec.rb'
|
||||
- 'spec/features/members/list_spec.rb'
|
||||
- 'spec/features/plantings/planting_a_crop_spec.rb'
|
||||
- 'spec/features/shared_examples/append_date.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
|
||||
@@ -24,29 +24,42 @@ RSpec.describe GardenTypesController do
|
||||
describe 'changing existing records' do
|
||||
before do
|
||||
allow(GardenType).to receive(:find).and_return(:garden_type)
|
||||
expect(garden_type).not_to receive(:save)
|
||||
expect(garden_type).not_to receive(:save!)
|
||||
expect(garden_type).not_to receive(:update)
|
||||
expect(garden_type).not_to receive(:update!)
|
||||
expect(garden_type).not_to receive(:destroy)
|
||||
end
|
||||
|
||||
describe 'GET edit' do
|
||||
before { get :edit, params: { id: garden_type.to_param } }
|
||||
|
||||
it { expect(response).to redirect_to(root_path) }
|
||||
it "redirects to root" do
|
||||
expect(garden_type).not_to receive(:save)
|
||||
expect(garden_type).not_to receive(:save!)
|
||||
expect(garden_type).not_to receive(:update)
|
||||
expect(garden_type).not_to receive(:update!)
|
||||
expect(garden_type).not_to receive(:destroy)
|
||||
get :edit, params: { id: garden_type.to_param }
|
||||
expect(response).to redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST update' do
|
||||
before { post :update, params: { id: garden_type.to_param, garden_type: valid_params } }
|
||||
|
||||
it { expect(response).to redirect_to(root_path) }
|
||||
it "redirects to root" do
|
||||
expect(garden_type).not_to receive(:save)
|
||||
expect(garden_type).not_to receive(:save!)
|
||||
expect(garden_type).not_to receive(:update)
|
||||
expect(garden_type).not_to receive(:update!)
|
||||
expect(garden_type).not_to receive(:destroy)
|
||||
post :update, params: { id: garden_type.to_param, garden_type: valid_params }
|
||||
expect(response).to redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'DELETE' do
|
||||
before { delete :destroy, params: { id: garden_type.to_param, params: { garden_type: valid_params } } }
|
||||
|
||||
it { expect(response).to redirect_to(root_path) }
|
||||
it "redirects to root" do
|
||||
expect(garden_type).not_to receive(:save)
|
||||
expect(garden_type).not_to receive(:save!)
|
||||
expect(garden_type).not_to receive(:update)
|
||||
expect(garden_type).not_to receive(:update!)
|
||||
expect(garden_type).not_to receive(:destroy)
|
||||
delete :destroy, params: { id: garden_type.to_param, params: { garden_type: valid_params } }
|
||||
expect(response).to redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -60,30 +73,43 @@ RSpec.describe GardenTypesController do
|
||||
let(:any_garden_type) { double('garden_type') }
|
||||
|
||||
before do
|
||||
expect(GardenType).to receive(:find).and_return(:any_garden_type)
|
||||
expect(any_garden_type).not_to receive(:save)
|
||||
expect(any_garden_type).not_to receive(:save!)
|
||||
expect(any_garden_type).not_to receive(:update)
|
||||
expect(any_garden_type).not_to receive(:update!)
|
||||
expect(any_garden_type).not_to receive(:destroy)
|
||||
allow(GardenType).to receive(:find).and_return(:any_garden_type)
|
||||
end
|
||||
|
||||
describe 'GET edit' do
|
||||
before { get :edit, params: { id: any_garden_type.to_param } }
|
||||
|
||||
it { expect(response).to redirect_to(root_path) }
|
||||
it "redirects to root" do
|
||||
expect(any_garden_type).not_to receive(:save)
|
||||
expect(any_garden_type).not_to receive(:save!)
|
||||
expect(any_garden_type).not_to receive(:update)
|
||||
expect(any_garden_type).not_to receive(:update!)
|
||||
expect(any_garden_type).not_to receive(:destroy)
|
||||
get :edit, params: { id: any_garden_type.to_param }
|
||||
expect(response).to redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST update' do
|
||||
before { post :update, params: { id: any_garden_type.to_param, garden_type: valid_params } }
|
||||
|
||||
it { expect(response).to redirect_to(root_path) }
|
||||
it "redirects to root" do
|
||||
expect(any_garden_type).not_to receive(:save)
|
||||
expect(any_garden_type).not_to receive(:save!)
|
||||
expect(any_garden_type).not_to receive(:update)
|
||||
expect(any_garden_type).not_to receive(:update!)
|
||||
expect(any_garden_type).not_to receive(:destroy)
|
||||
post :update, params: { id: any_garden_type.to_param, garden_type: valid_params }
|
||||
expect(response).to redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'DELETE' do
|
||||
before { delete :destroy, params: { id: any_garden_type.to_param, params: { garden_type: valid_params } } }
|
||||
|
||||
it { expect(response).to redirect_to(root_path) }
|
||||
it "redirects to root" do
|
||||
expect(any_garden_type).not_to receive(:save)
|
||||
expect(any_garden_type).not_to receive(:save!)
|
||||
expect(any_garden_type).not_to receive(:update)
|
||||
expect(any_garden_type).not_to receive(:update!)
|
||||
expect(any_garden_type).not_to receive(:destroy)
|
||||
delete :destroy, params: { id: any_garden_type.to_param, params: { garden_type: valid_params } }
|
||||
expect(response).to redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -25,29 +25,42 @@ RSpec.describe GardensController do
|
||||
describe 'changing existing records' do
|
||||
before do
|
||||
allow(Garden).to receive(:find).and_return(:garden)
|
||||
expect(garden).not_to receive(:save)
|
||||
expect(garden).not_to receive(:save!)
|
||||
expect(garden).not_to receive(:update)
|
||||
expect(garden).not_to receive(:update!)
|
||||
expect(garden).not_to receive(:destroy)
|
||||
end
|
||||
|
||||
describe 'GET edit' do
|
||||
before { get :edit, params: { slug: garden.to_param } }
|
||||
|
||||
it { expect(response).to redirect_to(new_member_session_path) }
|
||||
it "redirects to login" do
|
||||
expect(garden).not_to receive(:save)
|
||||
expect(garden).not_to receive(:save!)
|
||||
expect(garden).not_to receive(:update)
|
||||
expect(garden).not_to receive(:update!)
|
||||
expect(garden).not_to receive(:destroy)
|
||||
get :edit, params: { slug: garden.to_param }
|
||||
expect(response).to redirect_to(new_member_session_path)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST update' do
|
||||
before { post :update, params: { slug: garden.to_param, garden: valid_params } }
|
||||
|
||||
it { expect(response).to redirect_to(new_member_session_path) }
|
||||
it "redirects to login" do
|
||||
expect(garden).not_to receive(:save)
|
||||
expect(garden).not_to receive(:save!)
|
||||
expect(garden).not_to receive(:update)
|
||||
expect(garden).not_to receive(:update!)
|
||||
expect(garden).not_to receive(:destroy)
|
||||
post :update, params: { slug: garden.to_param, garden: valid_params }
|
||||
expect(response).to redirect_to(new_member_session_path)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'DELETE' do
|
||||
before { delete :destroy, params: { slug: garden.to_param, params: { garden: valid_params } } }
|
||||
|
||||
it { expect(response).to redirect_to(new_member_session_path) }
|
||||
it "redirects to login" do
|
||||
expect(garden).not_to receive(:save)
|
||||
expect(garden).not_to receive(:save!)
|
||||
expect(garden).not_to receive(:update)
|
||||
expect(garden).not_to receive(:update!)
|
||||
expect(garden).not_to receive(:destroy)
|
||||
delete :destroy, params: { slug: garden.to_param, params: { garden: valid_params } }
|
||||
expect(response).to redirect_to(new_member_session_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -61,30 +74,43 @@ RSpec.describe GardensController do
|
||||
let(:not_my_garden) { double('garden') }
|
||||
|
||||
before do
|
||||
expect(Garden).to receive(:find).and_return(:not_my_garden)
|
||||
expect(not_my_garden).not_to receive(:save)
|
||||
expect(not_my_garden).not_to receive(:save!)
|
||||
expect(not_my_garden).not_to receive(:update)
|
||||
expect(not_my_garden).not_to receive(:update!)
|
||||
expect(not_my_garden).not_to receive(:destroy)
|
||||
allow(Garden).to receive(:find).and_return(:not_my_garden)
|
||||
end
|
||||
|
||||
describe 'GET edit' do
|
||||
before { get :edit, params: { slug: not_my_garden.to_param } }
|
||||
|
||||
it { expect(response).to redirect_to(root_path) }
|
||||
it "redirects to root" do
|
||||
expect(not_my_garden).not_to receive(:save)
|
||||
expect(not_my_garden).not_to receive(:save!)
|
||||
expect(not_my_garden).not_to receive(:update)
|
||||
expect(not_my_garden).not_to receive(:update!)
|
||||
expect(not_my_garden).not_to receive(:destroy)
|
||||
get :edit, params: { slug: not_my_garden.to_param }
|
||||
expect(response).to redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST update' do
|
||||
before { post :update, params: { slug: not_my_garden.to_param, garden: valid_params } }
|
||||
|
||||
it { expect(response).to redirect_to(root_path) }
|
||||
it "redirects to root" do
|
||||
expect(not_my_garden).not_to receive(:save)
|
||||
expect(not_my_garden).not_to receive(:save!)
|
||||
expect(not_my_garden).not_to receive(:update)
|
||||
expect(not_my_garden).not_to receive(:update!)
|
||||
expect(not_my_garden).not_to receive(:destroy)
|
||||
post :update, params: { slug: not_my_garden.to_param, garden: valid_params }
|
||||
expect(response).to redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'DELETE' do
|
||||
before { delete :destroy, params: { slug: not_my_garden.to_param, params: { garden: valid_params } } }
|
||||
|
||||
it { expect(response).to redirect_to(root_path) }
|
||||
it "redirects to root" do
|
||||
expect(not_my_garden).not_to receive(:save)
|
||||
expect(not_my_garden).not_to receive(:save!)
|
||||
expect(not_my_garden).not_to receive(:update)
|
||||
expect(not_my_garden).not_to receive(:update!)
|
||||
expect(not_my_garden).not_to receive(:destroy)
|
||||
delete :destroy, params: { slug: not_my_garden.to_param, params: { garden: valid_params } }
|
||||
expect(response).to redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -22,7 +22,6 @@ describe "forums", :js do
|
||||
before do
|
||||
visit forums_path
|
||||
click_link "New forum"
|
||||
expect(page).to have_current_path new_forum_path, ignore_query: true
|
||||
fill_in 'Name', with: 'Discussion'
|
||||
fill_in 'Description', with: "this is a new forum"
|
||||
select member.login_name, from: "Owner"
|
||||
|
||||
@@ -23,7 +23,6 @@ describe "plant parts", :js do
|
||||
before do
|
||||
visit plant_parts_path
|
||||
click_link "New plant part"
|
||||
expect(page).to have_current_path new_plant_part_path, ignore_query: true
|
||||
fill_in 'Name', with: "this is a new plant part"
|
||||
click_button 'Save'
|
||||
end
|
||||
|
||||
@@ -23,7 +23,6 @@ describe "roles", :js do
|
||||
before do
|
||||
visit admin_roles_path
|
||||
click_link "New role"
|
||||
expect(page).to have_current_path new_admin_role_path, ignore_query: true
|
||||
fill_in 'Name', with: 'Discussion'
|
||||
fill_in 'Description', with: "this is a new role"
|
||||
click_button 'Save'
|
||||
|
||||
@@ -31,12 +31,15 @@ describe "crop detail page", :js, :search do
|
||||
seed.photos << second_seed_photo
|
||||
Crop.reindex
|
||||
visit crop_path(crop)
|
||||
expect(crop.photos.count).to eq 6
|
||||
expect(crop.photos.by_model(Planting).count).to eq 2
|
||||
expect(page).to have_content 'Photos'
|
||||
end
|
||||
|
||||
shared_examples "shows photos" do
|
||||
it "shows the photo section" do
|
||||
expect(crop.photos.count).to eq 6
|
||||
expect(crop.photos.by_model(Planting).count).to eq 2
|
||||
expect(page).to have_content 'Photos'
|
||||
end
|
||||
|
||||
describe "show planting photos" do
|
||||
it { is_expected.to have_xpath("//img[contains(@src,'#{first_planting_photo.fullsize_url}')]") }
|
||||
it { is_expected.to have_xpath("//img[contains(@src,'#{second_planting_photo.fullsize_url}')]") }
|
||||
|
||||
@@ -12,17 +12,19 @@ describe "members list" do
|
||||
|
||||
before do
|
||||
visit members_path
|
||||
expect(page).to have_css "#sort"
|
||||
expect(page).to have_css "form"
|
||||
end
|
||||
|
||||
it "default alphabetical sort" do
|
||||
expect(page).to have_css "#sort"
|
||||
expect(page).to have_css "form"
|
||||
click_button('Show')
|
||||
expect(subject.first).to have_text archaeopteryx.login_name
|
||||
expect(subject.last).to have_text zephyrosaurus.login_name
|
||||
end
|
||||
|
||||
it "recently joined sort" do
|
||||
expect(page).to have_css "#sort"
|
||||
expect(page).to have_css "form"
|
||||
select("recently", from: 'sort')
|
||||
click_button('Show')
|
||||
expect(subject.first).to have_text testingname.login_name
|
||||
|
||||
@@ -11,7 +11,7 @@ shared_examples "append date" do
|
||||
click_link 'Actions'
|
||||
click_link link_text
|
||||
within "div.datepicker" do
|
||||
expect(page).to have_content this_month.to_s
|
||||
find(".datepicker-days", text: this_month.to_s)
|
||||
find(".datepicker-days td.day", text: "21").click
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user