|
|
|
@ -7,6 +7,7 @@ describe 'Submission API', type: :request do
|
|
|
|
let!(:author) { create(:user, account:) }
|
|
|
|
let!(:author) { create(:user, account:) }
|
|
|
|
let!(:folder) { create(:template_folder, account:) }
|
|
|
|
let!(:folder) { create(:template_folder, account:) }
|
|
|
|
let!(:templates) { create_list(:template, 2, account:, author:, folder:) }
|
|
|
|
let!(:templates) { create_list(:template, 2, account:, author:, folder:) }
|
|
|
|
|
|
|
|
let!(:multiple_submitters_template) { create(:template, submitter_count: 3, account:, author:, folder:) }
|
|
|
|
|
|
|
|
|
|
|
|
describe 'GET /api/submissions' do
|
|
|
|
describe 'GET /api/submissions' do
|
|
|
|
it 'returns a list of submissions' do
|
|
|
|
it 'returns a list of submissions' do
|
|
|
|
@ -57,6 +58,31 @@ describe 'Submission API', type: :request do
|
|
|
|
expect(response.parsed_body).to eq(JSON.parse(create_submission_body(submission).to_json))
|
|
|
|
expect(response.parsed_body).to eq(JSON.parse(create_submission_body(submission).to_json))
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it 'creates a submission when some submitter roles are not provided' do
|
|
|
|
|
|
|
|
post '/api/submissions', headers: { 'x-auth-token': author.access_token.token }, params: {
|
|
|
|
|
|
|
|
template_id: multiple_submitters_template.id,
|
|
|
|
|
|
|
|
send_email: true,
|
|
|
|
|
|
|
|
submitters: [
|
|
|
|
|
|
|
|
{ role: 'First Role', email: 'john.doe@example.com' },
|
|
|
|
|
|
|
|
{ email: 'jane.doe@example.com' },
|
|
|
|
|
|
|
|
{ email: 'mike.doe@example.com' }
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
}.to_json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
expect(response).to have_http_status(:ok)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
submission = Submission.last
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
expect(response.parsed_body).to eq(JSON.parse(create_submission_body(submission).to_json))
|
|
|
|
|
|
|
|
expect(response.parsed_body).to eq(JSON.parse(create_submission_body(submission).to_json))
|
|
|
|
|
|
|
|
expect(response.parsed_body[0]['role']).to eq('First Party')
|
|
|
|
|
|
|
|
expect(response.parsed_body[0]['email']).to eq('john.doe@example.com')
|
|
|
|
|
|
|
|
expect(response.parsed_body[1]['role']).to eq('Second Party')
|
|
|
|
|
|
|
|
expect(response.parsed_body[1]['email']).to eq('jane.doe@example.com')
|
|
|
|
|
|
|
|
expect(response.parsed_body[2]['role']).to eq('Third Party')
|
|
|
|
|
|
|
|
expect(response.parsed_body[2]['email']).to eq('mike.doe@example.com')
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
it 'returns an error if the template fields are missing' do
|
|
|
|
it 'returns an error if the template fields are missing' do
|
|
|
|
templates[0].update(fields: [])
|
|
|
|
templates[0].update(fields: [])
|
|
|
|
|
|
|
|
|
|
|
|
@ -72,7 +98,7 @@ describe 'Submission API', type: :request do
|
|
|
|
|
|
|
|
|
|
|
|
it 'returns an error if submitter roles are not unique' do
|
|
|
|
it 'returns an error if submitter roles are not unique' do
|
|
|
|
post '/api/submissions', headers: { 'x-auth-token': author.access_token.token }, params: {
|
|
|
|
post '/api/submissions', headers: { 'x-auth-token': author.access_token.token }, params: {
|
|
|
|
template_id: templates[0].id,
|
|
|
|
template_id: multiple_submitters_template.id,
|
|
|
|
send_email: true,
|
|
|
|
send_email: true,
|
|
|
|
submitters: [
|
|
|
|
submitters: [
|
|
|
|
{ role: 'First Role', email: 'john.doe@example.com' },
|
|
|
|
{ role: 'First Role', email: 'john.doe@example.com' },
|
|
|
|
|