diff --git a/spec/requests/submissions_spec.rb b/spec/requests/submissions_spec.rb index 502f6520..020bd908 100644 --- a/spec/requests/submissions_spec.rb +++ b/spec/requests/submissions_spec.rb @@ -104,6 +104,21 @@ describe 'Submission API', type: :request do expect(response.parsed_body).to eq(JSON.parse(create_submission_body(submission).to_json)) end + it 'creates a submission when the submitter is marked as completed' do + post '/api/submissions', headers: { 'x-auth-token': author.access_token.token }, params: { + template_id: templates[0].id, + submitters: [{ role: 'First Party', email: 'john.doe@example.com', completed: true }] + }.to_json + + expect(response).to have_http_status(:ok) + + submission = Submission.last + submitter = submission.submitters.first + + expect(submitter.status).to eq('completed') + expect(submitter.completed_at).not_to be_nil + 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, @@ -395,7 +410,7 @@ describe 'Submission API', type: :request do preferences: { send_email: true, send_sms: false }, role: submitter.template.submitters.find { |s| s['uuid'] == submitter.uuid }['name'], embed_src: "#{Docuseal::DEFAULT_APP_URL}/s/#{submitter.slug}", - values: [] + values: Submitters::SerializeForWebhook.build_values_array(submitter) } end end diff --git a/spec/requests/submitters_spec.rb b/spec/requests/submitters_spec.rb index ffe35cd9..023de7ee 100644 --- a/spec/requests/submitters_spec.rb +++ b/spec/requests/submitters_spec.rb @@ -95,6 +95,23 @@ describe 'Submitter API', type: :request do expect(submitter.email).to eq('john.doe+updated@example.com') expect(response.parsed_body).to eq(JSON.parse(update_submitter_body(submitter).to_json)) end + + it 'marks a submitter as completed' do + submitter = create(:submission, :with_submitters, :with_events, + template: templates[0], + created_by_user: author).submitters.first + + put "/api/submitters/#{submitter.id}", headers: { 'x-auth-token': author.access_token.token }, params: { + completed: true + }.to_json + + expect(response).to have_http_status(:ok) + + submitter.reload + + expect(submitter.status).to eq('completed') + expect(submitter.completed_at).not_to be_nil + end end private @@ -134,8 +151,8 @@ describe 'Submitter API', type: :request do data: event.data.slice(:reason) } end, - values: [], - documents: [], + values: Submitters::SerializeForWebhook.build_values_array(submitter), + documents: Submitters::SerializeForWebhook.build_documents_array(submitter), role: submitter.template.submitters.find { |s| s['uuid'] == submitter.uuid }['name'] } end