spec/td/client/model_job_spec.rb in td-client-1.0.4 vs spec/td/client/model_job_spec.rb in td-client-1.0.5

- old
+ new

@@ -33,9 +33,59 @@ it 'returns Job object having client' do expect(subject).to eq client end end + describe '#auto_update_status' do + let(:client) { Client.authenticate('user', 'password') } + let(:job_id) { 12345678 } + let(:job) { Job.new(client, job_id, nil, nil) } + let(:format) { 'json' } + let(:io) { StringIO.new } + before { allow(job).to receive(:finished?) { false } } + + it 'can set' do + expect(job.auto_update_status?).to eq true + job.auto_update_status = false + expect(job.auto_update_status?).to eq false + job.auto_update_status = true + expect(job.auto_update_status?).to eq true + end + + it 'calls API if auto_update_status=true' do + job.auto_update_status = true + result_job = { + 'job_id' => job_id, + 'status' => 'queued', + 'created_at' => Time.now, + } + stub_request(:get, "https://api.treasuredata.com/v3/job/show/#{job_id}"). + to_return(:body => result_job.to_json) + expect(job.query).to be_nil + expect(job.status).to eq "queued" + expect(job.url).to be_nil + expect(job.debug).to be_nil + expect(job.start_at).to be_nil + expect(job.end_at).to be_nil + expect(job.cpu_time).to be_nil + expect(job.hive_result_schema).to be_nil + expect(job.result_size).to be_nil + end + + it "doesn't call API if auto_update_status=false" do + job.auto_update_status = false + expect(job.query).to be_nil + expect(job.status).to be_nil + expect(job.url).to be_nil + expect(job.debug).to be_nil + expect(job.start_at).to be_nil + expect(job.end_at).to be_nil + expect(job.cpu_time).to be_nil + expect(job.hive_result_schema).to be_nil + expect(job.result_size).to be_nil + end + end + describe '#result_raw' do let(:client) { Client.authenticate('user', 'password') } let(:job_id) { 12345678 } let(:job) { Job.new(client, job_id, nil, nil) } let(:format) { 'json' }