From 2e73985d1b9d28509e7f31f0a45ce11172c2db6d Mon Sep 17 00:00:00 2001 From: Rafael dos Santos Silva Date: Mon, 21 Oct 2019 14:33:19 -0300 Subject: [PATCH] FIX: Make category updates slug validation idempotent Co-authored-by: Michael Brown --- app/models/category.rb | 1 + spec/models/category_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/app/models/category.rb b/app/models/category.rb index 40f5791090bd7a..a6c5deb48855cf 100644 --- a/app/models/category.rb +++ b/app/models/category.rb @@ -285,6 +285,7 @@ def ensure_slug if slug.present? # santized custom slug + slug = SiteSetting.slug_generation_method == 'encoded' ? CGI.unescape(self.slug) : self.slug self.slug = Slug.sanitize(slug) errors.add(:slug, 'is already in use') if duplicate_slug? else diff --git a/spec/models/category_spec.rb b/spec/models/category_spec.rb index 225b87eeab7aea..fdf2b7a9e529d8 100644 --- a/spec/models/category_spec.rb +++ b/spec/models/category_spec.rb @@ -316,6 +316,12 @@ expect(@category.slug).to eq("%E6%B5%8B%E8%AF%95") expect(@category.slug_for_url).to eq("%E6%B5%8B%E8%AF%95") end + + it "keeps the slug" do + @category.save + expect(@category.slug).to eq("%E6%B5%8B%E8%AF%95") + expect(@category.slug_for_url).to eq("%E6%B5%8B%E8%AF%95") + end end end