diff --git a/lib/custom_wizard/template.rb b/lib/custom_wizard/template.rb index 12a86bf6..59a9998e 100644 --- a/lib/custom_wizard/template.rb +++ b/lib/custom_wizard/template.rb @@ -64,6 +64,8 @@ class CustomWizard::Template ensure_wizard_upload_references!(wizard_id) PluginStore.remove(CustomWizard::PLUGIN_NAME, wizard.id) clear_user_wizard_redirect(wizard_id, after_time: !!wizard.after_time) + related_custom_fields = CategoryCustomField.where(name: 'create_topic_wizard', value: wizard.name) + related_custom_fields.destroy_all end clear_cache_keys diff --git a/plugin.rb b/plugin.rb index 287419b2..4b6440de 100644 --- a/plugin.rb +++ b/plugin.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true # name: discourse-custom-wizard # about: Forms for Discourse. Better onboarding, structured posting, data enrichment, automated actions and much more. -# version: 2.4.12 +# version: 2.4.13 # authors: Angus McLeod, Faizaan Gagan, Robert Barrow, Keegan George, Kaitlin Maddever, Juan Marcos Gutierrez Ramos # url: https://github.com/paviliondev/discourse-custom-wizard # contact_emails: development@pavilion.tech diff --git a/spec/requests/custom_wizard/admin/wizard_controller_spec.rb b/spec/requests/custom_wizard/admin/wizard_controller_spec.rb index 9f63cb6b..04884b49 100644 --- a/spec/requests/custom_wizard/admin/wizard_controller_spec.rb +++ b/spec/requests/custom_wizard/admin/wizard_controller_spec.rb @@ -5,6 +5,7 @@ describe CustomWizard::AdminWizardController do fab!(:user1) { Fabricate(:user) } fab!(:user2) { Fabricate(:user) } let(:template) { get_wizard_fixture("wizard") } + let(:category) { Fabricate(:category, custom_fields: { create_topic_wizard: template['name'] }) } before do CustomWizard::Template.save(template, skip_jobs: true) @@ -39,10 +40,12 @@ describe CustomWizard::AdminWizardController do expect(response.parsed_body['steps'].length).to eq(3) end - it "removes wizard templates" do + it "removes wizard templates whilst making sure create_topic_wizard settings for that wizard are removed from Categories" do + expect(CategoryCustomField.find_by(category_id: category.id, name: 'create_topic_wizard', value: template['name'])).not_to eq(nil) delete "/admin/wizards/wizard/#{template['id']}.json" expect(response.status).to eq(200) expect(CustomWizard::Template.exists?(template['id'])).to eq(false) + expect(CategoryCustomField.find_by(name: 'create_topic_wizard', value: template['name'])).to eq(nil) end it "saves wizard templates" do