mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-27 02:18:41 -05:00
(maint) begin de-mockistifying api_spec.rb
This commit is contained in:
parent
ab88720496
commit
c30c7ac26b
1 changed files with 63 additions and 66 deletions
|
|
@ -10,6 +10,10 @@ describe Vmpooler::API do
|
||||||
|
|
||||||
describe 'Dashboard' do
|
describe 'Dashboard' do
|
||||||
|
|
||||||
|
before(:each) do
|
||||||
|
redis.flushdb
|
||||||
|
end
|
||||||
|
|
||||||
context '/' do
|
context '/' do
|
||||||
before { get '/' }
|
before { get '/' }
|
||||||
|
|
||||||
|
|
@ -38,7 +42,6 @@ describe Vmpooler::API do
|
||||||
it { expect(last_response.status).to eq(404) }
|
it { expect(last_response.status).to eq(404) }
|
||||||
it { expect(last_response.header['Content-Type']).to eq('application/json') }
|
it { expect(last_response.header['Content-Type']).to eq('application/json') }
|
||||||
it { expect(last_response.body).to eq(JSON.pretty_generate({ok: false})) }
|
it { expect(last_response.body).to eq(JSON.pretty_generate({ok: false})) }
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '/dashboard/stats/vmpooler/pool' do
|
describe '/dashboard/stats/vmpooler/pool' do
|
||||||
|
|
@ -49,7 +52,6 @@ describe Vmpooler::API do
|
||||||
],
|
],
|
||||||
graphite: {}
|
graphite: {}
|
||||||
} }
|
} }
|
||||||
let(:redis) { double('redis') }
|
|
||||||
|
|
||||||
before do
|
before do
|
||||||
$config = config
|
$config = config
|
||||||
|
|
@ -59,13 +61,12 @@ describe Vmpooler::API do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'without history param' do
|
context 'without history param' do
|
||||||
|
|
||||||
it 'returns basic JSON' do
|
it 'returns basic JSON' do
|
||||||
allow(redis).to receive(:scard)
|
create_ready_vm('pool1', 'vm1')
|
||||||
allow(redis).to receive(:scard).with('vmpooler__ready__pool1').and_return(3)
|
create_ready_vm('pool1', 'vm2')
|
||||||
allow(redis).to receive(:scard).with('vmpooler__ready__pool2').and_return(2)
|
create_ready_vm('pool1', 'vm3')
|
||||||
|
create_ready_vm('pool2', 'vm4')
|
||||||
expect(redis).to receive(:scard).twice
|
create_ready_vm('pool2', 'vm5')
|
||||||
|
|
||||||
get '/dashboard/stats/vmpooler/pool'
|
get '/dashboard/stats/vmpooler/pool'
|
||||||
|
|
||||||
|
|
@ -99,10 +100,11 @@ describe Vmpooler::API do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns JSON with history when redis has values' do
|
it 'returns JSON with history when redis has values' do
|
||||||
allow(redis).to receive(:scard).with('vmpooler__ready__pool1').and_return(3)
|
create_ready_vm('pool1', 'vm1')
|
||||||
allow(redis).to receive(:scard).with('vmpooler__ready__pool2').and_return(2)
|
create_ready_vm('pool1', 'vm2')
|
||||||
|
create_ready_vm('pool1', 'vm3')
|
||||||
expect(redis).to receive(:scard).exactly(4).times
|
create_ready_vm('pool2', 'vm4')
|
||||||
|
create_ready_vm('pool2', 'vm5')
|
||||||
|
|
||||||
get '/dashboard/stats/vmpooler/pool', :history => true
|
get '/dashboard/stats/vmpooler/pool', :history => true
|
||||||
|
|
||||||
|
|
@ -115,62 +117,57 @@ describe Vmpooler::API do
|
||||||
expect(last_response.body).to eq(JSON.pretty_generate(json_hash))
|
expect(last_response.body).to eq(JSON.pretty_generate(json_hash))
|
||||||
expect(last_response.header['Content-Type']).to eq('application/json')
|
expect(last_response.header['Content-Type']).to eq('application/json')
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '/dashboard/stats/vmpooler/running' do
|
|
||||||
let(:config) { {
|
|
||||||
pools: [
|
|
||||||
{'name' => 'pool-1', 'size' => 5},
|
|
||||||
{'name' => 'pool-2', 'size' => 1},
|
|
||||||
{'name' => 'diffpool-1', 'size' => 3}
|
|
||||||
],
|
|
||||||
graphite: {}
|
|
||||||
} }
|
|
||||||
let(:redis) { double('redis') }
|
|
||||||
|
|
||||||
before do
|
|
||||||
$config = config
|
|
||||||
app.settings.set :config, config
|
|
||||||
app.settings.set :redis, redis
|
|
||||||
app.settings.set :environment, :test
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'without history param' do
|
|
||||||
|
|
||||||
it 'returns basic JSON' do
|
|
||||||
allow(redis).to receive(:scard)
|
|
||||||
|
|
||||||
expect(redis).to receive(:scard).exactly(3).times
|
|
||||||
|
|
||||||
get '/dashboard/stats/vmpooler/running'
|
|
||||||
|
|
||||||
json_hash = {pool: {running: 0}, diffpool: {running: 0}}
|
|
||||||
|
|
||||||
expect(last_response).to be_ok
|
|
||||||
expect(last_response.body).to eq(JSON.pretty_generate(json_hash))
|
|
||||||
expect(last_response.header['Content-Type']).to eq('application/json')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'adds major correctly' do
|
|
||||||
allow(redis).to receive(:scard).with('vmpooler__running__pool-1').and_return(3)
|
|
||||||
allow(redis).to receive(:scard).with('vmpooler__running__pool-2').and_return(5)
|
|
||||||
allow(redis).to receive(:scard).with('vmpooler__running__diffpool-1').and_return(2)
|
|
||||||
|
|
||||||
get '/dashboard/stats/vmpooler/running'
|
|
||||||
|
|
||||||
json_hash = {pool: {running: 8}, diffpool: {running: 2}}
|
|
||||||
|
|
||||||
expect(last_response).to be_ok
|
|
||||||
expect(last_response.body).to eq(JSON.pretty_generate(json_hash))
|
|
||||||
expect(last_response.header['Content-Type']).to eq('application/json')
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# describe '/dashboard/stats/vmpooler/running' do
|
||||||
|
# let(:config) { {
|
||||||
|
# pools: [
|
||||||
|
# {'name' => 'pool-1', 'size' => 5},
|
||||||
|
# {'name' => 'pool-2', 'size' => 1},
|
||||||
|
# {'name' => 'diffpool-1', 'size' => 3}
|
||||||
|
# ],
|
||||||
|
# graphite: {}
|
||||||
|
# } }
|
||||||
|
# let(:redis) { double('redis') }
|
||||||
|
#
|
||||||
|
# before do
|
||||||
|
# $config = config
|
||||||
|
# app.settings.set :config, config
|
||||||
|
# app.settings.set :redis, redis
|
||||||
|
# app.settings.set :environment, :test
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# context 'without history param' do
|
||||||
|
#
|
||||||
|
# it 'returns basic JSON' do
|
||||||
|
# allow(redis).to receive(:scard)
|
||||||
|
#
|
||||||
|
# expect(redis).to receive(:scard).exactly(3).times
|
||||||
|
#
|
||||||
|
# get '/dashboard/stats/vmpooler/running'
|
||||||
|
#
|
||||||
|
# json_hash = {pool: {running: 0}, diffpool: {running: 0}}
|
||||||
|
#
|
||||||
|
# expect(last_response).to be_ok
|
||||||
|
# expect(last_response.body).to eq(JSON.pretty_generate(json_hash))
|
||||||
|
# expect(last_response.header['Content-Type']).to eq('application/json')
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# it 'adds major correctly' do
|
||||||
|
# allow(redis).to receive(:scard).with('vmpooler__running__pool-1').and_return(3)
|
||||||
|
# allow(redis).to receive(:scard).with('vmpooler__running__pool-2').and_return(5)
|
||||||
|
# allow(redis).to receive(:scard).with('vmpooler__running__diffpool-1').and_return(2)
|
||||||
|
#
|
||||||
|
# get '/dashboard/stats/vmpooler/running'
|
||||||
|
#
|
||||||
|
# json_hash = {pool: {running: 8}, diffpool: {running: 2}}
|
||||||
|
#
|
||||||
|
# expect(last_response).to be_ok
|
||||||
|
# expect(last_response.body).to eq(JSON.pretty_generate(json_hash))
|
||||||
|
# expect(last_response.header['Content-Type']).to eq('application/json')
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
# end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue