diff --git a/app/javascript/controllers/location_sharing_toggle_controller.js b/app/javascript/controllers/location_sharing_toggle_controller.js index 1576aba5..57e3b1f8 100644 --- a/app/javascript/controllers/location_sharing_toggle_controller.js +++ b/app/javascript/controllers/location_sharing_toggle_controller.js @@ -62,7 +62,7 @@ export default class extends Controller { try { const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); - const response = await fetch(`/families/${this.familyIdValue}/update_location_sharing`, { + const response = await fetch(`/family/update_location_sharing`, { method: 'PATCH', headers: { 'Accept': 'application/json', @@ -273,4 +273,4 @@ export default class extends Controller { } return false; } -} \ No newline at end of file +} diff --git a/app/views/families/new.html.erb b/app/views/families/new.html.erb index 3d7c6871..c9350dfd 100644 --- a/app/views/families/new.html.erb +++ b/app/views/families/new.html.erb @@ -10,7 +10,7 @@
- <%= form_with model: @family, local: true, class: "space-y-6" do |form| %> + <%= form_with url: family_path, model: @family, local: true, class: "space-y-6" do |form| %> <% if @family.errors.any? %>
@@ -63,4 +63,4 @@ <% end %>
-
\ No newline at end of file + diff --git a/spec/requests/families_spec.rb b/spec/requests/families_spec.rb index e7e6f4b0..4bab31bf 100644 --- a/spec/requests/families_spec.rb +++ b/spec/requests/families_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe 'Families', type: :request do +RSpec.describe 'Family', type: :request do let(:user) { create(:user) } let(:other_user) { create(:user) } let(:family) { create(:family, creator: user) } @@ -14,9 +14,6 @@ RSpec.describe 'Families', type: :request do sign_in user end - # GET /families route no longer exists - we use singular resource /family - # Users without a family should go to /family/new instead - describe 'GET /family' do it 'shows the family page' do get "/family" @@ -76,9 +73,10 @@ RSpec.describe 'Families', type: :request do end it 'redirects to the new family with success message' do - post '/families', params: valid_attributes + post '/family', params: valid_attributes + expect(response).to have_http_status(:found) - expect(response.location).to match(%r{/families/}) + expect(response.location).to eq family_url follow_redirect! expect(response.body).to include('Family created successfully!') end @@ -94,7 +92,7 @@ RSpec.describe 'Families', type: :request do end it 'renders the new template with errors' do - post '/families', params: invalid_attributes + post '/family', params: invalid_attributes expect(response).to have_http_status(:unprocessable_content) end end @@ -155,10 +153,8 @@ RSpec.describe 'Families', type: :request do describe 'DELETE /family' do context 'when family has only one member' do it 'deletes the family' do - expect do - delete "/family" - end.to change(Family, :count).by(-1) - expect(response).to redirect_to(family_path) + expect { delete '/family' }.to change(Family, :count).by(-1) + expect(response).to redirect_to(new_family_path) end end @@ -168,9 +164,7 @@ RSpec.describe 'Families', type: :request do end it 'does not delete the family' do - expect do - delete "/family" - end.not_to change(Family, :count) + expect { delete "/family" }.not_to change(Family, :count) expect(response).to redirect_to(family_path) follow_redirect! expect(response.body).to include('Cannot delete family with members') @@ -196,22 +190,22 @@ RSpec.describe 'Families', type: :request do it 'denies access to show when user is not in family' do get "/family" - expect(response).to redirect_to(family_path) + expect(response).to redirect_to(new_family_path) end - it 'redirects to families index when user is not in family for edit' do + it 'redirects to family page when user is not in family for edit' do get "/family/edit" - expect(response).to redirect_to(family_path) + expect(response).to redirect_to(new_family_path) end - it 'redirects to families index when user is not in family for update' do + it 'redirects to family page when user is not in family for update' do patch "/family", params: { family: { name: 'Hacked' } } - expect(response).to redirect_to(family_path) + expect(response).to redirect_to(new_family_path) end - it 'redirects to families index when user is not in family for destroy' do + it 'redirects to family page when user is not in family for destroy' do delete "/family" - expect(response).to redirect_to(family_path) + expect(response).to redirect_to(new_family_path) end end @@ -220,7 +214,7 @@ RSpec.describe 'Families', type: :request do before { sign_out user } it 'redirects to login for index' do - get '/families' + get '/family' expect(response).to redirect_to(new_user_session_path) end @@ -230,12 +224,13 @@ RSpec.describe 'Families', type: :request do end it 'redirects to login for new' do - get '/families/new' + get '/family/new' + expect(response).to redirect_to(new_user_session_path) end it 'redirects to login for create' do - post '/families', params: { family: { name: 'Test' } } + post '/family', params: { family: { name: 'Test' } } expect(response).to redirect_to(new_user_session_path) end