Sha256: ea21d8bbd39a1fa1d950e521b8228f9f7c0b89fe567d2b427499ce4094ec16e8

Contents?: true

Size: 1.81 KB

Versions: 2

Compression:

Stored size: 1.81 KB

Contents

require "spec_helper"
require 'pp'
describe Pronto::ProntoSimplecov::Runner do
  let(:runner) { Pronto::ProntoSimplecov::Runner.new(patches) }
  let(:patches) { [] }

  it 'does nothing with no patches' do
    expect(runner.run).to eq([])
  end

  context 'with patches' do
    let(:patches) {  Pronto::Git::Repository.new('./spec/data/test').diff('master') }

    it 'returns nothing when no coverage information is present' do
      expect(SimpleCov::ResultMerger).to receive_message_chain(:merged_result, :files).and_return({})
      expect(runner.run).to eq([])
    end

    it 'returns nothing when unchanged lines are uncovered' do
      files = [SimpleCov::SourceFile.new(File.expand_path('spec/data/test/test.rb'), {"lines" => [0, 0, 0, 1, 1, 1, 1, 1, 1]})]
      expect(SimpleCov::ResultMerger).to receive_message_chain(:merged_result, :files).and_return(files)
      expect(runner.run).to eq([])
    end

    it 'only creates messages for uncovered lines' do
      files = [SimpleCov::SourceFile.new(File.expand_path('spec/data/test/test.rb'), {"lines" => [1, 1, 1, 1, 1, 1, 0, 1, 1]})]
      expect(SimpleCov::ResultMerger).to receive_message_chain(:merged_result, :files).and_return(files)
      expect(runner.run.length).to eq(1)
      expect(runner.run.first.msg).to eq('This change has no test coverage')
    end

    it 'it irgnores empt lines' do
      files = [SimpleCov::SourceFile.new(File.expand_path('spec/data/test/test.rb'), {"lines" => [1, 1, 1, 1, nil, 1, 1, 1, 1]})]
      expect(SimpleCov::ResultMerger).to receive_message_chain(:merged_result, :files).and_return(files)
      expect(runner.run).to eq([])
    end

    it 'still works when SimpleCov::ResultMerger.merged_result returns nil' do
      expect(SimpleCov::ResultMerger).to receive(:merged_result).and_return(nil)
      expect(runner.run).to eq([])
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pronto-simplecov-0.11.0 spec/pronto/pronto_simplecov/runner_spec.rb
pronto-simplecov-0.10.1 spec/pronto/pronto_simplecov/runner_spec.rb