Sha256: 64515a69a40ea094f7056a4f96aec43ecba1e4853401d6dea4dd71348d104b21

Contents?: true

Size: 1.02 KB

Versions: 3

Compression:

Stored size: 1.02 KB

Contents

RSpec.describe Mutant::Loader, '.call' do
  subject do
    described_class.call(
      binding: binding,
      kernel:  kernel,
      node:    node,
      subject: mutation_subject
    )
  end

  let(:path)     { instance_double(Pathname, to_s: path_str) }
  let(:path_str) { instance_double(String)                   }
  let(:line)     { instance_double(Fixnum)                   }
  let(:kernel)   { class_double(Kernel)                      }
  let(:binding)  { instance_double(Binding)                  }
  let(:source)   { instance_double(String)                   }
  let(:node)     { instance_double(Parser::AST::Node)        }

  let(:mutation_subject) do
    instance_double(
      Mutant::Subject,
      source_path: path,
      source_line: line
    )
  end

  it 'performs expected kernel interaction' do
    expect(Unparser).to receive(:unparse)
      .with(node)
      .and_return(source)

    expect(kernel).to receive(:eval)
      .with(
        source,
        binding,
        path_str,
        line
      )

    subject
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mutant-0.8.13 spec/unit/mutant/loader_spec.rb
mutant-0.8.12 spec/unit/mutant/loader_spec.rb
mutant-0.8.11 spec/unit/mutant/loader_spec.rb