Skip to content

Commit b6a55dd

Browse files
committed
Handle weekly batch receiving submissions
1 parent fe66f82 commit b6a55dd

File tree

2 files changed

+42
-2
lines changed

2 files changed

+42
-2
lines changed

app/jobs/receive_submission_deliveries_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def perform
3434

3535
def process_delivery(delivery, submission, **attributes)
3636
set_submission_logging_attributes(submission:, delivery:) if delivery.immediate?
37-
set_submission_batch_logging_attributes(form: submission.form, mode: submission.mode_object, delivery:) if delivery.daily?
37+
set_submission_batch_logging_attributes(form: submission.form, mode: submission.mode_object, delivery:) if delivery.daily? || delivery.weekly?
3838

3939
delivery.update! attributes
4040

spec/jobs/receive_submission_deliveries_job_spec.rb

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,19 @@
6060
expect(CloudWatchService).not_to have_received(:record_submission_delivery_latency_metric)
6161
end
6262
end
63+
64+
context "when the delivery is a weekly batch delivery" do
65+
let(:submission) { create :submission, :sent, delivery_reference: "something-else", created_at: Time.zone.parse("2025-05-09T10:25:35.001Z") }
66+
67+
before do
68+
create :delivery, :weekly, delivery_reference:, submissions: [submission], created_at: Time.zone.parse("2025-05-09T10:25:35.001Z")
69+
end
70+
71+
it "does not send submission delivery latency metric" do
72+
described_class.perform_now
73+
expect(CloudWatchService).not_to have_received(:record_submission_delivery_latency_metric)
74+
end
75+
end
6376
end
6477

6578
describe "processing delivery notifications" do
@@ -94,7 +107,32 @@
94107

95108
context "when the delivery is a daily batch delivery" do
96109
let!(:submission) { create :submission, :sent, delivery_reference: "something-else" }
97-
let!(:delivery) { create(:delivery, :daily, delivery_reference:, submissions: [submission], created_at: Time.zone.parse("2025-05-09T10:25:35.001Z")) }
110+
let!(:delivery) { create(:delivery, :daily_scheduled_delivery, delivery_reference:, submissions: [submission], created_at: Time.zone.parse("2025-05-09T10:25:35.001Z")) }
111+
112+
it "logs form event with batch delivery details", :capture_logging do
113+
perform_enqueued_jobs
114+
115+
expect(log_lines).to include(hash_including(
116+
"level" => "INFO",
117+
"message" => "Form event",
118+
"event" => "form_submission_batch_delivered",
119+
"form_id" => submission.form_id,
120+
"form_name" => submission.form.name,
121+
"delivery_reference" => delivery_reference,
122+
"delivery_id" => delivery.id,
123+
"delivery_schedule" => "daily",
124+
"batch_begin_at" => delivery.batch_begin_at,
125+
"preview" => "false",
126+
"sns_message_timestamp" => sns_message_timestamp,
127+
"job_id" => @job_id,
128+
"job_class" => "ReceiveSubmissionDeliveriesJob",
129+
))
130+
end
131+
end
132+
133+
context "when the delivery is a weekly batch delivery" do
134+
let!(:submission) { create :submission, :sent, delivery_reference: "something-else" }
135+
let!(:delivery) { create(:delivery, :weekly_scheduled_delivery, delivery_reference:, submissions: [submission], created_at: Time.zone.parse("2025-05-09T10:25:35.001Z")) }
98136

99137
it "logs form event with batch delivery details", :capture_logging do
100138
perform_enqueued_jobs
@@ -107,6 +145,8 @@
107145
"form_name" => submission.form.name,
108146
"delivery_reference" => delivery_reference,
109147
"delivery_id" => delivery.id,
148+
"delivery_schedule" => "weekly",
149+
"batch_begin_at" => delivery.batch_begin_at,
110150
"preview" => "false",
111151
"sns_message_timestamp" => sns_message_timestamp,
112152
"job_id" => @job_id,

0 commit comments

Comments
 (0)