diff options
Diffstat (limited to 'spec/lib/roo/csv_spec.rb')
| -rw-r--r-- | spec/lib/roo/csv_spec.rb | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/spec/lib/roo/csv_spec.rb b/spec/lib/roo/csv_spec.rb new file mode 100644 index 0000000..2ea1b93 --- /dev/null +++ b/spec/lib/roo/csv_spec.rb @@ -0,0 +1,81 @@ +require 'spec_helper' + +describe Roo::CSV do + let(:path) { 'test/files/csvtypes.csv' } + let(:csv) { Roo::CSV.new(path) } + + describe '.new' do + it 'creates an instance' do + expect(csv).to be_a(Roo::CSV) + end + end + + describe '.new with stream' do + let(:csv) { Roo::CSV.new(File.read(path)) } + it 'creates an instance' do + expect(csv).to be_a(Roo::CSV) + end + end + + describe '#parse' do + subject do + csv.parse(options) + end + context 'with headers: true' do + let(:options) { { headers: true } } + + it "doesn't blow up" do + expect { subject }.to_not raise_error + end + end + end + + describe '#parse_with_clean_option' do + subject do + csv.parse(options) + end + context 'with clean: true' do + let(:options) { {clean: true} } + let(:path) { 'test/files/parse_with_clean_option.csv' } + + it "doesn't blow up" do + expect { subject }.to_not raise_error + end + end + end + + describe '#csv_options' do + context 'when created with the csv_options option' do + let(:options) do + { + col_sep: '\t', + quote_char: "'" + } + end + + it 'returns the csv options' do + csv = Roo::CSV.new(path, csv_options: options) + expect(csv.csv_options).to eq(options) + end + end + + context 'when created without the csv_options option' do + it 'returns a hash' do + csv = Roo::CSV.new(path) + expect(csv.csv_options).to eq({}) + end + end + end + + describe '#set_value' do + it 'returns the cell value' do + expect(csv.set_value('A', 1, 'some-value', nil)).to eq('some-value') + end + end + + describe '#set_type' do + it 'returns the cell type' do + expect(csv.set_type('A', 1, 'some-type', nil)).to eq('some-type') + end + end +end |
