From e8a41011eba84f2212b605425416799f5522038d Mon Sep 17 00:00:00 2001 From: Vinoth Kannan Date: Mon, 1 Jul 2024 07:14:34 +0530 Subject: [PATCH] FIX: should not raise error when minimum_required_tags value not defined for category. (#27658) While creating a new category if the user didn't specify a value for `minimum_required_tags` input but clicked it then it returned the "PG::NotNullViolation: null value in column 'minimum_required_tags'" error. --- .../discourse/app/routes/new-category.js | 1 + spec/system/new_category_spec.rb | 24 +++++++++++++++++++ spec/system/page_objects/pages/category.rb | 10 ++++++++ 3 files changed, 35 insertions(+) create mode 100644 spec/system/new_category_spec.rb diff --git a/app/assets/javascripts/discourse/app/routes/new-category.js b/app/assets/javascripts/discourse/app/routes/new-category.js index c84f9dca5ca..16473ba6ab4 100644 --- a/app/assets/javascripts/discourse/app/routes/new-category.js +++ b/app/assets/javascripts/discourse/app/routes/new-category.js @@ -57,6 +57,7 @@ export default class NewCategory extends DiscourseRoute { search_priority: SEARCH_PRIORITIES.normal, required_tag_groups: [], form_template_ids: [], + minimum_required_tags: 0, }); } diff --git a/spec/system/new_category_spec.rb b/spec/system/new_category_spec.rb new file mode 100644 index 00000000000..2eef15a87be --- /dev/null +++ b/spec/system/new_category_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +describe "New Category", type: :system do + fab!(:admin) + let(:category_page) { PageObjects::Pages::Category.new } + + before { sign_in(admin) } + + it "should create category with 0 in minimum_required_tags column when not defined" do + category_page.visit_new_category + + category_page.find(".edit-category-tab-general input.category-name").fill_in( + with: "New Category", + ) + category_page.find(".edit-category-nav .edit-category-tags a").click + category_page.find(".edit-category-tab-tags #category-minimum-tags").click + category_page.save_settings + + expect(page).to have_current_path("/c/new-category/edit/general") + + category_page.find(".edit-category-nav .edit-category-tags a").click + expect(category_page.find(".edit-category-tab-tags #category-minimum-tags").value).to eq("0") + end +end diff --git a/spec/system/page_objects/pages/category.rb b/spec/system/page_objects/pages/category.rb index c5e863d9894..1e66b9748a8 100644 --- a/spec/system/page_objects/pages/category.rb +++ b/spec/system/page_objects/pages/category.rb @@ -20,6 +20,16 @@ module PageObjects self end + def visit_categories + page.visit("/categories") + self + end + + def visit_new_category + page.visit("/new-category") + self + end + def back_to_category find(".edit-category-title-bar span", text: "Back to category").click self