Sha256: 0650b0f2ef27137c28bb82b39a0c446d4d5ce7957c7570929c6058fd0e6ff5c8

Contents?: true

Size: 1.58 KB

Versions: 8

Compression:

Stored size: 1.58 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

RSpec.describe LittleWeasel::Filters::EnUs::SingleCharacterWordFilter do
  subject { described_class.new }

  # filter_match?
  describe '#filter_match?' do
    let(:word) { 'x' }

    context 'when word single character word' do
      it 'returns true' do
        %w[a A I].each do |number|
          expect(subject.filter_match?(number)).to be true
        end
      end
    end

    context 'when word is NOT a single character word' do
      it 'returns false' do
        expect(subject.filter_match?('X')).to be false
        expect(subject.filter_match?(:a)).to be false
        expect(subject.filter_match?(Object.new)).to be false
      end
    end

    context 'when #filter_match? returns true' do
      before { allow(subject.class).to receive(:filter_match?).and_return(true) }

      context 'when #filter_on? is true' do
        it_behaves_like 'the filter matches and #filter_on? is true'
      end

      context 'when #filter_on? is false' do
        before do
          subject.filter_on = false
        end

        it_behaves_like 'the filter matches and #filter_on? is false'
      end
    end

    context 'when #filter_match? returns false' do
      before { allow(subject.class).to receive(:filter_match?).and_return(false) }

      context 'when #filter_on? is true' do
        it_behaves_like 'the filter DOES NOT match and #filter_on? is true'
      end

      context 'when #filter_on? is false' do
        let(:filter_on) { false }

        it_behaves_like 'the filter DOES NOT match and #filter_on? is false'
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
LittleWeasel-5.0.13 spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb
LittleWeasel-5.0.12 spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb
LittleWeasel-5.0.11 spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb
LittleWeasel-5.0.10 spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb
LittleWeasel-5.0.9 spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb
LittleWeasel-5.0.8 spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb
LittleWeasel-5.0.7 spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb
LittleWeasel-5.0.6 spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb