Sha256: 83593d56e5e3d6737d1fddca881a274db6f622d9619bd79e1427a5c142a0553e

Contents?: true

Size: 1.4 KB

Versions: 3

Compression:

Stored size: 1.4 KB

Contents

# encoding: utf-8

require 'spec_helper'
require 'td/command/common'
require 'td/command/list'
require 'td/command/query'
require 'td/client'
require 'tempfile'

module TreasureData::Command
  describe 'query commands' do
    let :client do
      double('client')
    end
    let :job do
      double('job', job_id: 123)
    end
    let :command do
      Class.new { include TreasureData::Command }.new
    end
    before do
      allow(command).to receive(:get_client).and_return(client)
      expect(client).to receive(:database).with('sample_datasets')
    end

    it 'accepts --domain-key' do
      expect(client).to receive(:query).
        with("sample_datasets", "SELECT 1;", nil, nil, nil, {"domain_key"=>"hoge"}).
        and_return(job)
      op = List::CommandParser.new("query", %w[query], %w[], nil, ['--domain-key=hoge', '-dsample_datasets', 'SELECT 1;'], false)
      command.query(op)
    end

    it 'raises error if --domain-key is duplicated' do
      expect(client).to receive(:query).
        with("sample_datasets", "SELECT 1;", nil, nil, nil, {"domain_key"=>"hoge"}).
        and_raise(::TreasureData::AlreadyExistsError.new('Query failed: domain_key has already been taken'))
      op = List::CommandParser.new("query", %w[query], %w[], nil, ['--domain-key=hoge', '-dsample_datasets', 'SELECT 1;'], false)
      expect{ command.query(op) }.to raise_error(TreasureData::AlreadyExistsError)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
td-0.15.0 spec/td/command/query_spec.rb
td-0.14.1 spec/td/command/query_spec.rb
td-0.14.0 spec/td/command/query_spec.rb