diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-12 09:09:09 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-12 09:09:09 +0000 |
commit | ede2fbdc8734f095d371614d362b5ae373d6a243 (patch) | |
tree | 187152bbc2a4f24aae99d30a78ca9b06cc0468a8 /spec/knapsack_env.rb | |
parent | 4044a01bd7e32c814217b34c512c3dd02202ea29 (diff) | |
download | gitlab-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.rb | 46 |
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 |