summaryrefslogtreecommitdiff
path: root/spec/knapsack_env.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-04-12 09:09:09 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-04-12 09:09:09 +0000
commitede2fbdc8734f095d371614d362b5ae373d6a243 (patch)
tree187152bbc2a4f24aae99d30a78ca9b06cc0468a8 /spec/knapsack_env.rb
parent4044a01bd7e32c814217b34c512c3dd02202ea29 (diff)
downloadgitlab-ce-ede2fbdc8734f095d371614d362b5ae373d6a243.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/knapsack_env.rb')
-rw-r--r--spec/knapsack_env.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/knapsack_env.rb b/spec/knapsack_env.rb
new file mode 100644
index 00000000000..7dc1a43d644
--- /dev/null
+++ b/spec/knapsack_env.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+require 'knapsack'
+
+module KnapsackEnv
+ class RSpecContextAdapter < Knapsack::Adapters::RSpecAdapter
+ def bind_time_tracker
+ ::RSpec.configure do |config|
+ # Original version starts timer in `config.prepend_before(:each) do`
+ # https://github.com/KnapsackPro/knapsack/blob/v1.17.0/lib/knapsack/adapters/rspec_adapter.rb#L9
+ config.prepend_before(:context) do
+ Knapsack.tracker.start_timer
+ end
+
+ # Original version is `config.prepend_before(:each) do`
+ # https://github.com/KnapsackPro/knapsack/blob/v1.17.0/lib/knapsack/adapters/rspec_adapter.rb#L9
+ config.prepend_before(:each) do # rubocop:disable RSpec/HookArgument
+ current_example_group =
+ if ::RSpec.respond_to?(:current_example)
+ ::RSpec.current_example.metadata[:example_group]
+ else
+ example.metadata
+ end
+
+ Knapsack.tracker.test_path = Knapsack::Adapters::RSpecAdapter.test_path(current_example_group)
+ end
+
+ # Original version stops timer in `config.append_after(:each) do`
+ # https://github.com/KnapsackPro/knapsack/blob/v1.17.0/lib/knapsack/adapters/rspec_adapter.rb#L20
+ config.append_after(:context) do
+ Knapsack.tracker.stop_timer
+ end
+
+ config.after(:suite) do
+ Knapsack.logger.info(Knapsack::Presenter.global_time)
+ end
+ end
+ end
+ end
+
+ def self.configure!
+ return unless ENV['CI'] && ENV['KNAPSACK_GENERATE_REPORT'] && !ENV['NO_KNAPSACK']
+
+ RSpecContextAdapter.bind
+ end
+end