Sha256: cb5f55b71ac78eba7ec9dbeb7ac0cea346a64fa12f61fc9c37ca38434008b830

Contents?: true

Size: 935 Bytes

Versions: 5

Compression:

Stored size: 935 Bytes

Contents

RSpec.describe Mutant::Expression do
  let(:parser) { Mutant::Config::DEFAULT.expression_parser }

  describe '#prefix?' do
    let(:object) { parser.call('Foo*') }

    subject { object.prefix?(other) }

    context 'when object is a prefix of other' do
      let(:other) { parser.call('Foo::Bar') }

      it { should be(true) }
    end

    context 'when other is not a prefix of other' do
      let(:other) { parser.call('Bar') }

      it { should be(false) }
    end
  end

  describe '.try_parse' do
    let(:object) do
      Class.new(described_class) do
        include Anima.new(:foo)

        const_set(:REGEXP, /(?<foo>foo)/)
      end
    end

    subject { object.try_parse(input) }

    context 'on successful parse' do
      let(:input) { 'foo' }

      it { should eql(object.new(foo: 'foo')) }
    end

    context 'on unsuccessful parse' do
      let(:input) { 'bar' }

      it { should be(nil) }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mutant-0.8.16 spec/unit/mutant/expression_spec.rb
mutant-0.8.15 spec/unit/mutant/expression_spec.rb
mutant-0.8.14 spec/unit/mutant/expression_spec.rb
mutant-0.8.13 spec/unit/mutant/expression_spec.rb
mutant-0.8.12 spec/unit/mutant/expression_spec.rb