2019-08-19 08:52:07 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require 'spec_helper'
|
|
|
|
|
2020-06-24 14:09:03 -04:00
|
|
|
RSpec.describe Prometheus::CleanupMultiprocDirService do
|
2019-08-19 08:52:07 -04:00
|
|
|
describe '.call' do
|
|
|
|
subject { described_class.new.execute }
|
|
|
|
|
|
|
|
let(:metrics_multiproc_dir) { Dir.mktmpdir }
|
|
|
|
let(:metrics_file_path) { File.join(metrics_multiproc_dir, 'counter_puma_master-0.db') }
|
|
|
|
|
|
|
|
before do
|
|
|
|
FileUtils.touch(metrics_file_path)
|
|
|
|
end
|
|
|
|
|
|
|
|
after do
|
|
|
|
FileUtils.rm_r(metrics_multiproc_dir)
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when `multiprocess_files_dir` is defined' do
|
|
|
|
before do
|
|
|
|
expect(Prometheus::Client.configuration)
|
|
|
|
.to receive(:multiprocess_files_dir)
|
|
|
|
.and_return(metrics_multiproc_dir)
|
|
|
|
.at_least(:once)
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'removes old metrics' do
|
|
|
|
expect { subject }
|
|
|
|
.to change { File.exist?(metrics_file_path) }
|
|
|
|
.from(true)
|
|
|
|
.to(false)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when `multiprocess_files_dir` is not defined' do
|
|
|
|
before do
|
|
|
|
expect(Prometheus::Client.configuration)
|
|
|
|
.to receive(:multiprocess_files_dir)
|
|
|
|
.and_return(nil)
|
|
|
|
.at_least(:once)
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'does not remove any files' do
|
|
|
|
expect { subject }
|
|
|
|
.not_to change { File.exist?(metrics_file_path) }
|
|
|
|
.from(true)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|