Skip to content

Commit ae3cd55

Browse files
committed
Add test for cc uploader drain script rendering
1 parent 3c4e87b commit ae3cd55

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# frozen_string_literal: true
2+
3+
require 'rspec'
4+
require 'bosh/template/test'
5+
require 'yaml'
6+
require 'json'
7+
8+
module Bosh
9+
module Template
10+
module Test
11+
describe 'cc_uploader drain script rendering' do
12+
let(:release_path) { File.join(File.dirname(__FILE__), '../..') }
13+
let(:release) { ReleaseDir.new(release_path) }
14+
let(:job) { release.job('cc_uploader') }
15+
let(:template) { job.template('bin/drain') }
16+
17+
context 'when capi.cc_uploader.cc_uploader_drain_timeout_in_minutes is provided' do
18+
let(:properties) do
19+
{
20+
'capi' => {
21+
'cc_uploader' => {
22+
'cc_uploader_drain_timeout_in_minutes' => '10m'
23+
}
24+
}
25+
}
26+
end
27+
28+
it 'renders the drain script with correct timeout' do
29+
rendered = template.render(properties)
30+
expect(rendered).to include('TIMEOUT_MINUTES="10m"')
31+
expect(rendered).to include('DRAIN_TIMEOUT=$(( TIMEOUT_MINUTES * 60 ))')
32+
end
33+
end
34+
35+
context 'when capi.cc_uploader.cc_uploader_drain_timeout_in_minutes is not provided' do
36+
it 'defaults to 15 minutes' do
37+
rendered = template.render({})
38+
expect(rendered).to include('TIMEOUT_MINUTES="15m"')
39+
end
40+
end
41+
42+
it 'writes logs to the expected log file' do
43+
rendered = template.render({})
44+
expect(rendered).to include('LOG_FILE="/var/vcap/sys/log/cc_uploader/drain.log"')
45+
end
46+
47+
it 'uses the correct PID file location' do
48+
rendered = template.render({})
49+
expect(rendered).to include('PID_FILE="/var/vcap/sys/run/bpm/cc_uploader/cc_uploader.pid"')
50+
end
51+
52+
it 'safely attempts to terminate the cc_uploader process' do
53+
rendered = template.render({})
54+
expect(rendered).to include('kill -TERM "$(cat "$PID_FILE")"')
55+
expect(rendered).to include('kill -0 "$(cat "$PID_FILE")"')
56+
end
57+
end
58+
end
59+
end
60+
end

0 commit comments

Comments
 (0)