spec/lib/cucumber/blanket/coverage_data_spec.rb in cucumber-blanket-0.0.2 vs spec/lib/cucumber/blanket/coverage_data_spec.rb in cucumber-blanket-0.0.3
- old
+ new
@@ -1,24 +1,50 @@
require 'spec_helper'
describe Cucumber::Blanket::CoverageData do
+ before(:each) { Cucumber::Blanket.reset! }
let(:page) { FakePage.new }
let(:covdata) do
Cucumber::Blanket.extract_from(page)
Cucumber::Blanket.coverage_data
end
describe "#accrue!" do
let(:new_page_data) do
page_data = Marshal.load(Marshal.dump(covdata.data))
- page_data[0]['files'].first[1][0] = 3 # add coverage on that line
+ page_data['files'].first[1][0] = 3 # add coverage on that line
page_data
end
it "squishes coverage datasets together" do
covdata["files"].first[1][0].should be_nil
covdata["files"].first[1][1].should eq 1
covdata.accrue! new_page_data
covdata["files"].first[1][0].should eq 3
covdata["files"].first[1][1].should eq 2
+ end
+
+ context "filename exists but is not iterable" do
+ let(:new_page_data) do
+ Marshal.load(Marshal.dump(covdata.data))
+ end
+ before do
+ @data_copy = new_page_data
+ @filename = covdata['files'].first[0]
+ covdata['files'][@filename] = nil
+ end
+ it "will not try to iterate over nil" do
+ expect {covdata.accrue! @data_copy}.not_to raise_error
+ end
+ end
+ end
+
+
+ describe "#files" do
+ it "shorthand for accessing the files hash" do
+ covdata.files.should eq covdata.data['files']
+ covdata.files.should be_a Hash
+ end
+ it "has a shortcut that produces the same data" do
+ Cucumber::Blanket.files.should eq covdata.files
end
end
end