Skip to content

Commit 013b6f2

Browse files
committed
Add template tests to docker tests
1 parent 579640a commit 013b6f2

File tree

7 files changed

+235
-207
lines changed

7 files changed

+235
-207
lines changed

scripts/docker-shell

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ else
1818
exit 1
1919
fi
2020

21+
./scripts/run-template-tests-in-docker.sh
2122

2223
docker run \
2324
--rm \

scripts/docker-test-setup.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ if ! [ $(type -P "ginkgo") ]; then
1515
mv /root/go/bin/ginkgo /usr/local/bin/ginkgo
1616
fi
1717

18-
1918
if ! [ $(type -P "nats-server") ]; then
2019
BIN_DIR="${DIEGO_RELEASE_DIR}/bin"
2120
mkdir -p "${BIN_DIR}"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
set -u
3+
4+
ROOT_DIR_PATH="$(cd $(dirname $0)/.. && pwd)"
5+
cd "${ROOT_DIR_PATH}"
6+
7+
echo "Running template tests"
8+
9+
docker run \
10+
--rm \
11+
-it \
12+
--privileged \
13+
-v "${PWD}:/diego-release" \
14+
--cap-add ALL \
15+
-w /diego-release \
16+
"ruby:3.0" \
17+
/diego-release/scripts/template-tests "$@"
18+
19+
echo "Done executing template tests"

scripts/template-tests

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash -exu
2+
3+
ROOT_DIR_PATH="$(cd $(dirname $0)/.. && pwd)"
4+
5+
pushd "${ROOT_DIR_PATH}" > /dev/null
6+
bundle install
7+
bundle exec rspec spec
8+
rubocop spec
9+
popd > /dev/null

spec/auctioneer_template_spec.rb

Lines changed: 57 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,65 @@
11
# frozen_string_literal: true
2-
# rubocop: disable Layout/LineLength
2+
33
# rubocop: disable Metrics/BlockLength
44
require 'rspec'
55
require 'json'
66
require 'bosh/template/test'
77

8-
describe 'auctioneer' do
9-
let(:release_path) { File.join(File.dirname(__FILE__), '..') }
10-
let(:release) { Bosh::Template::Test::ReleaseDir.new(release_path)}
11-
let(:job) { release.job('auctioneer') }
8+
describe 'auctioneer' do
9+
let(:release_path) { File.join(File.dirname(__FILE__), '..') }
10+
let(:release) { Bosh::Template::Test::ReleaseDir.new(release_path) }
11+
let(:job) { release.job('auctioneer') }
12+
13+
describe 'auctioneer.json.erb' do
14+
let(:deployment_manifest_fragment) do
15+
{
16+
'bpm' => {
17+
'enabled' => 'true'
18+
},
19+
'diego' => {
20+
'auctioneer' => {
21+
'bbs' => {
22+
'ca_cert' => 'CA CERTS',
23+
'client_cert' => 'CLIENT CERT',
24+
'client_key' => 'CLIENT KEY'
25+
},
26+
'bin_pack_first_fit_weight' => 0,
27+
'ca_cert' => 'CA CERT',
28+
'locket' => {
29+
'client_keepalive_time' => 10,
30+
'client_keepalive_timeout' => 22
31+
},
32+
'rep' => {
33+
'ca_cert' => 'CA CERT',
34+
'client_cert' => 'CLIENT CERT',
35+
'client_key' => 'CLIENT KEY',
36+
'require_tls' => 'true'
37+
},
38+
'server_cert' => 'SERVER CERT',
39+
'server_key' => 'SERVER KEY',
40+
'skip_consul_lock' => 'true'
41+
}
42+
},
43+
'enable_consul_service_registration' => 'false',
44+
'loggregator' => 'LOGGREGATOR PROPS',
45+
'logging' => {
46+
'format' => {
47+
'timestamp' => 'rfc3339'
48+
}
49+
}
50+
}
51+
end
1252

