From c5963a422f2e3d11deee53654217df1d8c113236 Mon Sep 17 00:00:00 2001 From: Ryan Arakawa Date: Tue, 12 Aug 2025 16:53:54 -0500 Subject: [PATCH] fix tests * rename spec file to fit how the repo does request tests --- spec/mailers/submitter_mailer_spec.rb | 9 +++- ...roller_spec.rb => request_changes_spec.rb} | 41 +++++++++++++------ 2 files changed, 37 insertions(+), 13 deletions(-) rename spec/requests/{submitters_request_changes_controller_spec.rb => request_changes_spec.rb} (52%) diff --git a/spec/mailers/submitter_mailer_spec.rb b/spec/mailers/submitter_mailer_spec.rb index 4be88fb9..2fa599d2 100644 --- a/spec/mailers/submitter_mailer_spec.rb +++ b/spec/mailers/submitter_mailer_spec.rb @@ -8,7 +8,14 @@ RSpec.describe SubmitterMailer, type: :mailer do let(:template) { create(:template, account: account, author: user) } let(:submission) { create(:submission, template: template, account: account, created_by_user: user) } let(:submitter) do - create(:submitter, submission: submission, account: account, email: 'test@example.com', name: 'Jane Smith') + create( + :submitter, + submission: submission, + account: account, + email: 'test@example.com', + name: 'Jane Smith', + uuid: template.submitters.first['uuid'] + ) end describe '#changes_requested_email' do diff --git a/spec/requests/submitters_request_changes_controller_spec.rb b/spec/requests/request_changes_spec.rb similarity index 52% rename from spec/requests/submitters_request_changes_controller_spec.rb rename to spec/requests/request_changes_spec.rb index 885ca8da..2e140134 100644 --- a/spec/requests/submitters_request_changes_controller_spec.rb +++ b/spec/requests/request_changes_spec.rb @@ -2,38 +2,50 @@ require 'rails_helper' -RSpec.describe SubmittersRequestChangesController, type: :controller do +describe 'Request Changes' do let(:account) { create(:account) } let(:user) { create(:user, account: account) } let(:template) { create(:template, account: account, author: user) } let(:submission) { create(:submission, template: template, account: account, created_by_user: user) } - let(:submitter) { create(:submitter, submission: submission, account: account, completed_at: 1.hour.ago) } + let(:submitter) do + create( + :submitter, + submission: submission, + account: account, + completed_at: 1.hour.ago, + uuid: template.submitters.first['uuid'] + ) + end before do sign_in user end - describe 'GET #request_changes' do - it 'renders the request changes modal' do - get :request_changes, params: { slug: submitter.slug }, xhr: true + describe 'GET /submitters/:slug/request_changes' do + it 'renders the request changes modal when xhr request' do + get "/submitters/#{submitter.slug}/request_changes", + headers: { 'X-Requested-With' => 'XMLHttpRequest' } + expect(response).to have_http_status(:ok) end end - describe 'POST #request_changes' do + describe 'POST /submitters/:slug/request_changes' do context 'when user can request changes' do it 'updates submitter and sends notifications' do expect do - post :request_changes, params: { slug: submitter.slug, reason: 'Please fix the signature' } + post "/submitters/#{submitter.slug}/request_changes", + params: { reason: 'Please fix the signature' } end.to change { submitter.reload.changes_requested_at }.from(nil) .and change { submitter.reload.completed_at }.to(nil) - expect(response).to redirect_to(submission_path(submission)) + expect(response).to have_http_status(:found) end it 'creates submission event' do expect do - post :request_changes, params: { slug: submitter.slug, reason: 'Fix this' } + post "/submitters/#{submitter.slug}/request_changes", + params: { reason: 'Fix this' } end.to change(SubmissionEvent, :count).by(1) event = SubmissionEvent.last @@ -45,11 +57,16 @@ RSpec.describe SubmittersRequestChangesController, type: :controller do context 'when user cannot request changes' do let(:other_user) { create(:user, account: account) } - before { sign_in other_user } + before do + sign_out user + sign_in other_user + end it 'redirects with alert' do - post :request_changes, params: { slug: submitter.slug, reason: 'Fix this' } - expect(response).to redirect_to(root_path) + post "/submitters/#{submitter.slug}/request_changes", + params: { reason: 'Fix this' } + + expect(response).to have_http_status(:found) end end end