File Manager
Viewing File: source_file_line_spec.rb
require "helper"
if SimpleCov.usable?
describe SimpleCov::SourceFile::Line do
context "a source line" do
subject do
SimpleCov::SourceFile::Line.new("# the ruby source", 5, 3)
end
it 'returns "# the ruby source" as src' do
expect(subject.src).to eq("# the ruby source")
end
it "returns the same for source as for src" do
expect(subject.src).to eq(subject.source)
end
it "has line number 5" do
expect(subject.line_number).to eq(5)
end
it "has equal line_number, line and number" do
expect(subject.line).to eq(subject.line_number)
expect(subject.number).to eq(subject.line_number)
end
context "flagged as skipped!" do
before do
subject.skipped!
end
it "is not covered" do
expect(subject).not_to be_covered
end
it "is skipped" do
expect(subject).to be_skipped
end
it "is not missed" do
expect(subject).not_to be_missed
end
it "is not never" do
expect(subject).not_to be_never
end
it "status is skipped" do
expect(subject.status).to eq("skipped")
end
end
end
context "A source line with coverage" do
subject do
SimpleCov::SourceFile::Line.new("# the ruby source", 5, 3)
end
it "has coverage of 3" do
expect(subject.coverage).to eq(3)
end
it "is covered" do
expect(subject).to be_covered
end
it "is not skipped" do
expect(subject).not_to be_skipped
end
it "is not missed" do
expect(subject).not_to be_missed
end
it "is not never" do
expect(subject).not_to be_never
end
it "status is covered" do
expect(subject.status).to eq("covered")
end
end
context "A source line without coverage" do
subject do
SimpleCov::SourceFile::Line.new("# the ruby source", 5, 0)
end
it "has coverage of 0" do
expect(subject.coverage).to be_zero
end
it "is not covered" do
expect(subject).not_to be_covered
end
it "is not skipped" do
expect(subject).not_to be_skipped
end
it "is missed" do
expect(subject).to be_missed
end
it "is not never" do
expect(subject).not_to be_never
end
it "status is missed" do
expect(subject.status).to eq("missed")
end
end
context "A source line with no code" do
subject do
SimpleCov::SourceFile::Line.new("# the ruby source", 5, nil)
end
it "has nil coverage" do
expect(subject.coverage).to be_nil
end
it "is not covered" do
expect(subject).not_to be_covered
end
it "is not skipped" do
expect(subject).not_to be_skipped
end
it "is not missed" do
expect(subject).not_to be_missed
end
it "is never" do
expect(subject).to be_never
end
it "status is never" do
expect(subject.status).to eq("never")
end
end
it "raises ArgumentError when initialized with invalid src" do
expect { SimpleCov::SourceFile::Line.new(:symbol, 5, 3) }.to raise_error(ArgumentError)
end
it "raises ArgumentError when initialized with invalid line_number" do
expect { SimpleCov::SourceFile::Line.new("some source", "five", 3) }.to raise_error(ArgumentError)
end
it "raises ArgumentError when initialized with invalid coverage" do
expect { SimpleCov::SourceFile::Line.new("some source", 5, "three") }.to raise_error(ArgumentError)
end
end
end