13-
describe 'auctioneer.json.erb' do
14-
let(:deployment_manifest_fragment) do
15-
{
16-
'bpm' => {
17-
'enabled' => 'true'
18-
},
19-
'diego' => {
20-
'auctioneer' => {
21-
'bbs' => {
22-
'ca_cert' => 'CA CERTS',
23-
'client_cert' => 'CLIENT CERT',
24-
'client_key' => 'CLIENT KEY'
25-
},
26-
'bin_pack_first_fit_weight' => 0,
27-
'ca_cert' => 'CA CERT',
28-
'locket' => {
29-
'client_keepalive_time' => 10,
30-
'client_keepalive_timeout' => 22
31-
},
32-
'rep' => {
33-
'ca_cert' => 'CA CERT',
34-
'client_cert' => 'CLIENT CERT',
35-
'client_key' => 'CLIENT KEY',
36-
'require_tls' => 'true'
37-
},
38-
'server_cert' => 'SERVER CERT',
39-
'server_key' => 'SERVER KEY',
40-
'skip_consul_lock' => 'true'
41-
}
42-
},
43-
'enable_consul_service_registration' => 'false',
44-
'loggregator' => 'LOGGREGATOR PROPS',
45-
'logging' => {
46-
'format' => {
47-
'timestamp' => 'rfc3339'
48-
}
49-
}
50-
}
51-
end
53+
let(:template) { job.template('config/auctioneer.json') }
54+
let(:rendered_template) { template.render(deployment_manifest_fragment) }
5255

53-
let(:template) { job.template('config/auctioneer.json') }
54-
let(:rendered_template) { template.render(deployment_manifest_fragment) }
55-
56-
context 'check if locket keepalive time is bigger than the timeout' do
57-
it 'fails if the keepalive time is bigger than timeout' do
58-
deployment_manifest_fragment['diego']['auctioneer']['locket']['client_keepalive_time'] = 23
59-
expect do
60-
rendered_template
61-
end.to raise_error(/The locket client keepalive time property should not be larger than the timeout/)
62-
end
63-
end
64-
end
65-
end
56+
context 'check if locket keepalive time is bigger than the timeout' do
57+
it 'fails if the keepalive time is bigger than timeout' do
58+
deployment_manifest_fragment['diego']['auctioneer']['locket']['client_keepalive_time'] = 23
59+
expect do
60+
rendered_template
61+
end.to raise_error(/The locket client keepalive time property should not be larger than the timeout/)
62+
end
63+
end
64+
end
65+
end

spec/bbs_template_spec.rb

Lines changed: 75 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,85 @@
11
# frozen_string_literal: true
2-
# rubocop: disable Layout/LineLength
2+
33
# rubocop: disable Metrics/BlockLength
44
require 'rspec'
55
require 'json'
66
require 'bosh/template/test'
77

8-
describe 'bbs' do
9-
let(:release_path) { File.join(File.dirname(__FILE__), '..') }
10-
let(:release) { Bosh::Template::Test::ReleaseDir.new(release_path)}
11-
let(:job) { release.job('bbs') }
8+
describe 'bbs' do
9+
let(:release_path) { File.join(File.dirname(__FILE__), '..') }
10+
let(:release) { Bosh::Template::Test::ReleaseDir.new(release_path) }
11+
let(:job) { release.job('bbs') }
1212

