Sha256: 2531859f1bb7cbb20d617f4d6cb7b8c0f15735bab4890ee9f1bf2125ebb933cb

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

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(0.class)                  }
  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

6 entries across 6 versions & 1 rubygems

Version Path
mutant-0.8.22 spec/unit/mutant/loader_spec.rb
mutant-0.8.21 spec/unit/mutant/loader_spec.rb
mutant-0.8.20 spec/unit/mutant/loader_spec.rb
mutant-0.8.19 spec/unit/mutant/loader_spec.rb
mutant-0.8.18 spec/unit/mutant/loader_spec.rb
mutant-0.8.17 spec/unit/mutant/loader_spec.rb