summaryrefslogtreecommitdiff
path: root/spec/support/shared_examples/logging_application_context_shared_examples.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/shared_examples/logging_application_context_shared_examples.rb')
-rw-r--r--spec/support/shared_examples/logging_application_context_shared_examples.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/support/shared_examples/logging_application_context_shared_examples.rb b/spec/support/shared_examples/logging_application_context_shared_examples.rb
new file mode 100644
index 00000000000..038ede884c8
--- /dev/null
+++ b/spec/support/shared_examples/logging_application_context_shared_examples.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+RSpec.shared_examples 'storing arguments in the application context' do
+ around do |example|
+ Labkit::Context.with_context { example.run }
+ end
+
+ it 'places the expected params in the application context' do
+ # Stub the clearing of the context so we can validate it later
+ # The `around` block above makes sure we do clean it up later
+ allow(Labkit::Context).to receive(:pop)
+
+ subject
+
+ Labkit::Context.with_context do |context|
+ expect(context.to_h)
+ .to include(log_hash(expected_params))
+ end
+ end
+
+ def log_hash(hash)
+ hash.transform_keys! { |key| "meta.#{key}" }
+ end
+end