13-
describe 'bbs.json.erb' do
14-
let(:deployment_manifest_fragment) do
15-
{
16-
'bpm' => {
17-
'enabled' => 'true'
18-
},
19-
'diego' => {
20-
'bbs' => {
21-
'active_key_label' => 'ACTIVE KEY',
22-
'detect_consul_cell_registrations' => 'false',
23-
'encryption_keys' => [
24-
'label' => 'KEY LABEL',
25-
'passphrase' => 'PASSPHRASE',
26-
],
27-
'sql' => {
28-
'db_host' => 'sql-db.service.cf.internal',
29-
'db_port' => 3306,
30-
'db_schema' => 'diego',
31-
'db_username' => 'diego',
32-
'db_password' => 'DB PASSWORD',
33-
'db_driver' => 'mysql',
34-
'ca_cert' => 'CA CERT',
35-
'require_ssl' => true
36-
},
37-
'ca_cert' => 'CA CERT',
38-
'auctioneer' => {
39-
'ca_cert' => 'CA CERT',
40-
'client_cert' => 'CLIENT CERT',
41-
'client_key' => 'CLIENT KEY'
42-
},
43-
'locket' => {
44-
'client_keepalive_time' => 10,
45-
'client_keepalive_timeout' => 22
46-
},
47-
'server_cert' => 'SERVER CERT',
48-
'server_key' => 'SERVER KEY',
49-
'skip_consul_lock' => 'true',
50-
'rep' => {
51-
'require_tls' => 'true',
52-
'ca_cert' => 'CA CERT',
53-
'client_cert' => 'CLIENT CERT',
54-
'client_key' => 'CLIENT KEY'
55-
}
56-
},
57-
'enable_consul_service_registration' => 'false',
58-
'loggregator' => {
59-
'use_v2_api' => 'true',
60-
'ca_cert' => 'CA CERT',
61-
'client_cert' => 'CLIENT CERT',
62-
'client_key' => 'CLIENT KEY'
63-
},
64-
'logging' => {
65-
'format' => {
66-
'timestamp' => 'rfc3339'
67-
}
68-
}
69-
}
13+
describe 'bbs.json.erb' do
14+
let(:deployment_manifest_fragment) do
15+
{
16+
'bpm' => {
17+
'enabled' => 'true'
18+
},
19+
'diego' => {
20+
'bbs' => {
21+
'active_key_label' => 'ACTIVE KEY',
22+
'detect_consul_cell_registrations' => 'false',
23+
'encryption_keys' => [
24+
'label' => 'KEY LABEL',
25+
'passphrase' => 'PASSPHRASE'
26+
],
27+
'sql' => {
28+
'db_host' => 'sql-db.service.cf.internal',
29+
'db_port' => 3306,
30+
'db_schema' => 'diego',
31+
'db_username' => 'diego',
32+
'db_password' => 'DB PASSWORD',
33+
'db_driver' => 'mysql',
34+
'ca_cert' => 'CA CERT',
35+
'require_ssl' => true
36+
},
37+
'ca_cert' => 'CA CERT',
38+
'auctioneer' => {
39+
'ca_cert' => 'CA CERT',
40+
'client_cert' => 'CLIENT CERT',
41+
'client_key' => 'CLIENT KEY'
42+
},
43+
'locket' => {
44+
'client_keepalive_time' => 10,
45+
'client_keepalive_timeout' => 22
46+
},
47+
'server_cert' => 'SERVER CERT',
48+
'server_key' => 'SERVER KEY',
49+
'skip_consul_lock' => 'true',
50+
'rep' => {
51+
'require_tls' => 'true',
52+
'ca_cert' => 'CA CERT',
53+
'client_cert' => 'CLIENT CERT',
54+
'client_key' => 'CLIENT KEY'
55+
}
56+
},
57+
'enable_consul_service_registration' => 'false',
58+
'loggregator' => {
59+
'use_v2_api' => 'true',
60+
'ca_cert' => 'CA CERT',
61+
'client_cert' => 'CLIENT CERT',
62+
'client_key' => 'CLIENT KEY'
63+
},
64+
'logging' => {
65+
'format' => {
66+
'timestamp' => 'rfc3339'
7067
}
71-
end
68+
}
69+
}
70+
}
71+
end
7272

73-
let(:template) { job.template('config/bbs.json') }
74-
let(:rendered_template) { template.render(deployment_manifest_fragment) }
73+
let(:template) { job.template('config/bbs.json') }
74+
let(:rendered_template) { template.render(deployment_manifest_fragment) }
7575

76-
context 'check if locket keepalive time is bigger than the timeout' do
77-
it 'fails if the keepalive time is bigger than timeout' do
78-
deployment_manifest_fragment['diego']['bbs']['locket']['client_keepalive_time'] = 23
79-
expect do
80-
rendered_template
81-
end.to raise_error(/The locket client keepalive time property should not be larger than the timeout/)
82-
end
83-
end
84-
end
85-
end
76+
context 'check if locket keepalive time is bigger than the timeout' do
77+
it 'fails if the keepalive time is bigger than timeout' do
78+
deployment_manifest_fragment['diego']['bbs']['locket']['client_keepalive_time'] = 23
79+
expect do
80+
rendered_template
81+
end.to raise_error(/The locket client keepalive time property should not be larger than the timeout/)
82+
end
83+
end
84+
end
85+
end

0 commit comments

Comments
 (0)