Also treat non-whole-word mutes as case-insensitive. #450.
This commit is contained in:
		
							parent
							
								
									64be38da0c
								
							
						
					
					
						commit
						5f8f481425
					
				| 
						 | 
				
			
			@ -70,7 +70,7 @@ class Glitch::KeywordMute < ApplicationRecord
 | 
			
		|||
 | 
			
		||||
    def make_regex_text
 | 
			
		||||
      kws = keywords.map! do |whole_word, keyword|
 | 
			
		||||
        whole_word ? boundary_regex_for_keyword(keyword) : keyword
 | 
			
		||||
        whole_word ? boundary_regex_for_keyword(keyword) : /(?i:#{keyword})/
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      Regexp.union(kws).source
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,6 +60,12 @@ RSpec.describe Glitch::KeywordMute, type: :model do
 | 
			
		|||
        expect(matcher.matches?('This is a HOT take')).to be_truthy
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it 'matches if at least one non-whole-word keyword case-insensitively matches the text' do
 | 
			
		||||
        Glitch::KeywordMute.create!(account: alice, keyword: 'hot', whole_word: false)
 | 
			
		||||
 | 
			
		||||
        expect(matcher.matches?('This is a HOTTY take')).to be_truthy
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it 'maintains case-insensitivity when combining keywords into a single matcher' do
 | 
			
		||||
        Glitch::KeywordMute.create!(account: alice, keyword: 'hot')
 | 
			
		||||
        Glitch::KeywordMute.create!(account: alice, keyword: 'cold')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue