Sha256: 97911ac2cc1708936d7b84758480d779925927a1a6d2bbdf1c7e40223083f09a

Contents?: true

Size: 1.46 KB

Versions: 7

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorsValidatable, type: :module do
  subject { MockSubject.new }

  WordPreprocessorsValidatable = described_class

  class MockSubject
    include WordPreprocessorsValidatable
  end

  subject { MockSubject.new }

  class MockWordPreprocessor < LittleWeasel::Preprocessors::WordPreprocessor
    def initialize(order: 0)
      super order: order
      self.preprocessor_on = preprocessor_on
    end

    class << self
      def preprocess(word) [true, "#{word}-0"]; end
    end
  end

  #.validate_word_preprocessors
  describe '.validate_word_preprocessors' do
    context 'when passing a blank Array' do
      it 'passes validaton' do
        expect { WordPreprocessorsValidatable.validate_word_preprocessors(word_preprocessors: []) }.to_not raise_error
      end
    end

    context 'when passing a an Array with valid word preprocessors' do
      it 'passes validation' do
        expect { WordPreprocessorsValidatable.validate_word_preprocessors(word_preprocessors: [MockWordPreprocessor.new]) }.to_not raise_error
      end
    end

    context 'when passing an INVALID argument' do
      context 'when passing an invalid Array' do
        it 'raises an error' do
          expect { WordPreprocessorsValidatable.validate_word_preprocessors(word_preprocessors: :not_an_array) }.to raise_error(/Argument word_preprocessors is not an Array/)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
LittleWeasel-5.0.5 spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb
LittleWeasel-5.0.4 spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb
LittleWeasel-5.0.3 spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb
LittleWeasel-5.0.2 spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb
LittleWeasel-5.0.1 spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb
LittleWeasel-5.0.0 spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb
LittleWeasel-4.0.0 spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb