Skip to content

Commit 2ad7b00

Browse files
authored
Merge pull request #364 from alphagov/add-unalive-rake-task
Add rake task to make a form not live
2 parents e533e44 + e4c2806 commit 2ad7b00

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

lib/tasks/forms_admin.rake

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace :forms_admin do
2+
desc "Unlive a form"
3+
task :make_unlive, [:form_id] => :environment do |_, args|
4+
form = Form.find(args[:form_id])
5+
6+
if form.made_live_forms.empty?
7+
puts "Form #{form.name} is not live" unless Rails.env.test?
8+
exit
9+
end
10+
11+
form.make_unlive!
12+
form.reload
13+
14+
puts "Unlived form #{form.name}" unless Rails.env.test?
15+
end
16+
end

spec/lib/tasks/forms_admin_spec.rb

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
require "rails_helper"
2+
require "rake"
3+
4+
RSpec.describe "forms_admin.rake" do
5+
describe "forms_admin:make_unlive", type: :task do
6+
before do
7+
Rake.application.rake_require "tasks/forms_admin"
8+
Rake::Task.define_task(:environment)
9+
end
10+
11+
it "makes a given form unlive" do
12+
form = create(:made_live_form).form
13+
expect(form.has_live_version).to be true
14+
15+
Rake::Task["forms_admin:make_unlive"].invoke(form.id)
16+
17+
form.reload
18+
expect(form.has_live_version).to be false
19+
end
20+
21+
it "does not make a form unlive if it has no live version" do
22+
form = create(:form)
23+
expect(form.has_live_version).to be false
24+
25+
Rake::Task["forms_admin:make_unlive"].invoke(form.id)
26+
27+
form.reload
28+
expect(form.has_live_version).to be false
29+
end
30+
end
31+
end

0 commit comments

Comments
 (0)