aboutsummaryrefslogtreecommitdiffstats
path: root/spec/lib/roo/base_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/roo/base_spec.rb')
-rw-r--r--spec/lib/roo/base_spec.rb48
1 files changed, 45 insertions, 3 deletions
diff --git a/spec/lib/roo/base_spec.rb b/spec/lib/roo/base_spec.rb
index d00025d..76cefcc 100644
--- a/spec/lib/roo/base_spec.rb
+++ b/spec/lib/roo/base_spec.rb
@@ -127,10 +127,22 @@ describe Roo::Base do
end
end
- describe '#row' do
- it 'should return the specified row' do
+ describe "#row" do
+ it "should return the specified row" do
expect(spreadsheet.row(12)).to eq([41.0, 42.0, 43.0, 44.0, 45.0, nil, nil])
- expect(spreadsheet.row(16)).to eq([nil, '"Hello world!"', 'forty-three', 'forty-four', 'forty-five', nil, nil])
+ expect(spreadsheet.row(16)).to eq([nil, '"Hello world!"', "forty-three", "forty-four", "forty-five", nil, nil])
+ end
+
+ it "should return the specified row if default_sheet is set by a string" do
+ spreadsheet.default_sheet = "my_sheet"
+ expect(spreadsheet.row(12)).to eq([41.0, 42.0, 43.0, 44.0, 45.0, nil, nil])
+ expect(spreadsheet.row(16)).to eq([nil, '"Hello world!"', "forty-three", "forty-four", "forty-five", nil, nil])
+ end
+
+ it "should return the specified row if default_sheet is set by an integer" do
+ spreadsheet.default_sheet = 0
+ expect(spreadsheet.row(12)).to eq([41.0, 42.0, 43.0, 44.0, 45.0, nil, nil])
+ expect(spreadsheet.row(16)).to eq([nil, '"Hello world!"', "forty-three", "forty-four", "forty-five", nil, nil])
end
end
@@ -146,6 +158,11 @@ describe Roo::Base do
expect { spreadsheet.row_with([/Missing Header/]) }.to \
raise_error(Roo::HeaderRowNotFoundError)
end
+
+ it 'returns missing headers' do
+ expect { spreadsheet.row_with([/Header/, /Missing Header 1/, /Missing Header 2/]) }.to \
+ raise_error(Roo::HeaderRowNotFoundError, '[/Missing Header 1/, /Missing Header 2/]')
+ end
end
end
@@ -173,6 +190,31 @@ describe Roo::Base do
end
end
+ describe "#default_sheet=" do
+ it "should correctly set the default sheet if passed a string" do
+ spreadsheet.default_sheet = "my_sheet"
+ expect(spreadsheet.default_sheet).to eq("my_sheet")
+ end
+
+ it "should correctly set the default sheet if passed an integer" do
+ spreadsheet.default_sheet = 0
+ expect(spreadsheet.default_sheet).to eq("my_sheet")
+ end
+
+ it "should correctly set the default sheet if passed an integer for the second sheet" do
+ spreadsheet.default_sheet = 1
+ expect(spreadsheet.default_sheet).to eq("blank sheet")
+ end
+
+ it "should raise an error if passed a sheet that does not exist as an integer" do
+ expect { spreadsheet.default_sheet = 10 }.to raise_error RangeError
+ end
+
+ it "should raise an error if passed a sheet that does not exist as a string" do
+ expect { spreadsheet.default_sheet = "does_not_exist" }.to raise_error RangeError
+ end
+ end
+
describe '#to_yaml' do
it 'should convert the spreadsheet to yaml' do
expect(spreadsheet.to_yaml({}, 5, 1, 5, 1)).to eq("--- \n" + yaml_entry(5, 1, 'date', '1961-11-21'))