Module: RSpec::Determinator

Defined in:
lib/rspec/determinator.rb

Defined Under Namespace

Modules: DSL Classes: FakeDeterminator

Constant Summary collapse

DO_NOT_USE_IN_PRODUCTION_CODE_NULL_FEATURE_CACHE =
-> (name, &block) { block.call(name) }

Class Method Summary collapse

Class Method Details

.included(by) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/rspec/determinator.rb', line 9

def self.included(by)
  by.extend(DSL)

  by.let(:fake_retriever) { ::Determinator::Retrieve::InMemoryRetriever.new }
  by.let(:fake_determinator) { ::RSpec::Determinator::FakeDeterminator.new(fake_retriever) }
  by.around do |example|
    old_retriever = ::Determinator.instance.retrieval
    begin
      fake_retriever.clear!
      ::Determinator.configure(retrieval: fake_retriever, feature_cache: DO_NOT_USE_IN_PRODUCTION_CODE_NULL_FEATURE_CACHE)
      example.run
    ensure
      ::Determinator.configure(retrieval: old_retriever, feature_cache: DO_NOT_USE_IN_PRODUCTION_CODE_NULL_FEATURE_CACHE)
    end
  end
end