Skip to content

Commit 0e6a387

Browse files
committed
Only send org admin alerts if the feature flag is enabled
1 parent 84b5eeb commit 0e6a387

File tree

7 files changed

+42
-8
lines changed

7 files changed

+42
-8
lines changed

app/services/org_admin_alerts_service.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ def initialize(form:, current_user:)
66
end
77

88
def form_made_live
9+
return unless feature_enabled?
10+
911
@org_admins.each do |org_admin_user|
1012
form_made_live_email(to_email: org_admin_user.email).deliver_now
1113
end
1214
end
1315

1416
def new_draft_form_created
17+
return unless feature_enabled?
1518
return unless @form.group.active?
1619

1720
@org_admins.each do |org_admin_user|
@@ -20,6 +23,8 @@ def new_draft_form_created
2023
end
2124

2225
def draft_of_existing_form_created
26+
return unless feature_enabled?
27+
2328
@org_admins.each do |org_admin_user|
2429
draft_of_existing_form_created_email(to_email: org_admin_user.email).deliver_now
2530
end
@@ -74,4 +79,8 @@ def draft_of_existing_form_created_email(to_email:)
7479
def copied_from_form
7580
Form.find_by(id: @form.copied_from_id)
7681
end
82+
83+
def feature_enabled?
84+
FeatureService.enabled?(:org_admin_alerts_enabled)
85+
end
7786
end

spec/requests/forms/copy_controller_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require "rails_helper"
22

3-
RSpec.describe Forms::CopyController, type: :request do
3+
RSpec.describe Forms::CopyController, :feature_org_admin_alerts_enabled, type: :request do
44
let(:id) { form.id }
55
let(:form) { create(:form) }
66

@@ -83,7 +83,7 @@
8383
expect(response).to render_template(:confirm)
8484
end
8585

86-
it "does not send an email to the organisation admins", :feature_org_admin_alerts_enabled do
86+
it "does not send an email to the organisation admins" do
8787
post create_copy_form_path(id), params: { forms_copy_input: { name: "", tag: "draft" } }
8888
expect(ActionMailer::Base.deliveries.count).to eq(0)
8989
end

spec/requests/forms/make_live_controller_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require "rails_helper"
22

3-
RSpec.describe Forms::MakeLiveController, type: :request do
3+
RSpec.describe Forms::MakeLiveController, :feature_org_admin_alerts_enabled, type: :request do
44
let(:user) { build :user, organisation: }
55
let(:form) { create(:form, :ready_for_live) }
66
let(:id) { form.id }

spec/requests/forms/unarchive_controller_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require "rails_helper"
22

3-
RSpec.describe Forms::UnarchiveController, type: :request do
3+
RSpec.describe Forms::UnarchiveController, :feature_org_admin_alerts_enabled, type: :request do
44
let(:user) { standard_user }
55

66
let(:form) { create(:form, :archived) }

spec/requests/forms_controller_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
login_as user
1313
end
1414

15-
describe "#alert_org_admins_if_draft_created" do
15+
describe "#alert_org_admins_if_draft_created", :feature_org_admin_alerts_enabled do
1616
before do
1717
# Adding a new question loads in the form again from the database during creation. Post to this route to test that
1818
# this triggers an alert email for the status change even though the Form model loaded in by the controller isn't

spec/requests/group_forms_controller_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require "rails_helper"
22

3-
RSpec.describe "/groups/:group_id/forms", type: :request do
3+
RSpec.describe "/groups/:group_id/forms", :feature_org_admin_alerts_enabled, type: :request do
44
let(:group) { create :group, organisation:, status: :active }
55
let(:organisation) { test_org }
66
let(:nonexistent_group) { "foobar" }
@@ -161,7 +161,7 @@
161161
expect(response.body).to include I18n.t("error_summary.heading")
162162
end
163163

164-
it "does not send an email to the organisation admins", :feature_org_admin_alerts_enabled do
164+
it "does not send an email to the organisation admins" do
165165
post group_forms_url(group), params: { forms_name_input: invalid_attributes }
166166
expect(ActionMailer::Base.deliveries.count).to eq(0)
167167
end

spec/services/org_admin_alerts_service_spec.rb

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require "rails_helper"
22

3-
RSpec.describe OrgAdminAlertsService do
3+
RSpec.describe OrgAdminAlertsService, :feature_org_admin_alerts_enabled do
44
subject(:service) { described_class.new(form:, current_user:) }
55

66
let(:organisation) { create(:organisation, :with_signed_mou) }
@@ -156,6 +156,15 @@
156156
expect(ActionMailer::Base.deliveries.size).to eq(0)
157157
end
158158
end
159+
160+
context "when the feature is disabled", feature_org_admin_alerts_enabled: false do
161+
let(:previous_state) { :draft }
162+
163+
it "does not send any emails" do
164+
service.form_made_live
165+
expect(ActionMailer::Base.deliveries.size).to eq(0)
166+
end
167+
end
159168
end
160169

161170
describe "#new_draft_form_created" do
@@ -228,6 +237,13 @@
228237
expect(ActionMailer::Base.deliveries.size).to eq(0)
229238
end
230239
end
240+
241+
context "when the feature is disabled", feature_org_admin_alerts_enabled: false do
242+
it "does not send any emails" do
243+
service.new_draft_form_created
244+
expect(ActionMailer::Base.deliveries.size).to eq(0)
245+
end
246+
end
231247
end
232248

233249
describe "#draft_of_existing_form_created" do
@@ -297,5 +313,14 @@
297313
expect(ActionMailer::Base.deliveries.size).to eq(0)
298314
end
299315
end
316+
317+
context "when the feature is disabled", feature_org_admin_alerts_enabled: false do
318+
let(:form) { create(:form, :live_with_draft) }
319+
320+
it "does not send any emails" do
321+
service.draft_of_existing_form_created
322+
expect(ActionMailer::Base.deliveries.size).to eq(0)
323+
end
324+
end
300325
end
301326
end

0 commit comments

Comments
 (0)