# frozen_string_literal: true require 'rails_helper' RSpec.describe Admin::NgWord do describe '#reject?' do subject { described_class.reject?(text, stranger: stranger, uri: uri, target_type: :status) } let(:text) { 'This is a ohagi.' } let(:stranger) { false } let(:uri) { nil } context 'when general post' do it 'ng word hits' do Fabricate(:ng_word, keyword: 'ohagi', stranger: false) expect(subject).to be true end it 'else ng word does not hit' do Fabricate(:ng_word, keyword: 'angry', stranger: false) expect(subject).to be false end it 'stranger word does not hit' do Fabricate(:ng_word, keyword: 'ohagi', stranger: true) expect(subject).to be false end end context 'when mention to stranger' do let(:stranger) { true } it 'ng word hits' do Fabricate(:ng_word, keyword: 'ohagi', stranger: true) expect(subject).to be true end it 'else ng word does not hit' do Fabricate(:ng_word, keyword: 'angry', stranger: true) expect(subject).to be false end it 'general word hits' do Fabricate(:ng_word, keyword: 'ohagi', stranger: false) expect(subject).to be true end end context 'when remote post' do let(:uri) { 'https://example.com/note' } it 'ng word hits' do Fabricate(:ng_word, keyword: 'ohagi', stranger: false) expect(subject).to be true expect(NgwordHistory.find_by(uri: uri)).to_not be_nil end it 'else ng word does not hit' do Fabricate(:ng_word, keyword: 'angry', stranger: false) expect(subject).to be false expect(NgwordHistory.find_by(uri: uri)).to be_nil end end context 'when using regexp' do it 'regexp hits with enable' do Fabricate(:ng_word, keyword: 'oha[ghi]i', regexp: true, stranger: false) expect(subject).to be true end it 'regexp does not hit without enable' do Fabricate(:ng_word, keyword: 'oha[ghi]i', regexp: false, stranger: false) expect(subject).to be false end end end end