Method: ChefSpec::API::Stubs#stub_search

Defined in:
lib/chefspec/api/stubs.rb

#stub_search(type, query = "*:*", &block) ⇒ ChefSpec::SearchStub

Stub a Chef search to return pre-defined data. When providing a value, the value is automatically mashified (to the best of ChefSpec’s abilities) to ease in use.

Examples:

stubbing a search to return nothing

stub_search(:node)

stubbing a search with a query

stub_search(:node, 'name:*')

stubbing a search with a query as a regex

stub_search(:node, /name:(.+)/)

stubbing a search with a block that is evaluated at runtime

stub_search(:node) { JSON.parse(File.read('fixtures/nodes.json')) }

stubbing a search to return a fixed value

stub_search(:node).and_return([ { a: 'b' } ])

stubbing a search to raise an exception

stub_search(:node).and_raise(Chef::Exceptions::PrivateKeyMissing)

Parameters:

  • type (String, Symbol)

    the type to search to stub

  • query (String, Symbol, nil) (defaults to: "*:*")

    the query to stub

Returns:

  • (ChefSpec::SearchStub)


168
169
170
# File 'lib/chefspec/api/stubs.rb', line 168

def stub_search(type, query = "*:*", &block)
  ChefSpec::Stubs::SearchRegistry.register(ChefSpec::Stubs::SearchStub.new(type, query, &block))
end