From 57d64741e4a690713382ae4525f579595b5f7576 Mon Sep 17 00:00:00 2001 From: Daniel Pepper Date: Sat, 28 Mar 2026 06:44:12 +0700 Subject: [PATCH] Global spec temp directory setup Use Dir.mktmpdir block form in spec_helper to automatically create and cleanup temp directories for all specs. Removes duplicate setup from individual spec files. Co-Authored-By: Claude Opus 4.5 --- spec/singed_spec.rb | 16 ++++------------ spec/spec_helper.rb | 9 +++++++++ spec/support/sidekiq.rb | 9 --------- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/spec/singed_spec.rb b/spec/singed_spec.rb index 700bb6b..37db1bc 100644 --- a/spec/singed_spec.rb +++ b/spec/singed_spec.rb @@ -1,19 +1,12 @@ # frozen_string_literal: true -require "tempfile" - RSpec.describe Singed do around do |example| - original_output_directory = Singed.output_directory - Singed.output_directory = Dir.mktmpdir("singed-spec") original_enabled = Singed.enabled? - begin - example.run - ensure - Singed.output_directory = original_output_directory - Singed.enabled = original_enabled - Singed.instance_variable_set(:@current_flamegraph, nil) - end + example.run + ensure + Singed.enabled = original_enabled + Singed.instance_variable_set(:@current_flamegraph, nil) end describe ".start" do @@ -42,7 +35,6 @@ describe ".stop" do before do Singed.enabled = true - Singed.output_directory = Dir.mktmpdir("singed-spec") end it "returns nil when not profiling" do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1850212..93d807f 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -15,8 +15,17 @@ # See https://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration require "singed" +require "tmpdir" RSpec.configure do |config| + config.around do |example| + Dir.mktmpdir("singed-spec") do |dir| + Singed.output_directory = dir + example.run + end + ensure + Singed.output_directory = nil + end # rspec-expectations config goes here. You can use an alternate # assertion/expectation library such as wrong or the stdlib/minitest # assertions if you prefer. diff --git a/spec/support/sidekiq.rb b/spec/support/sidekiq.rb index 4634569..c813758 100644 --- a/spec/support/sidekiq.rb +++ b/spec/support/sidekiq.rb @@ -1,5 +1,4 @@ require "singed/sidekiq" -require "tempfile" RSpec.configure do |config| config.before(:suite) do @@ -16,14 +15,6 @@ ActiveJob::Base.queue_adapter = :sidekiq ActiveJob::Base.logger = Logger.new(nil) end - - config.around(:each, sidekiq: true) do |example| - orig_dir = Singed.output_directory - Singed.output_directory = Dir.mktmpdir("singed-sidekiq-spec") - example.run - ensure - Singed.output_directory = orig_dir - end end # Sidekiq doesn't invoke middlewares in inline testingmode, so we need to invoke it oursleves