-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathconfiguration_spec.rb
34 lines (30 loc) · 2.32 KB
/
configuration_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require 'spec_helper'
RSpec.shared_examples 'a configurable setting' do |method:, env:, default:, sample_value:|
it "#{method} is #{default} by default" do
ENV[env] = nil
expect(subject.public_send method).to eq default
end
it "#{method} can be set with the environment variable #{env}" do
ENV[env] = sample_value
expect(subject.public_send method).not_to eq default
ENV[env] = nil
end
end
describe Squid::Configuration do
subject { Squid::Configuration.new }
sample_false = %w(0 f F false FALSE).sample
sample_true = %w(1 t T true TRUE).sample
it_behaves_like 'a configurable setting', method: 'baseline', env: 'SQUID_BASELINE', default: true, sample_value: sample_false
it_behaves_like 'a configurable setting', method: 'border', env: 'SQUID_BORDER', default: false, sample_value: sample_true
it_behaves_like 'a configurable setting', method: 'chart', env: 'SQUID_CHART', default: true, sample_value: sample_false
it_behaves_like 'a configurable setting', method: 'colors', env: 'SQUID_COLORS', default: [], sample_value: 'ff0000'
it_behaves_like 'a configurable setting', method: 'every', env: 'SQUID_EVERY', default: 1, sample_value: '2'
it_behaves_like 'a configurable setting', method: 'formats', env: 'SQUID_FORMATS', default: [], sample_value: 'percentage'
it_behaves_like 'a configurable setting', method: 'height', env: 'SQUID_HEIGHT', default: 250, sample_value: '150'
it_behaves_like 'a configurable setting', method: 'labels', env: 'SQUID_LABELS', default: [], sample_value: sample_true
it_behaves_like 'a configurable setting', method: 'legend', env: 'SQUID_LEGEND', default: true, sample_value: sample_false
it_behaves_like 'a configurable setting', method: 'line_widths', env: 'SQUID_LINE_WIDTHS', default: [] , sample_value: '4'
it_behaves_like 'a configurable setting', method: 'steps', env: 'SQUID_STEPS', default: 4, sample_value: '0'
it_behaves_like 'a configurable setting', method: 'ticks', env: 'SQUID_TICKS', default: true, sample_value: sample_false
it_behaves_like 'a configurable setting', method: 'type', env: 'SQUID_TYPE', default: :column, sample_value: 'line'
end