Commit 8067efdf authored by Pawel Chojnacki's avatar Pawel Chojnacki

Make the test cases more readable and fix to_s coercion problem

parent 1f10a3c2
...@@ -80,27 +80,30 @@ describe Gitlab::HealthChecks::FsShardsCheck do ...@@ -80,27 +80,30 @@ describe Gitlab::HealthChecks::FsShardsCheck do
}.with_indifferent_access }.with_indifferent_access
end end
it { is_expected.to include(metric_class.new(:filesystem_accessible, 0, shard: :default)) } it { is_expected.to all(have_attributes(labels: { shard: :default })) }
it { is_expected.to include(metric_class.new(:filesystem_readable, 0, shard: :default)) }
it { is_expected.to include(metric_class.new(:filesystem_writable, 0, shard: :default)) }
it { is_expected.to include(have_attributes(name: :filesystem_access_latency, value: be >= 0, labels: { shard: :default })) } it { is_expected.to include(an_object_having_attributes(name: :filesystem_accessible, value: 0)) }
it { is_expected.to include(have_attributes(name: :filesystem_read_latency, value: be >= 0, labels: { shard: :default })) } it { is_expected.to include(an_object_having_attributes(name: :filesystem_readable, value: 0)) }
it { is_expected.to include(have_attributes(name: :filesystem_write_latency, value: be >= 0, labels: { shard: :default })) } it { is_expected.to include(an_object_having_attributes(name: :filesystem_writable, value: 0)) }
it { is_expected.to include(an_object_having_attributes(name: :filesystem_access_latency, value: be >= 0)) }
it { is_expected.to include(an_object_having_attributes(name: :filesystem_read_latency, value: be >= 0)) }
it { is_expected.to include(an_object_having_attributes(name: :filesystem_write_latency, value: be >= 0)) }
end end
context 'storage points to directory that has both read and write rights' do context 'storage points to directory that has both read and write rights' do
before do before do
FileUtils.chmod_R(0755, tmp_dir) FileUtils.chmod_R(0755, tmp_dir)
end end
it { is_expected.to all(have_attributes(labels: { shard: :default })) }
it { is_expected.to include(metric_class.new(:filesystem_accessible, 1, shard: :default)) } it { is_expected.to include(an_object_having_attributes(name: :filesystem_accessible, value: 1)) }
it { is_expected.to include(metric_class.new(:filesystem_readable, 1, shard: :default)) } it { is_expected.to include(an_object_having_attributes(name: :filesystem_readable, value: 1)) }
it { is_expected.to include(metric_class.new(:filesystem_writable, 1, shard: :default)) } it { is_expected.to include(an_object_having_attributes(name: :filesystem_writable, value: 1)) }
it { is_expected.to include(have_attributes(name: :filesystem_access_latency, value: be >= 0, labels: { shard: :default })) } it { is_expected.to include(an_object_having_attributes(name: :filesystem_access_latency, value: be >= 0)) }
it { is_expected.to include(have_attributes(name: :filesystem_read_latency, value: be >= 0, labels: { shard: :default })) } it { is_expected.to include(an_object_having_attributes(name: :filesystem_read_latency, value: be >= 0)) }
it { is_expected.to include(have_attributes(name: :filesystem_write_latency, value: be >= 0, labels: { shard: :default })) } it { is_expected.to include(an_object_having_attributes(name: :filesystem_write_latency, value: be >= 0)) }
end end
end end
end end
...@@ -109,7 +112,7 @@ describe Gitlab::HealthChecks::FsShardsCheck do ...@@ -109,7 +112,7 @@ describe Gitlab::HealthChecks::FsShardsCheck do
let(:timeout_seconds) { 1.to_s } let(:timeout_seconds) { 1.to_s }
before do before do
allow(described_class).to receive(:with_timeout) { [timeout_command, timeout_seconds, 'sleep', 2] } allow(described_class).to receive(:with_timeout) { [timeout_command, timeout_seconds, 'sleep', '20'] }
FileUtils.chmod_R(0755, tmp_dir) FileUtils.chmod_R(0755, tmp_dir)
end end
...@@ -122,13 +125,17 @@ describe Gitlab::HealthChecks::FsShardsCheck do ...@@ -122,13 +125,17 @@ describe Gitlab::HealthChecks::FsShardsCheck do
describe '#metrics' do describe '#metrics' do
subject { described_class.metrics } subject { described_class.metrics }
it { is_expected.to include(metric_class.new(:filesystem_accessible, 0, shard: :default)) } it 'provides metrics' do
it { is_expected.to include(metric_class.new(:filesystem_readable, 0, shard: :default)) } expect(subject).to all(have_attributes(labels: { shard: :default }))
it { is_expected.to include(metric_class.new(:filesystem_writable, 0, shard: :default)) }
expect(subject).to include(an_object_having_attributes(name: :filesystem_accessible, value: 0))
expect(subject).to include(an_object_having_attributes(name: :filesystem_readable, value: 0))
expect(subject).to include(an_object_having_attributes(name: :filesystem_writable, value: 0))
it { is_expected.to include(have_attributes(name: :filesystem_access_latency, value: be >= 0, labels: { shard: :default })) } expect(subject).to include(an_object_having_attributes(name: :filesystem_access_latency, value: be >= 0))
it { is_expected.to include(have_attributes(name: :filesystem_read_latency, value: be >= 0, labels: { shard: :default })) } expect(subject).to include(an_object_having_attributes(name: :filesystem_read_latency, value: be >= 0))
it { is_expected.to include(have_attributes(name: :filesystem_write_latency, value: be >= 0, labels: { shard: :default })) } expect(subject).to include(an_object_having_attributes(name: :filesystem_write_latency, value: be >= 0))
end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment