From 4725aeec9f6d91d099e93ac13b3be8df5200e5e6 Mon Sep 17 00:00:00 2001 From: ysksn Date: Sat, 29 Dec 2018 15:22:51 +0900 Subject: Add specs for DisallowedHashtagsValidator (#9653) In order to implement tests easier, `#select_tags` created. --- app/validators/disallowed_hashtags_validator.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/validators/disallowed_hashtags_validator.rb b/app/validators/disallowed_hashtags_validator.rb index 22c027b0f..ee06b20f6 100644 --- a/app/validators/disallowed_hashtags_validator.rb +++ b/app/validators/disallowed_hashtags_validator.rb @@ -4,14 +4,19 @@ class DisallowedHashtagsValidator < ActiveModel::Validator def validate(status) return unless status.local? && !status.reblog? - tags = Extractor.extract_hashtags(status.text) - tags.keep_if { |tag| disallowed_hashtags.include? tag.downcase } + @status = status + tags = select_tags status.errors.add(:text, I18n.t('statuses.disallowed_hashtags', tags: tags.join(', '), count: tags.size)) unless tags.empty? end private + def select_tags + tags = Extractor.extract_hashtags(@status.text) + tags.keep_if { |tag| disallowed_hashtags.include? tag.downcase } + end + def disallowed_hashtags return @disallowed_hashtags if @disallowed_hashtags -- cgit