Skip to content

Commit 2805e07

Browse files
committed
(feature) Completing a submission also completes the associated task
After we have a valid and completed submission, the task is also complete.
1 parent 3db37d4 commit 2805e07

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

spec/models/submission_completion_spec.rb

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,40 @@
33
RSpec.describe SubmissionCompletion do
44
describe '#perform' do
55
let(:complete_submission) { SubmissionCompletion.new(submission) }
6+
let(:task) { FactoryBot.create(:task, status: :in_progress) }
67

78
context 'given an "in review" submission' do
89
context 'with validated entries' do
9-
let(:submission) { FactoryBot.create(:submission_with_validated_entries, aasm_state: 'in_review') }
10+
let(:submission) { FactoryBot.create(:submission_with_validated_entries, aasm_state: 'in_review', task: task) }
1011

1112
it 'transitions the submission to completed' do
1213
complete_submission.perform!
1314

1415
expect(submission).to be_completed
1516
end
17+
18+
it 'transitions the task to completed' do
19+
complete_submission.perform!
20+
21+
expect(task).to be_completed
22+
end
1623
end
1724

1825
context 'with some invalid entries' do
19-
let(:submission) { FactoryBot.create(:submission_with_invalid_entries) }
26+
let(:submission) { FactoryBot.create(:submission_with_invalid_entries, task: task) }
2027

2128
it 'leaves the submission in the "in_review" state' do
2229
expect { complete_submission.perform! }.not_to change { submission.aasm_state }
2330
end
31+
32+
it 'leaves the task in the "in_progress" state' do
33+
expect { complete_submission.perform! }.not_to change { task.status }
34+
end
2435
end
2536
end
2637

2738
context 'given a "processing" submission' do
28-
let(:submission) { FactoryBot.create(:submission_with_unprocessed_entries, aasm_state: :processing) }
39+
let(:submission) { FactoryBot.create(:submission_with_unprocessed_entries, aasm_state: :processing, task: task) }
2940

3041
it 'leaves the submission in its current state' do
3142
expect { complete_submission.perform! }.not_to change { submission.aasm_state }

spec/requests/v1/submissions_spec.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,9 +244,12 @@
244244

245245
describe 'POST /submissions/:submission_id/complete' do
246246
it 'marks the submission as complete' do
247+
task = FactoryBot.create(:task, status: :in_progress)
248+
247249
submission = FactoryBot.create(
248250
:submission_with_validated_entries,
249-
aasm_state: :in_review
251+
aasm_state: :in_review,
252+
task: task
250253
)
251254

252255
post "/v1/submissions/#{submission.id}/complete"
@@ -256,6 +259,7 @@
256259
submission.reload
257260

258261
expect(submission).to be_completed
262+
expect(submission.task).to be_completed
259263
end
260264
end
261265
end

0 commit comments

Comments
 (0)