Sha256: e618d471ec98f5de46e710a11e52088fc2e3a94f8a8e845c8d519618e853534f

Contents?: true

Size: 857 Bytes

Versions: 1

Compression:

Stored size: 857 Bytes

Contents

require 'spec_helper'
require 'csv'

describe DbMod::As::Csv do
  subject do
    Module.new do
      include DbMod

      def_statement(:statement, 'SELECT a, b FROM foo').as(:csv)
      def_prepared(:prepared, 'SELECT c, d FROM bar').as(:csv)
    end
  end

  before do
    @conn = instance_double 'PGconn'
    allow(@conn).to receive(:prepare)
    allow(PGconn).to receive(:connect).and_return @conn
  end

  {
    statement: :query,
    prepared: :exec_prepared
  }.each do |method_type, exec_type|
    context "#{method_type} methods" do
      it 'coerces results to csv' do
        expect(@conn).to receive(exec_type).and_return([
          { 'a' => '1', 'b' => '2' },
          { 'a' => '3', 'b' => '4' }
        ])

        csv = subject.create(db: 'testdb').send(method_type)
        expect(csv).to eq("a,b\n1,2\n3,4\n")
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
db_mod-0.0.3 spec/db_mod/as/csv_spec.rb