diff options
author | Kamil TrzciĆski <ayufan@ayufan.eu> | 2019-07-23 12:30:00 +0300 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2019-07-23 12:30:00 +0300 |
commit | 3a4cb6d6759abbfd16e048413e8545d1d94e7d9e (patch) | |
tree | d6631643d70462ee38936708107bbedefbb5f45f /spec/lib/gitlab/request_profiler_spec.rb | |
parent | 5e102f17f0ef16d0fd1eff98b9229fea2bc1fec9 (diff) |
Bring backward compatibility for request profiles
It seems that we missed the backward compatibility support
for profiles in the existing folder.
This commit also fixes some specs to be idempotent
and work in a temporary directory which not always
seems to be the case.
This commit also brings the profile_spec.rb which seems
to be missing.
Diffstat (limited to 'spec/lib/gitlab/request_profiler_spec.rb')
-rw-r--r-- | spec/lib/gitlab/request_profiler_spec.rb | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/spec/lib/gitlab/request_profiler_spec.rb b/spec/lib/gitlab/request_profiler_spec.rb index fd8cbf39bce..498c045b6cd 100644 --- a/spec/lib/gitlab/request_profiler_spec.rb +++ b/spec/lib/gitlab/request_profiler_spec.rb @@ -13,15 +13,42 @@ describe Gitlab::RequestProfiler do end end - describe '.remove_all_profiles' do - it 'removes Gitlab::RequestProfiler::PROFILES_DIR directory' do - dir = described_class::PROFILES_DIR - FileUtils.mkdir_p(dir) + context 'with temporary PROFILES_DIR' do + let(:tmpdir) { Dir.mktmpdir('profiler-test') } + let(:profile_name) { '|api|v4|version.txt_1562854738_memory.html' } + let(:profile_path) { File.join(tmpdir, profile_name) } - expect(Dir.exist?(dir)).to be true + before do + stub_const('Gitlab::RequestProfiler::PROFILES_DIR', tmpdir) + FileUtils.touch(profile_path) + end + + after do + FileUtils.rm_rf(tmpdir) + end + + describe '.remove_all_profiles' do + it 'removes Gitlab::RequestProfiler::PROFILES_DIR directory' do + described_class.remove_all_profiles + + expect(Dir.exist?(tmpdir)).to be false + end + end + + describe '.all' do + subject { described_class.all } + + it 'returns all profiles' do + expect(subject.map(&:name)).to contain_exactly(profile_name) + end + end + + describe '.find' do + subject { described_class.find(profile_name) } - described_class.remove_all_profiles - expect(Dir.exist?(dir)).to be false + it 'returns all profiles' do + expect(subject.name).to eq(profile_name) + end end end end |