spec/bumblebee/bumblebee_spec.rb in bumblebee-2.0.1 vs spec/bumblebee/bumblebee_spec.rb in bumblebee-2.1.0

- old
+ new

@@ -33,27 +33,47 @@ let(:csv) { "name,dob\nMatt,1901-01-03\nNathan,1931-09-03\n" } let(:quoted_csv) { "\"name\",\"dob\"\n\"Matt\",\"1901-01-03\"\n\"Nathan\",\"1931-09-03\"\n" } - it 'should generate a csv' do + it 'should generate a csv using column argument' do actual = Bumblebee.generate_csv(columns, people) expect(actual).to eq(csv) end + it 'should generate a csv using block' do + actual = Bumblebee.generate_csv(people) do |t| + columns.each do |column| + t.column column[:field] + end + end + + expect(actual).to eq(csv) + end + it 'should generate a csv and accept options' do options = { force_quotes: true } actual = ::Bumblebee.generate_csv(columns, people, options) expect(actual).to eq(quoted_csv) end - it 'should parse a csv' do + it 'should parse a csv using columns argument' do objects = Bumblebee.parse_csv(columns, csv) + + expect(objects).to eq(people) + end + + it 'should parse a csv using columns block' do + objects = Bumblebee.parse_csv(csv) do |t| + columns.each do |column| + t.column column[:field] + end + end expect(objects).to eq(people) end it 'should parse a csv with columns in different order than headers' do