* rename spec file to fit how the repo does request tests
pull/544/head
Ryan Arakawa 4 months ago
parent a6354e6802
commit c5963a422f

@ -8,7 +8,14 @@ RSpec.describe SubmitterMailer, type: :mailer do
let(:template) { create(:template, account: account, author: user) } let(:template) { create(:template, account: account, author: user) }
let(:submission) { create(:submission, template: template, account: account, created_by_user: user) } let(:submission) { create(:submission, template: template, account: account, created_by_user: user) }
let(:submitter) do 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 end
describe '#changes_requested_email' do describe '#changes_requested_email' do

@ -2,38 +2,50 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe SubmittersRequestChangesController, type: :controller do describe 'Request Changes' do
let(:account) { create(:account) } let(:account) { create(:account) }
let(:user) { create(:user, account: account) } let(:user) { create(:user, account: account) }
let(:template) { create(:template, account: account, author: user) } let(:template) { create(:template, account: account, author: user) }
let(:submission) { create(:submission, template: template, account: account, created_by_user: 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 before do
sign_in user sign_in user
end end
describe 'GET #request_changes' do describe 'GET /submitters/:slug/request_changes' do
it 'renders the request changes modal' do it 'renders the request changes modal when xhr request' do
get :request_changes, params: { slug: submitter.slug }, xhr: true get "/submitters/#{submitter.slug}/request_changes",
headers: { 'X-Requested-With' => 'XMLHttpRequest' }
expect(response).to have_http_status(:ok) expect(response).to have_http_status(:ok)
end end
end end
describe 'POST #request_changes' do describe 'POST /submitters/:slug/request_changes' do
context 'when user can request changes' do context 'when user can request changes' do
it 'updates submitter and sends notifications' do it 'updates submitter and sends notifications' do
expect 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) end.to change { submitter.reload.changes_requested_at }.from(nil)
.and change { submitter.reload.completed_at }.to(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 end
it 'creates submission event' do it 'creates submission event' do
expect 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) end.to change(SubmissionEvent, :count).by(1)
event = SubmissionEvent.last event = SubmissionEvent.last
@ -45,11 +57,16 @@ RSpec.describe SubmittersRequestChangesController, type: :controller do
context 'when user cannot request changes' do context 'when user cannot request changes' do
let(:other_user) { create(:user, account: account) } 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 it 'redirects with alert' do
post :request_changes, params: { slug: submitter.slug, reason: 'Fix this' } post "/submitters/#{submitter.slug}/request_changes",
expect(response).to redirect_to(root_path) params: { reason: 'Fix this' }
expect(response).to have_http_status(:found)
end end
end end
end end
Loading…
Cancel
Save